1.1 --- a/server/vmmanager/vmmanager.py Wed Dec 04 18:01:06 2013 +0100
1.2 +++ b/server/vmmanager/vmmanager.py Fri Dec 06 10:47:26 2013 +0100
1.3 @@ -83,7 +83,7 @@
1.4
1.5 def listRSDS(self):
1.6 cmd = 'VBoxManage list usbhost'
1.7 - results = self.execute(cmd)
1.8 + results = self.execute(cmd)[1]
1.9 results = results.split('Host USB Devices:')[1].strip()
1.10
1.11 items = list( "UUID:"+result for result in results.split('UUID:') if result != '')
1.12 @@ -134,7 +134,7 @@
1.13 attached_devices = dict()
1.14 for vm in vms:
1.15 rsd_filter = self.getUSBFilter(vm)
1.16 - if filter != None:
1.17 + if rsd_filter != None:
1.18 attached_devices[vm] = rsd_filter
1.19 return attached_devices
1.20
1.21 @@ -163,7 +163,8 @@
1.22 self.execute(cmd)
1.23 cmd = 'VBoxManage storagectl ' + vm_name + ' --name contr1 --add sata --portcount 2'
1.24 self.execute(cmd)
1.25 - cmd = 'VBoxManage storageattach ' + vm_name + ' --storagectl contr1 --port 0 --device 0 --type hdd --mtype normal --medium \"'+ machineFolder + '\SecurityDVM\SecurityDVM.vmdk\"'
1.26 + cmd = 'VBoxManage storageattach ' + vm_name + ' --storagectl contr1 --port 0 --device 0 --type hdd --medium \"'+ machineFolder + '\SecurityDVM\SecurityDVM.vmdk\"'
1.27 + #--mtype immutable
1.28 self.execute(cmd)
1.29 return
1.30
1.31 @@ -207,7 +208,7 @@
1.32 # return the description set for an existing VM
1.33 def getVMInfo(self, vm_name):
1.34 cmd = 'VBoxManage showvminfo ' + vm_name + ' --machinereadable'
1.35 - results = self.execute(cmd)
1.36 + results = self.execute(cmd)[1]
1.37 props = dict((k.strip(),v.strip().strip('"')) for k,v in (line.split('=', 1) for line in results.splitlines()))
1.38 return props
1.39
1.40 @@ -256,19 +257,25 @@
1.41 attached_devices = self.getAttachedRSDs()
1.42 connected_devices = self.listRSDS()
1.43 for vm_name in attached_devices.keys():
1.44 - if attached_devices[vm_name] not in connected_devices.values():
1.45 + if connected_devices and attached_devices[vm_name] not in connected_devices.values():
1.46 + # self.netUse(vm_name)
1.47 self.stopVM(vm_name)
1.48 self.removeVM(vm_name)
1.49
1.50 attached_devices = self.getAttachedRSDs()
1.51 for connected_device in connected_devices.values():
1.52 - if connected_device not in attached_devices.values():
1.53 + if attached_devices or connected_device not in attached_devices.values():
1.54 new_sdvm = self.generateSDVMName()
1.55 self.createVM(new_sdvm)
1.56 - self.genCertificateISO(new_sdvm)
1.57 - self.attachCertificateISO(new_sdvm)
1.58 self.attachRSD(new_sdvm, connected_device)
1.59 self.startVM(new_sdvm)
1.60 + self.netUse(new_sdvm)
1.61 +
1.62 + def handleBrowsingRequest(self):
1.63 + new_sdvm = self.generateSDVMName()
1.64 + self.createVM(new_sdvm)
1.65 + self.genCertificateISO(new_sdvm)
1.66 + self.attachCertificateISO(new_sdvm)
1.67
1.68 # executes command over ssh on guest vm
1.69 def sshGuestExecute(self, vm_name, prog, user_name='opensec'):
1.70 @@ -292,7 +299,7 @@
1.71 # executes NET USE and connects to samba share on guestos
1.72 def netUse(self, vm_name):
1.73 ip = self.getHostOnlyIP(vm_name)
1.74 - cmd = 'net use H: \\' + ip + '\RSD_Device'
1.75 + cmd = 'net use H: \\' + ip + '\USB'
1.76 return self.execute(cmd)
1.77
1.78