Python API для VirtualBox - PullRequest
       11

Python API для VirtualBox

3 голосов
/ 20 февраля 2010

Я сделал интерфейс командной строки для virtualbox таким образом, чтобы виртуальной коробкой можно было управлять с удаленной машины.Теперь я пытаюсь реализовать интерфейс командной строки, используя Python VirtualBox API.Для этого я скачал пакет pyvb (в документации по python api показаны функции, которые можно использовать для реализации этого в пакете pyvb).но когда я даю pyvb.vb.VB.startVM(instance of VB class,pyvb.vm.vbVM)

КОД СТОРОНЫ СЕРВЕРА IS

from pyvb.constants import *

from pyvb.vm import *

from pyvb.vb import *

import xpcom

import pyvb

import os

import socket

import threading

class ClientThread ( threading.Thread ):

   # Override Thread's __init__ method to accept the parameters needed:
   def __init__ ( self, channel, details ):

      self.channel = channel
      self.details = details
      threading.Thread.__init__ ( self )

   def run ( self ):

      print 'Received connection:', self.details [ 0 ]
      while 1:     
         s= self.channel.recv ( 1024 )
         if(s!='end'):
            if(s=='start'):
              v=VB() 
              pyvb.vb.VB.startVM(v,pyvb.vm.vbVM)

         else:
           self.channel.close()
           break
      print 'Closed connection:', self.details [ 0 ]


server = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
server.bind ( ( '127.0.0.1', 2897 ) )
server.listen ( 5 )

while True:
   channel, details = server.accept()
   ClientThread ( channel, details ).start()

, он показывает ошибку

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
    self.run()
  File "news.py", line 27, in run
    pyvb.vb.VB.startVM(v,pyvb.vm.vbVM.getUUID(m))
  File "/usr/lib/python2.5/site-packages/pyvb-0.0.2-py2.5.egg/pyvb/vb.py", line 65, in startVM
    cmd='%s %s'%(VB_COMMAND_STARTVM, vm.getUUID())
AttributeError: 'str' object has no attribute 'getUUID'

1 Ответ

3 голосов
/ 13 марта 2010

Возможно, вы захотите проверить официальный Python API из Virtualbox. Pyvb выглядит как обертка, написанная третьей стороной.

Виртуальная коробка SDK содержит примеры Python и полную документацию по API.

...