<html><body><span class="xfm_22579777"><div style="font-size:0.9em;font-style:italic;"><br/></div><blockquote class="xfmc1" style="border-left:1px solid rgb(204, 204, 204);margin:0px 0px 0px 0.8ex;padding-left:1ex;"><span><p class="xfmc2">Hi Guys!</p><p></p>

<p class="xfmc2">Forum  moderator suggests me to contact somebody
from developers to solve my problem faster than waiting answer on forum.</p><p></p>

<p class="xfmc2"><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/><br/>
This is part of a vbox web server wrapper's code:</p><p></p>

<p class="xfmc2"><code><i><span style="font-size:9.0pt;">def __init__(self,
wsdlFileName, hostString, username = '', password = '', SessionId = None,
VboxID=None):</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;"> wsdlFile =
urllib.parse.urljoin('file:', urllib.request.pathname2url(path + "\\"
+ wsdlFileName))</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;"> self.client =
Client(wsdlFile, location = hostString)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;"> self.VboxID =
self.client.service.IWebsessionManager_logon(username, password)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;"> self.SessionId = self.client.service.IWebsessionManager_getSessionObject(self.VboxID)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/><br/></span></i><code><i><span style="font-size:10.0pt;"> def
RestoreSnapshot(self, machineName, SnapshotName):</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
self.MachineName = machineName</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
self.MachineUID = self.client.service.IVirtualBox_findMachine(self.VboxID,
machineName)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
snapShotId = self.client.service.IMachine_findSnapshot(self.MachineUID,
SnapshotName)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
writableMachineUID = self.__lockMachineGetWritableUID__(self.MachineUID,
self.SessionId)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
consoleId = self.client.service.ISession_getConsole(self.SessionId)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
 self.client.service.IConsole_restoreSnapshot(consoleId, snapShotId)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
self.__unlockMachine__(writableMachineUID, self.SessionId)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
return snapShotId</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/><br/></span></i><code><i><span style="font-size:10.0pt;">def SetHpet(self,state):</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
writableMachineUID = self.__lockMachineGetWritableUID__(self.MachineUID,
self.SessionId)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
try:</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
   
self.client.service.IMachine_setHPETEnabled(writableMachineUID,True)<<
Machine is not mutable error here</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
   
#self.client.service.IMachine_setMemorySize(writableMachineUID,1024)
<<this is works here!!!</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
finally:</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">       
    self.__unlockMachine__(self, writableMachineUID, self.SessionId)</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";color:seagreen;"><br/></span></i><span style="font-size:9.0pt;font-family:"Courier New";color:seagreen;"><br/><br/></span><code><i><span style="font-size:9.0pt;">Code that uses mentioned lib:</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">wsdfl_file_name='vboxwebService-4.2.wsdl'</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">vbWebCtrl1=VBoxWebControl(wsdfl_file_name,'localhost_url:18083/')</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">vbWebCtrl1.RestoreSnapshot('Win7x64_1','TestSnapshot')</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">vbWebCtrl1.SetHpet(True)<<
here I use true and 'true' and 'True' - nothing was changed- same error</span></i></code><i><span style="font-size:9.0pt;font-family:"Courier New";"><br/></span></i><code><i><span style="font-size:10.0pt;">vbWebCtrl1.StartVM()</span></i></code></p><p></p>

<p class="xfmc2"><br/><br/>
Setting of HPET works perfectly via commandline. Please, let me know what I'm
doing wrong or fix this.<br/><br/>
VBOX info:<span class="xfmc3"> </span><br/>
VM VirtualBox web service Version 4.3.12<br/>
VirtualBox web service 4.3.12 r93733<br/>
Webserver<br/>
Python<br/>
Win7x64</p><p></p>

<p class="xfmc2"></p><p> </p>

<p class="xfmc2"></p><p> </p>

<p class="xfmc2"><span style="color:#1F497D;">With best regards,</span></p><p></p></span><p></p>

<p class="xfmc2"><span style="color:#1F497D;">Yuriy Tretyakov</span></p><p></p><p></p>

<p class="xfmc2"><span style="color:#1F497D;"> </span></p></blockquote>   </span><img src="https://mail.ukr.net/api/public/message_read?a=gLS3rcFGNn2424qzUJpzGD26X5dUFsvsVFRPebTHJBeofylM2c3evrdZgKqPbzb0z2ZIXa-M5a7Jgel1ef9gHGkHKRy8AX7JDEh5LyBo0jmL" alt="" width="1" height="1"/>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </body></html>