1.1 --- a/OpenSecurity/bin/vmmanager.pyw Mon May 19 16:43:11 2014 +0100
1.2 +++ b/OpenSecurity/bin/vmmanager.pyw Tue May 20 15:10:33 2014 +0100
1.3 @@ -130,7 +130,10 @@
1.4 self.rsdHandler.join()
1.5 drives = self.getNetworkDrives()
1.6 for drive in drives.keys():
1.7 - result = urllib2.urlopen('http://127.0.0.1:8090/netumount?'+'drive_letter='+drive).readline()
1.8 + try:
1.9 + result = urllib2.urlopen('http://127.0.0.1:8090/netumount?'+'drive_letter='+drive).readline()
1.10 + except urllib2.URLError:
1.11 + logger.error("Network drive disconnect failed. OpenSecurity Tray client not running.")
1.12
1.13 for vm in self.listSDVM():
1.14 self.poweroffVM(vm)
1.15 @@ -615,12 +618,19 @@
1.16 while self.running:
1.17 self.restart.clear()
1.18 self.started.clear()
1.19 - if self.drive != None:
1.20 - browsing_vm = urllib2.urlopen('http://127.0.0.1:8090/netumount?'+'drive_letter='+self.drive).readline()
1.21 - self.drive = None
1.22 +
1.23 + if self.drive == None:
1.24 + logger.info("Missing browsing SDVM's network drive letter. Skipping disconnect")
1.25 + else:
1.26 + try:
1.27 + browsing_vm = urllib2.urlopen('http://127.0.0.1:8090/netumount?'+'drive_letter='+self.drive).readline()
1.28 + self.drive = None
1.29 + except urllib2.URLError:
1.30 + logger.error("Network drive disconnect failed. OpenSecurity Tray client not running.")
1.31 + continue
1.32
1.33 self.ip_addr = None
1.34 -
1.35 +
1.36 if self.vm_name != None:
1.37 self.vmm.poweroffVM(self.vm_name)
1.38 self.vmm.removeVM(self.vm_name)
1.39 @@ -638,8 +648,14 @@
1.40 if self.drive == None:
1.41 continue
1.42
1.43 - net_resource = '\\\\' + self.ip_addr + '\\Download'
1.44 - result = urllib2.urlopen('http://127.0.0.1:8090/netmount?'+'drive_letter='+self.drive+'&net_resource='+net_resource).readline()
1.45 + try:
1.46 + net_resource = '\\\\' + self.ip_addr + '\\Download'
1.47 + result = urllib2.urlopen('http://127.0.0.1:8090/netmount?'+'drive_letter='+self.drive+'&net_resource='+net_resource).readline()
1.48 + except urllib2.URLError:
1.49 + logger.error("Network drive connect failed. OpenSecurity Tray client not running.")
1.50 + self.drive = None
1.51 + continue
1.52 +
1.53
1.54 self.started.set()
1.55
1.56 @@ -681,12 +697,17 @@
1.57 for vm_name in self.attachedRSDs.keys():
1.58 if self.attachedRSDs[vm_name] not in tmp_rsds.values():
1.59 drive = self.vmm.getNetworkDrive(vm_name)
1.60 - #self.stopVM(vm_name)
1.61 + if drive == None:
1.62 + logger.error("Error getting SDVM's network drive letter.")
1.63 + continue
1.64 + try:
1.65 + result = urllib2.urlopen('http://127.0.0.1:8090/netumount?'+'drive_letter='+drive).readline()
1.66 + except urllib2.URLError:
1.67 + logger.error("Network drive disconnect failed. OpenSecurity Tray client not running.")
1.68 + continue
1.69 self.vmm.detachRSD(vm_name)
1.70 self.vmm.poweroffVM(vm_name)
1.71 self.vmm.removeVM(vm_name)
1.72 - if drive != None:
1.73 - result = urllib2.urlopen('http://127.0.0.1:8090/netumount?'+'drive_letter='+drive).readline()
1.74 break
1.75
1.76
1.77 @@ -710,10 +731,19 @@
1.78 self.vmm.attachRSD(new_sdvm, connected_device)
1.79 self.vmm.startVM(new_sdvm)
1.80 new_ip = self.vmm.waitStartup(new_sdvm)
1.81 + if new_ip == None:
1.82 + logger.error("Error getting IP address of SDVM.")
1.83 + continue
1.84 drive = self.vmm.genNetworkDrive()
1.85 - if new_ip != None:
1.86 + if drive == None:
1.87 + logger.error("Error getting drive letter for network drive.")
1.88 + continue
1.89 + try:
1.90 net_resource = '\\\\' + new_ip + '\\USB'
1.91 result = urllib2.urlopen('http://127.0.0.1:8090/netmount?'+'drive_letter='+drive+'&net_resource='+net_resource).readline()
1.92 + except urllib2.URLError:
1.93 + logger.error("Network drive connect failed. OpenSecurity Tray client not running.")
1.94 + continue
1.95
1.96
1.97 if __name__ == '__main__':