[cobbler] Problems with writing systems through the XMLRPC API using perl XML::RPC or XMLRPC::Lite

James Clendenan james.clendenan at gmail.com
Fri Nov 9 01:31:39 UTC 2012


I'm not going to be much help on this, but one thought I would have is that
you're not checking the return of the result call, which could be trying to
tell you something about an error.  I do recall when trying to do a python
interface to do similar, it was usually that I was missing one of the
required host fields.

You should also take a look at the test cases for the webui as it also uses
the xmlrpc interface for it's work.

James

On Thu, Nov 8, 2012 at 4:10 PM, Jason Barlow <jbarlow at central1.com> wrote:

> I’m trying to create a new system profile using perl through the XMLRPC
> API.****
>
> ** **
>
> Things work great using python, but when I try to use either of the above
> perl interfaces, I’m not able to actually write any of the new objects I’ve
> created:****
>
> ** **
>
> Reading items works a charm, and it looks like the calls themselves are
> succeeding, but the host never shows up in a:****
>
> #[root at spacewalk cobbler]# cobbler system list | grep test****
>
> #****
>
> ** **
>
> I’m wondering what’s going wrong here; am I not authenticating properly?**
> **
>
> ** **
>
> I’ve tried using both XML::RPC and XMLRPC::Lite, and get similar results,
> where reads work fine, but nothing actually ‘sticks’****
>
> ** **
>
> Here’s the script that I’m using for XMLRPC::Lite****
>
> ** **
>
> #!/usr/bin/perl****
>
> ** **
>
> use strict;****
>
> use warnings;****
>
> use XMLRPC::Lite;****
>
> use Data::Dumper;****
>
> ** **
>
> my $username = 'api-user';****
>
> my $password = 'sapi-user';****
>
> my $proto = 'http://';****
>
> my $servername = 'spacewak';****
>
> my $api = '/cobbler_api';****
>
> my $url = $proto . $servername . $api;****
>
> my $name = 'vacsld01test';****
>
> ** **
>
> ** **
>
> my $conn = XMLRPC::Lite->proxy('
> https://vacslp01spacewalk.cucbc.com/cobbler_api');****
>
> my $token = $conn->login($username, $password)->result();****
>
> my $object = $conn->new_system($token)->result();****
>
> ** **
>
> $conn->modify_system($object, 'name', $name, $token)->result();****
>
> $conn->modify_system($object, 'hostname', $name, $token)->result();****
>
> $conn->save_system($object, $token)->result();****
>
> $conn->sync($token)->result();****
>
> ** **
>
> ** **
>
> /var/log/cobbler/cobbler.log has:****
>
> ** **
>
> Thu Nov  8 16:03:46 2012 - INFO | authenticate; ['api-user', True]****
>
> Thu Nov  8 16:03:46 2012 - INFO | REMOTE new_item(system); user(api-user)*
> ***
>
> Thu Nov  8 16:03:46 2012 - DEBUG | authorize; ['api-user', 'new_system',
> None, None, True]****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | REMOTE api-user authorization result:
> True; user(?)****
>
> Thu Nov  8 16:03:46 2012 - INFO | REMOTE modify_item(system);
> user(api-user);
> object_id(___NEW___system::o0X5NLQrLsh9rXGhtvbuts56aTY6zb4JfQ==);
> attribute(name)****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | authorize; ['api-user',
> 'modify_system', <cobbler.item_system.System instance at 0x14350560>,
> 'name', True]****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | REMOTE api-user authorization result:
> True; user(?)****
>
> Thu Nov  8 16:03:46 2012 - INFO | REMOTE modify_item(system);
> user(api-user);
> object_id(___NEW___system::o0X5NLQrLsh9rXGhtvbuts56aTY6zb4JfQ==);
> attribute(hostname)****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | authorize; ['api-user',
> 'modify_system', <cobbler.item_system.System instance at 0x14350560>,
> 'hostname', True]****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | REMOTE api-user authorization result:
> True; user(?)****
>
> Thu Nov  8 16:03:46 2012 - INFO | REMOTE save_item(system);
> user(api-user);
> object_id(___NEW___system::o0X5NLQrLsh9rXGhtvbuts56aTY6zb4JfQ==)****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | authorize; ['api-user', 'save_system',
> <cobbler.item_system.System instance at 0x14350560>, None, True]****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | REMOTE api-user authorization result:
> True; user(?)****
>
> Thu Nov  8 16:03:46 2012 - INFO | add_item(system); ['vacsld01test']****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | get_items; ['system']****
>
> Thu Nov  8 16:03:46 2012 - INFO | REMOTE sync; user(api-user)****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | authorize; ['api-user', 'sync', None,
> None, True]****
>
> Thu Nov  8 16:03:46 2012 - DEBUG | REMOTE api-user authorization result:
> True; user(?)****
>
> Thu Nov  8 16:03:46 2012 - INFO | sync****
>
> Thu Nov  8 16:03:46 2012 - INFO | running pre-sync triggers****
>
> Thu Nov  8 16:03:46 2012 - INFO | cleaning trees****
>
> ** **
>
> I’m using:****
>
> ** **
>
> cobbler2-2.0.11-4.el5 ( CentOS 5.8)****
>
> perl v5.10.1****
>
> XMLRPC::Lite 0.715****
>
> _______________________________________________
> cobbler mailing list
> cobbler at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/cobbler/attachments/20121108/7613c9fc/attachment.html>


More information about the cobbler mailing list