OpenSecurity/bin/vmmanager.pyw
changeset 166 6718e19352e6
parent 162 c1c9ccd9d7c8
child 167 1e1811fa44bc
     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__':