[vbox-dev] Using python API bindings on Windows

Mikhail Kovalev mikhail.kovalev at gmail.com
Wed Jul 30 17:31:34 GMT 2014


Thanks a lot for an immediate answer! Moving the functionality to the
"server side" means that one will not need the console to e.g., restore a
snapshot?


2014-07-30 19:25 GMT+02:00 Klaus Espenlaub <klaus.espenlaub at oracle.com>:

> Mikhail,
>
> On 30.07.2014 17:49, Mikhail Kovalev wrote:
> > Ok, I've just noticed that there was already a thread on this topic
> > earlier this month (I joined the dev list later, so I did not see this
> > mail). The problem is that I am using 32 bit python on 64bit Win7. With
> > 64bit Python the problem disappears. So currently there is no way to
> > connect to 64 bit VBox from a 32 bit app (to get the console)? and what
> > if I connect to a 32 bit VBox (on 32bit Win) from a 32 bit app, is this
> > supposed to work?
>
> If everything is consistently 32 bit (Windows and python), everything is
> fine. Same for consistent 64 bit.
>
> The problem with the console being absent only happens with 32 bit
> python (or generally any 32 bit API client) and a 64 bit Windows. It's a
> shortcut we took when we finally managed to create working 32 bit COM
> support in a 64 bit package. It would be possible to make this work, but
> it's a significant effort (and would make a lot of code hard to read)
> which we don't want to make as it's already decided that all
> functionality which you're after will be moved to the server side in the
> next major release. It's a (for us) long known misdesign in the API that
> many snapshot operations are bolted to the console - which is nonsense,
> as these methods are also needed when there is no VM running. This is
> showing its ugly head in this combination.
>
> In other words: we consider it to be a bug that a session without a
> corresponding running VM has a console object at all, but this bug can't
> be fixed without breaking API compatibility, which we don't do for
> releases.
>
> Klaus
>
> >
> > Thanks,
> > Mikhail.
> >
> >
> > 2014-07-30 17:23 GMT+02:00 Mikhail Kovalev <mikhail.kovalev at gmail.com
> > <mailto:mikhail.kovalev at gmail.com>>:
> >
> >     Hi,
> >
> >     I am trying to use Python API bindings on Windows to control
> >     virtualbox. I have the following problem: when I create a session
> >     and lock a non-running VM with this session, I do not get a
> >     reference to the console object. As a result, I cannot control the
> >     non-running VM (e.g., I cannot restore a snapshot). I've tried to
> >     use the following code:
> >
> >     from vboxapi import VirtualBoxManager
> >     vbox_mgr = VirtualBoxManager(None, None)
> >     vm = machByName(vbox_mgr, "win64")
> >     snap = vm.findSnapshot("1")
> >     session = vbox_mgr.mgr.getSessionObject(vbox_mgr.vbox)
> >     vm.lockMachine(session, 2);
> >     # session.console == None here
> >
> >     I've also tried to restore a snapshot using vboxshell frontend, and
> >     I get the same result:
> >
> >     'NoneType' object has no attribute 'restoreSnapshot'
> >
> >     I've tried it on 4.3.12 and on 4.3.14 - same result.
> >
> >     For a running VM the console object is there and everything works
> >     fine. I can also start VMs using "lauchVMProcess".
> >
> >     Is it a bug or is it a problem of my installation?
> >
> >     Thanks in advance,
> >     Mikhail
> >
>
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> https://www.virtualbox.org/mailman/listinfo/vbox-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20140730/2151c2ac/attachment.html>


More information about the vbox-dev mailing list