<html><body><span class="xfm_13476451">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.<div>Thank you, for your answer, Klaus. We will update all our VB machine manually via commandline.<br/><br/><div style="font-size:0.9em;font-style:italic;"> --- Исходное сообщение ---<br/> От кого: "Klaus Espenlaub" <klaus.espenlaub@oracle.com><br/>  Дата: 27 ноября 2014, 12:32:29<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">
    Yuryi,<br/><div class="xfmc2">On 27.11.2014 10:26, Yuriy Tretyakov
      wrote:<br/></div>
    <blockquote type="cite"><span>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 type="cite"><span>
        <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 type="cite"><span>
        <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 type="cite"><span>
        <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 type="cite"><span>
        <div>
          <div><br/></div>
        </div>
        <div><br/><br/><div style="font-size:0.9em;font-style:italic;"> --- Исходное
            сообщение ---<br/>
            От кого: "Klaus Espenlaub"
            <a class="xfmc3" href="mailto:klaus.espenlaub@oracle.com" target="_blank"><klaus.espenlaub@oracle.com></a><br/>
            Дата: 26 ноября 2014, 17:53:21<br/></div>
          <br/><blockquote class="xfmc4" 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 class="xfmc5" href="mailto:klaus.espenlaub@oracle.com" target="_blank"><klaus.espenlaub@oracle.com></a><br/>
                        Дата: 26 ноября 2014, 17:02:12<br/></div>
                      <br/><blockquote class="xfmc6" 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="xfmc7">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="xfmc8" style="border-left:1px solid rgb(204,                                   204, 204);margin:0px 0px 0px                                   0.8ex;padding-left:1ex;"><span>
                                    <p class="xfmc9">Hi Guys!</p>
                                    <p class="xfmc9">Forum  moderator
                                      suggests me to contact somebody
                                      from developers to solve my
                                      problem faster than waiting answer
                                      on forum.</p>
                                    <p class="xfmc9"><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>
  </span>
</span></blockquote>   </div></span><img src="https://mail.ukr.net/api/public/message_read?a=gLS3rcFGNn2424qzUJpzGD26X5dUFsvsVFRGc7TFJxetfylN2cvdurVZgKqPbzb0z2ZIXa-M5a7Jgel1ef9gHGnBbkmUGQBe3kY1KB9sT6uO" alt="" width="1" height="1"/>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </body></html>