1.1 --- a/OpenSecurity/bin/vmmanager.pyw Wed Apr 23 14:55:02 2014 +0200
1.2 +++ b/OpenSecurity/bin/vmmanager.pyw Fri Apr 25 12:44:12 2014 +0200
1.3 @@ -54,26 +54,67 @@
1.4 # return self.coords[item]
1.5
1.6 class VMManager(object):
1.7 +
1.8 vmRootName = "SecurityDVM"
1.9 systemProperties = None
1.10 _instance = None
1.11 machineFolder = ''
1.12 rsdHandler = None
1.13 + status_message = 'Starting up...'
1.14 +
1.15 +
1.16 + def __init__(self):
1.17 +
1.18 + self.systemProperties = self.getSystemProperties()
1.19 +
1.20 + # only proceed if we have a working background environment
1.21 + if self.backend_ok():
1.22 + self.machineFolder = self.systemProperties["Default machine folder"]
1.23 + self.cleanup()
1.24 + self.rsdHandler = DeviceHandler(self)
1.25 + self.rsdHandler.start()
1.26 + else:
1.27 + logger.critical(self.status_message)
1.28
1.29 - def __init__(self):
1.30 - self.systemProperties = self.getSystemProperties()
1.31 - self.machineFolder = self.systemProperties["Default machine folder"]
1.32 - self.cleanup()
1.33 - self.rsdHandler = DeviceHandler(self)
1.34 - self.rsdHandler.start()
1.35 - return
1.36 -
1.37 +
1.38 @staticmethod
1.39 def getInstance():
1.40 if VMManager._instance == None:
1.41 VMManager._instance = VMManager()
1.42 return VMManager._instance
1.43
1.44 +
1.45 + def backend_ok(self):
1.46 +
1.47 + """check if the backend (VirtualBox) is sufficient for our task"""
1.48 +
1.49 + # ensure we have our system props
1.50 + if self.systemProperties == None:
1.51 + self.systemProperties = self.getSystemProperties()
1.52 + if self.systemProperties == None:
1.53 + self.status_message = 'Failed to get backend system properties. Is Backend (VirtualBox?) installed?'
1.54 + return False
1.55 +
1.56 + # check for existing Extension pack
1.57 + if not 'Remote desktop ExtPack' in self.systemProperties:
1.58 + self.status_message = 'No remote desktop extension pack found. Please install the "Oracle VM VirtualBox Extension Pack" from https://www.virtualbox.org/wiki/Downloads.'
1.59 + return False
1.60 + if self.systemProperties['Remote desktop ExtPack'] == 'Oracle VM VirtualBox Extension Pack ':
1.61 + self.status_message = 'Unsure if suitable extension pack is installed. Please install the "Oracle VM VirtualBox Extension Pack" from https://www.virtualbox.org/wiki/Downloads.'
1.62 + return False
1.63 +
1.64 + # check if we do have our root VMs installed
1.65 + vms = self.listVM()
1.66 + if not self.vmRootName in vms:
1.67 + self.status_message = 'Unable to locate root SecurityDVM. Please download and setup the initial image.'
1.68 + return False
1.69 +
1.70 + # basically all seems nice and ready to rumble
1.71 + self.status_message = 'All is ok.'
1.72 +
1.73 + return True
1.74 +
1.75 +
1.76 def cleanup(self):
1.77 if self.rsdHandler != None:
1.78 self.rsdHandler.stop()