dvp/qvm-usb: not going to implement explicit specification of USB frontend device/port

This commit is contained in:
Alexandre Bezroutchko 2012-10-12 22:12:40 +02:00
parent 4bb1182228
commit b72db5cad8
2 changed files with 14 additions and 13 deletions

View File

@ -543,13 +543,13 @@ def usb_check_attached(backend_vm, device):
xs.transaction_end(xs_trans) xs.transaction_end(xs_trans)
return attached_dev return attached_dev
def usb_check_frontend_busy(vm, front_dev, port): #def usb_check_frontend_busy(vm, front_dev, port):
devport = frontend.split("-") # devport = frontend.split("-")
if len(devport) != 2: # if len(devport) != 2:
raise QubesException("Malformed frontend syntax, must be in device-port format") # raise QubesException("Malformed frontend syntax, must be in device-port format")
# FIXME: # # FIXME:
# return xs.read('', '/local/domain/%d/device/vusb/%d/state' % (vm.xid, frontend)) == '4' # # return xs.read('', '/local/domain/%d/device/vusb/%d/state' % (vm.xid, frontend)) == '4'
return False # return False
def usb_find_unused_frontend(backend_vm_xid, vm_xid): def usb_find_unused_frontend(backend_vm_xid, vm_xid):
""" """
@ -593,8 +593,9 @@ def usb_attach(vm, backend_vm, device, frontend=None, auto_detach=False, wait=Tr
frontend = usb_find_unused_frontend(backend_vm.xid, vm.xid) frontend = usb_find_unused_frontend(backend_vm.xid, vm.xid)
else: else:
# Check if any device attached at this frontend # Check if any device attached at this frontend
if usb_check_frontend_busy(vm, frontend): #if usb_check_frontend_busy(vm, frontend):
raise QubesException("Frontend %s busy in VM %s, detach it first" % (frontend, vm.name)) # raise QubesException("Frontend %s busy in VM %s, detach it first" % (frontend, vm.name))
raise NotImplementedError("Explicit USB frontend specification is not implemented yet")
# Check if this device is attached to some domain # Check if this device is attached to some domain
attached_vm = usb_check_attached(backend_vm.xid, device) attached_vm = usb_check_attached(backend_vm.xid, device)

View File

@ -37,8 +37,8 @@ def main():
parser.add_option ("-l", "--list", action="store_true", dest="do_list", default=False) parser.add_option ("-l", "--list", action="store_true", dest="do_list", default=False)
parser.add_option ("-a", "--attach", action="store_true", dest="do_attach", default=False) parser.add_option ("-a", "--attach", action="store_true", dest="do_attach", default=False)
parser.add_option ("-d", "--detach", action="store_true", dest="do_detach", default=False) parser.add_option ("-d", "--detach", action="store_true", dest="do_detach", default=False)
parser.add_option ("-f", "--frontend", dest="frontend", # parser.add_option ("-f", "--frontend", dest="frontend",
help="Specify device id at destination VM [default: first unused]") # help="Specify device id at destination VM [default: first unused]")
parser.add_option ("--no-auto-detach", dest="auto_detach", action="store_false", default=True, parser.add_option ("--no-auto-detach", dest="auto_detach", action="store_false", default=True,
help="Fail when device already connected to other VM") help="Fail when device already connected to other VM")
parser.add_option ("--force-root", action="store_true", dest="force_root", default=False, parser.add_option ("--force-root", action="store_true", dest="force_root", default=False,
@ -79,8 +79,8 @@ def main():
backend_vm = qvm_collection.get_vm_by_name(dev['vm']) backend_vm = qvm_collection.get_vm_by_name(dev['vm'])
assert backend_vm is not None assert backend_vm is not None
kwargs = {} kwargs = {}
if options.frontend: # if options.frontend:
kwargs['frontend'] = options.frontend # kwargs['frontend'] = options.frontend
kwargs['auto_detach'] = options.auto_detach kwargs['auto_detach'] = options.auto_detach
try: try:
usb_attach(vm, backend_vm, dev['device'], **kwargs) usb_attach(vm, backend_vm, dev['device'], **kwargs)