[vbox-dev] Fw: Setting HPET via SOAP
Maxime Dor
maxime.dor at altherian.org
Thu Nov 27 10:54:49 UTC 2014
Hi,
About why the memory setting can be changed, could it the same
underlying issue than this one?
https://www.virtualbox.org/ticket/12164
Max
On 27/11/2014 11:32, Klaus Espenlaub wrote:
> Yuryi,
> On 27.11.2014 10:26, Yuriy Tretyakov wrote:
>> We need to run our code under python 3.1 that's why we need to use
>> suds here.
>> Anyway we may face this situation without python at all. I ran SOAP
>> UI. I ran a list of command-one by one.
> Ah, python 3.x support for the ZSI bindings is on the todo list,
> unfortunately as always with far more work than developers...
>> I lock the machine and run ISession_getMachine. webserver returned
>> new mutable machine ID.
>> Runing ISession_getType for my session id - I got
>>
>> <vbox:ISession_getTypeResponse>
>> <returnval>WriteLock</returnval>
>> </vbox:ISession_getTypeResponse>
>>
>> So machine is in mutable state now, right?
> Yes and no. When there is a properly established session there are two
> IMachine objects for every "VM", one readonly (the one you'd get when
> digging out the IMachine object when there is no session) and one
> mutable. You're definitely using the right one, otherwise you wouldn't
> get the error message below. So that's good news, your code for
> establishing the session etc. is correct.
>> Runing IMachine_setHPETEnabled for mutable ID
>> <_this>5f0fac6e7e0179b0-0000000000000011</_this>
>> <HPETEnabled>true</HPETEnabled>
>>
>> !
>> got error VirtualBox error: rc=0x80bb0002 The machine is not mutable
>> (state is Saved) (0x80bb0002)</faultstring>
> Ah, there you go. I asked you already what kind of snapshot you're
> restoring - and it's clearly an online snapshot. In such a case you
> can't change the settings, as the VM isn't powered off. So as I
> suspected a few mails ago, your assumptions are wrong.
>
> To repeat: a VM in state "Saved" can't be significantly reconfigured,
> because it is logically still running, with the entire hardware state
> saved (a bit like a hibernated PC, where one also has to keep fingers
> off the hardware config). It's simply not possible to enable HPET in
> this situation. It would be if you throw away the saved state, but I'm
> not sure if that's making the overall situation worse.
>
> So what you're seeing is 100% expected and correct behavior. The only
> mystery is why the memory size can be changed, because that shouldn't
> be possible either.
>> Just for your information. It seems to me a little strange that when
>> vbox server returning an error it used not the same value in
>> returnval as my mutable machine id. It increased each time request
>> being sent to server. Here is what SOAP ui shows:
>>
>> <faultcode>SOAP-ENV:Client</faultcode>
>> <faultstring>VirtualBox error: rc=0x80bb0002 The machine is
>> not mutable (state is Saved) (0x80bb0002)</faultstring>
>> <detail>
>> <vbox:RuntimeFault>
>> <resultCode>-2135228414</resultCode>
>> &! nbsp;
>> <returnval>5f0fac6e7e0179b0-0000000000000033</returnval>
>> </vbox:RuntimeFault>
>> </detail>
>> </SOAP-ENV:Fault>
> I don't follow - the returned reference is not for IMachine, it is an
> error object (IVirtualBoxError) which describes the error in more
> detail than what the SOAP fault code can do. Each fault creates a new
> error object, which explains why a new reference is created.
>
> Phew, at least the biggest mystery is resolved.
>
> Klaus
>>
>>
>>
>> --- Исходное сообщение ---
>> От кого: "Klaus Espenlaub" <klaus.espenlaub at oracle.com>
>> Дата: 26 ноября 2014, 17:53:21
>>
>> On 26.11.2014 16:09, Yuriy Tretyakov wrote:
>>> Hi Klaus.
>>> Thank you for your quick answer!
>>> Sure, vm machine is turned off. I trying to turn HPET on after
>>> snapshot is restored (machine is down) but got this error.
>>> And yes , as I understand from SDK, such settings shall work
>>> with mutable machine. Setting RAM size works fine, but HPET failed.
>>> I specify that IMachine_setCPUHotPlugEnabled doesn't work this
>>> way. Few month ago we were try to set videocapturing on and also
>>> no positive results. Could it be a defect with processing
>>> boolean values when we work with vboxwebsrv?
>> Can't tell from here what's "going over the wire" with your code,
>> but as long as the error message has the word "mutable" in it I
>> wouldn't expect trouble with the parameters as such, more with
>> the references.
>>
>> Is there a particular reason why you can't/don't want to use ZSI?
>> It's what e.g. vboxshell.py uses if one selects the webservice.
>> It gives a nice, direct python object interface to the API, and
>> can also talk to the local API when it runs on the same system...
>>
>> Klaus
>>>
>>> Regards,
>>> Yuriy
>>>
>>>
>>> --- Исходное сообщение ---
>>> От кого: "Klaus Espenlaub" <klaus.espenlaub at oracle.com>
>>> <mailto:klaus.espenlaub at oracle.com>
>>> Дата: 26 ноября 2014, 17:02:12
>>>
>>> Hi Yuriy,
>>> On 26.11.2014 15:42, Yuriy Tretyakov wrote:
>>>>
>>>> Hi Guys!
>>>>
>>>> Forum moderator suggests me to contact somebody from
>>>> developers to solve my problem faster than waiting
>>>> answer on forum.
>>>>
>>>>
>>>> I have a trouble setting boolean values via SOAP for VBOX.
>>>> Actually, I need to set IMachine_setHPETEnabled to True
>>>> programmatically, but IMachine_setCPUHotPlugEnabled
>>>> also doesn't work.
>>>> Trying to set these parameters always follows with
>>>> Machine is not mutable error. But setting of memory
>>>> like in SDK example works fine.
>>>> What I'm actually do. I using suds SOAP client library
>>>> for Python.
>>>>
>>> This doesn't sound like a problem with specific bindings to
>>> me (never used suds though, only used ZSI as you can see in
>>> the samples in the SDK). From the symptoms you're using the
>>> wrong IMachine reference. On the other hand, I can't explain
>>> why setting the memory size with the same reference works,
>>> it's doing the exact same checks on the API implementation side.
>>>
>>> Are you sure that the snapshot you are restoring is an
>>> "offline" one, i.e. for a powered off VM? Otherwise the VM
>>> is in saved state, which means no significant
>>> reconfiguration is possible (but again, same rules for HPET
>>> and memory size...).
>>>
>>> Klaus
>>>
>
>
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> https://www.virtualbox.org/mailman/listinfo/vbox-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.virtualbox.org/pipermail/vbox-dev/attachments/20141127/60e65c1b/attachment.html
More information about the vbox-dev
mailing list