<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Max,<br>
    <div class="moz-cite-prefix">On 27.11.2014 11:54, Maxime Dor wrote:<br>
    </div>
    <blockquote cite="mid:547702F9.6050500@altherian.org" type="cite">
      <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
      Hi,<br>
      <br>
      About why the memory setting can be changed, could it the same
      underlying issue than this one?<br>
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://www.virtualbox.org/ticket/12164">https://www.virtualbox.org/ticket/12164</a><br>
    </blockquote>
    Good point. Which again makes it a mystery why HPET is different, as
    it uses exactly the same (probably broken) state check. Quite
    certain that no one found time to figure out what exactly is subtly
    broken, leave alone fixing it.<br>
    <br>
    Klaus<br>
    <blockquote cite="mid:547702F9.6050500@altherian.org" type="cite"> <br>
      Max<br>
      <div class="moz-cite-prefix">On 27/11/2014 11:32, Klaus Espenlaub
        wrote:<br>
      </div>
      <blockquote cite="mid:5476FDB0.2080606@oracle.com" type="cite">
        <meta content="text/html; charset=UTF-8"
          http-equiv="Content-Type">
        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 moz-do-not-send="true"
                  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>
        <br>
      </blockquote>
    </blockquote>
  </body>
</html>