Now its less or more clear to me. In our testing purpose snapshot has OS that 
already started that's why we failed to set HPET. Thank you, for your answer, 
Klaus. We will update all our VB machine manually via commandline. 

--- Исходное сообщение --- 
От кого: "Klaus Espenlaub" <[email protected]> 
Дата: 27 ноября 2014, 12:32:29 

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" <[email protected]> 
Дата: 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" <[email protected]> 
Дата: 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
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to