|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-API] perl Xen API How to
Mike,
It was Boolean before. But I wanted to test something else so made it
double.
Here is the code
$host_ref = extractvalue($xen->simple_request("session.get_this_host",
$session, $session));
my $vm = "vm9_WinXP_x86";
my $vm_ref = extractvalue($xen->simple_request("VM.get_by_name_label",
$session, $vm));
print Dumper($vm_ref);
my $sp = XMLRPC::PurePerl->boolean(1);
print Dumper($sp);
$s_p = $sp->value();
print "boolean start_paused is " . $s_p . "\n";;
$host_ref = extractvalue($xen->simple_request("VM.start", $session,
$vm_ref->[0], $s_p, 0));
sub extractvalue{
my ($val) = @_;
print Dumper ($val);
if ($val->{'Status'} eq "Success"){
return $val->{'Value'};
} else {
return undef;
}
}
And here is the output
$VAR1 = {
'Value' => [
'OpaqueRef:04969f9f-41f9-15e0-8821-93395c8d22ed'
],
'Status' => 'Success'
};
$VAR1 = [
'OpaqueRef:04969f9f-41f9-15e0-8821-93395c8d22ed'
];
$VAR1 = bless( {
'val' => 1,
'type' => 'boolean'
}, 'XMLRPC::PurePerl::Type::boolean' );
boolean start_paused is 1
$VAR1 = {
'ErrorDescription' => [
'FIELD_TYPE_ERROR',
'start_paused'
],
'Status' => 'Failure'
};
Regards,
Rawat
-----Original Message-----
From: Mike McClurg [mailto:mike.mcclurg@xxxxxxxxxx]
Sent: Monday, November 12, 2012 3:56 PM
To: Rawat, Vishwanath
Cc: xen-api@xxxxxxxxxxxxx
Subject: Re: [Xen-API] perl Xen API How to
On 12/11/12 09:28, Rawat, Vishwanath wrote:
> Yes I did that. I got the same error. Here is my code and its output.
>
> Code:
>
> my $vm = "vm9_WinXP_x86";
> my $vm_ref = extractvalue($xen->simple_request("VM.get_by_name_label",
> $session, $vm)); print Dumper($vm_ref);
>
> my $sp = XMLRPC::PurePerl->double(1);
Why is this a double? start_paused should be a bool.
> print Dumper($sp);
> $s_p = $sp->value();
> print "asdfa " . $s_p . "\n";;
> $host_ref = extractvalue($xen->simple_request("VM.start", $session,
> $vm_ref->[0], $s_p, 0));
>
> sub extractvalue{
> my ($val) = @_;
> print Dumper ($val);
> if ($val->{'Status'} eq "Success"){
> return $val->{'Value'};
> } else {
> return undef;
> }
> }
>
> Output
>
> $VAR1 = {
> 'Value' => [
> 'OpaqueRef:04969f9f-41f9-15e0-8821-93395c8d22ed'
> ],
> 'Status' => 'Success'
> };
> $VAR1 = [
> 'OpaqueRef:04969f9f-41f9-15e0-8821-93395c8d22ed'
> ];
> $VAR1 = bless( {
> 'val' => 1,
> 'type' => 'double'
> }, 'XMLRPC::PurePerl::Type::double' ); asdfa 1
> $VAR1 = {
> 'ErrorDescription' => [
> 'FIELD_TYPE_ERROR',
> 'start_paused'
> ],
> 'Status' => 'Failure'
> };
>
> Regards,
> Rawat
>
> -----Original Message-----
> From: Mike McClurg [mailto:mike.mcclurg@xxxxxxxxxx]
> Sent: Monday, November 12, 2012 2:50 PM
> To: Rawat, Vishwanath
> Cc: xen-api@xxxxxxxxxxxxx
> Subject: Re: [Xen-API] perl Xen API How to
>
> On 12/11/12 09:15, Rawat, Vishwanath wrote:
>> Mike,
>> I tried encoding value as Boolean using XMLRPC::PurePerl it didn't work.
>> For second part I tried passing int($min) instead of $min but still didn't
>> work.
>>
>
> Did it give you a type error again? Is there any way you can ask the library
> to encode the request so that you can then print it out and verify that it's
> correct, without actually sending the request to the server?
>
> Mike
>
>> Regards,
>> Rawat
>>
>> -----Original Message-----
>> From: Mike McClurg [mailto:mike.mcclurg@xxxxxxxxxx]
>> Sent: Friday, November 09, 2012 5:30 PM
>> To: Rawat, Vishwanath
>> Cc: xen-api@xxxxxxxxxxxxx
>> Subject: Re: [Xen-API] perl Xen API How to
>>
>> On 09/11/12 11:38, Rawat, Vishwanath wrote:
>>> Hi,
>>>
>>> I am writing some perl scripts which will perform
>>> some action on Xen server. I am using RPC::XML for that.
>>>
>>
>> <snip>
>>
>>> $xen->simple_request("VM.start", $session, $vm_ref, $start_paused,
>>> $force);
>>>
>>> Error displayed upon execution of above code is
>>>
>>> $VAR1 = [
>>>
>>> 'FIELD_TYPE_ERROR',
>>>
>>> 'start_paused'
>>>
>>> ];
>>>
>>> start_paused option is of type Boolean so I tried all different
>>> combination like True, TRUE, true, Yes, ON. Nothing seems to be working.
>>> Can someone let me know what is the correct way of passing Boolean
>>> value to simple_request method.
>>>
>>
>> This looks like a Perl XMLRPC problem to me. See here:
>>
>> http://search.cpan.org/~rdietrich/xmlrpc-pureperl-0.03/lib/XMLRPC/PurePerl.pm#DATATYPES:
>>
>> You can use that to explicitly encode a value as a boolean. I'm not much of
>> a Perl expert, so I don't know if that library is compatible with yours, but
>> I guess that link should get you moving in the right direction.
>>
>> For your question below, those values are supposed to be integers.
>> I'm not sure why you'd be getting a field error there; maybe Perl is
>> treating 'min' as a string? (Everything in Perl is a string, right?
>> ;)
>> )
>>
>> You probably know this already, but make sure you have the XenAPI reference
>> at hand when working with the API:
>> http://docs.vmd.citrix.com/XenServer/6.1.0/1.0/en_gb/api/
>>
>> Mike
>>
>>>
>>>
>>> 2. I was trying to set dynamic memory range of a VM. Code is
>>>
>>> $min = 1024*1024*1024; # (also tried 1g,1GiB)
>>>
>>> $max = 2*1024*1024*1024; #(also tried 2g,2GiB)
>>>
>>> $vm_ref = <vm_opaque_ref>;
>>>
>>> $xen->simple_request("VM.set_memory_dynamic_range", $session,
>>> $vm_ref, $min, $max);
>>>
>>> Getting same error as above
>>>
>>> $VAR1 = [
>>>
>>> 'FIELD_TYPE_ERROR',
>>>
>>> 'min'
>>>
>>> ];
>>>
>>> Would like to know what is the correct way of passing these type of values.
>>>
>>>
>>>
>>> 3. Was trying to create network on a given Xen server.
>>>
>>> $network_name = "some_network_xenbr";
>>>
>>> $xen->simple_request("network.create", $session, $network_name);
>>>
>>> Getting the following error
>>>
>>> $VAR1 = [
>>>
>>> 'XMLRPC_UNMARSHAL_FAILURE',
>>>
>>> 'unbox: Element=string should contain \'struct\'',
>>>
>>> '<string>name-label=NACL_Test_Xenbr1352382351</string>'
>>>
>>> ];
>>>
>>> $network_name should be of type "network record", which I don't know
>>> what it means. Can someone help me with this.
>>>
>>>
>>>
>>> Thanks a lot in advance.
>>>
>>>
>>>
>>> Regards,
>>>
>>> Rawat
>>>
>>>
>>>
>>>
>>>
>>
>
_______________________________________________
Xen-api mailing list
Xen-api@xxxxxxxxxxxxx
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |