вторник, 10 июля 2012 г.

Attach USB dev to VirtualBox in cron

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, commands, time, datetime
#read is dev is attach??
def checkdev():
 a = commands.getoutput('vboxmanage showvminfo officexp | grep MF4010')
 if a:
  mylog("Есть устройство")
  sys.exit()

def getUUID():
 uuid = commands.getoutput('vboxmanage list usbhost | grep UUID').split(' ')[-1]
 if not uuid:
  mylog("Устройство не подключено физически к компьютеру или выключено")
  sys.exit()
 mylog(uuid)
 return uuid

def addUUIDtoVBox():
 uuid = getUUID()
 mylog("Подключаю устройство "+uuid+" к виртуальной машине")
 command = 'vboxmanage controlvm officexp usbattach '+uuid
 uuid = commands.getoutput(command)

def mylog(mess):
 mess = datetime.datetime.now().__str__()+" "+mess+"\n"
 print mess
 f = open("/home/serg/pub/scanner/scannerlog.txt", 'a')
 f.write(mess)
 f.close()

while 1:
 checkdev()
 time.sleep(0.5)
 addUUIDtoVBox()
 time.sleep(1)
P.S. Это писалось из-за того, что у девайса меняется UUID. И немаловажный нюанс - девайс один единственный. Для большего количества надо немного изменить getUUID()