<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Yuryi,<br>
<div class="moz-cite-prefix">On 27.11.2014 10:26, Yuriy Tretyakov
wrote:<br>
</div>
<blockquote
cite="mid:1417078087.775972467.smyokwo5@frv45.fwdcdn.com"
type="cite"><span class="xfm_76659702">We need to run our code
under python 3.1 that's why we need to use suds here.
<div>Anyway we may face this situation without python at all. I
ran SOAP UI. I ran a list of command-one by one.</div>
</span></blockquote>
Ah, python 3.x support for the ZSI bindings is on the todo list,
unfortunately as always with far more work than developers...<br>
<blockquote
cite="mid:1417078087.775972467.smyokwo5@frv45.fwdcdn.com"
type="cite"><span class="xfm_76659702">
<div>I lock the machine and run ISession_getMachine. webserver
returned new mutable machine ID. <br>
Runing ISession_getType for my session id - I got </div>
<div><br>
</div>
<div><vbox:ISession_getTypeResponse>
<div> <returnval>WriteLock</returnval></div>
<div> </vbox:ISession_getTypeResponse></div>
<div><br>
</div>
<div>So machine is in mutable state now, right?</div>
</div>
</span></blockquote>
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.<br>
<blockquote
cite="mid:1417078087.775972467.smyokwo5@frv45.fwdcdn.com"
type="cite"><span class="xfm_76659702">
<div>
<div>Runing IMachine_setHPETEnabled for mutable ID</div>
<div>
<_this>5f0fac6e7e0179b0-0000000000000011</_this></div>
<div> <HPETEnabled>true</HPETEnabled></div>
<div><br>
! </div>
got error VirtualBox error: rc=0x80bb0002 The machine is not
mutable (state is Saved) (0x80bb0002)</faultstring></div>
</span></blockquote>
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.<br>
<br>
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.<br>
<br>
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.<br>
<blockquote
cite="mid:1417078087.775972467.smyokwo5@frv45.fwdcdn.com"
type="cite"><span class="xfm_76659702">
<div>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:</div>
<div><br>
</div>
<div>
<div>
<faultcode>SOAP-ENV:Client</faultcode><br>
</div>
<div> <faultstring>VirtualBox error:
rc=0x80bb0002 The machine is not mutable (state is Saved)
(0x80bb0002)</faultstring></div>
<div> <detail></div>
<div> <vbox:RuntimeFault></div>
<div>
<resultCode>-2135228414</resultCode></div>
<div> &! nbsp;
<returnval>5f0fac6e7e0179b0-0000000000000033</returnval></div>
<div> </vbox:RuntimeFault></div>
<div> </detail></div>
<div> </SOAP-ENV:Fault></div>
</div>
</span></blockquote>
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.<br>
<br>
Phew, at least the biggest mystery is resolved.<br>
<br>
Klaus<br>
<blockquote
cite="mid:1417078087.775972467.smyokwo5@frv45.fwdcdn.com"
type="cite"><span class="xfm_76659702">
<div>
<div><br>
</div>
</div>
<div><br>
<br>
<div style="font-size:0.9em;font-style:italic;"> --- Исходное
сообщение ---<br>
От кого: "Klaus Espenlaub"
<a class="moz-txt-link-rfc2396E" href="mailto:klaus.espenlaub@oracle.com"><klaus.espenlaub@oracle.com></a><br>
Дата: 26 ноября 2014, 17:53:21<br>
</div>
<br>
<blockquote class="xfmc1" style="border-left:1px solid
rgb(204, 204, 204);margin:0px 0px 0px
0.8ex;padding-left:1ex;"><span> <span></span> <span
bgcolor="#FFFFFF"> On 26.11.2014 16:09, Yuriy Tretyakov
wrote:<br>
<blockquote type="cite"><span>Hi Klaus.
<div>Thank you for your quick answer!</div>
<div>Sure, vm machine is turned off. I trying to
turn HPET on after snapshot is restored (machine
is down) but got this error.</div>
<div>And yes , as I understand from SDK, such
settings shall work with mutable machine. Setting
RAM size works fine, but HPET failed.</div>
<div>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?</div>
</span></blockquote>
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.<br>
<br>
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...<br>
<br>
Klaus<br>
<blockquote type="cite"><span>
<div><br>
</div>
<div>Regards,</div>
<div>Yuriy</div>
<div><br>
<br>
<div style="font-size:0.9em;font-style:italic;">
--- Исходное сообщение ---<br>
От кого: "Klaus Espenlaub" <a
moz-do-not-send="true" class="xfmc2"
href="mailto:klaus.espenlaub@oracle.com"
target="_blank"><klaus.espenlaub@oracle.com></a><br>
Дата: 26 ноября 2014, 17:02:12<br>
</div>
<br>
<blockquote class="xfmc3" style="border-left:1px
solid rgb(204, 204, 204);margin:0px ! 0px 0px
0.8ex;padding-left:1ex;"><span> <span></span> <span
bgcolor="#FFFFFF"> Hi Yuriy,<br>
<div class="xfmc4">On 26.11.2014 15:42,
Yuriy Tretyakov wrote:<br>
</div>
<blockquote type="cite"><span>
<div
style="font-size:0.9em;font-style:italic;"><br>
</div>
<blockquote class="xfmc5"
style="border-left:1px solid rgb(204,
204, 204);margin:0px 0px 0px
0.8ex;padding-left:1ex;"><span>
<p class="xfmc6">Hi Guys!</p>
<p class="xfmc6">Forum moderator
suggests me to contact somebody
from developers to solve my
problem faster than waiting answer
on forum.</p>
<p class="xfmc6"><br>
I have a trouble setting boolean
values via SOAP for VBOX.<br>
Actually, I need to set
IMachine_setHPETEnabled to True
programmatically, but
IMachine_setCPUHotPlugEnabled also
doesn't work.<br>
Trying to set these parameters
always follows with Machine is not
mutable error. But setting of
memory like in SDK example works
fine.<br>
What I'm actually do. I using suds
SOAP client library for Python.<br>
</p>
</span></blockquote>
</span></blockquote>
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.<br>
<br>
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...).<br>
<br>
Klaus </span></span>
</blockquote>
</div>
</span></blockquote>
</span></span></blockquote>
</div>
</span></blockquote>
</body>
</html>