1.1 --- a/OpenSecurity/bin/opensecurityd.pyw Wed Feb 26 17:27:07 2014 +0100
1.2 +++ b/OpenSecurity/bin/opensecurityd.pyw Mon Mar 03 15:05:17 2014 +0100
1.3 @@ -73,7 +73,8 @@
1.4 # vars
1.5
1.6 # Global VMManager instance
1.7 -gvm_mgr = VMManager.getInstance()
1.8 +gvm_mgr = None
1.9 +
1.10
1.11 # ------------------------------------------------------------
1.12 # code
1.13 @@ -100,7 +101,7 @@
1.14 def GET(self):
1.15 log_call(web.ctx.environ)
1.16 try:
1.17 - browsingVM = gvm_mgr.handleBrowsingRequest()
1.18 + browsingVM = vmmanager().handleBrowsingRequest()
1.19 return browsingVM
1.20 except:
1.21 raise web.internalerror()
1.22 @@ -123,11 +124,11 @@
1.23
1.24 def GET(self, name):
1.25 log_call(web.ctx.environ)
1.26 - return gvm_mgr.getVMInfo(name)
1.27 + return vmmanager().getVMInfo(name)
1.28
1.29 def DELETE(self, name):
1.30 log_call(web.ctx.environ)
1.31 - return gvm_mgr.removeVM(name)
1.32 + return vmmanager().removeVM(name)
1.33
1.34
1.35 class os_sdvm_application:
1.36 @@ -139,9 +140,9 @@
1.37 def GET(self, name, command):
1.38 log_call(web.ctx.environ)
1.39 command = '/' + command
1.40 - result = Cygwin.sshExecuteX11(command, gvm_mgr.getHostOnlyIP(name), 'osecuser', Cygwin.cygPath(gvm_mgr.getMachineFolder()) + '/' + name + '/dvm_key' )
1.41 + result = Cygwin.sshExecuteX11(command, vmmanager().getHostOnlyIP(name), 'osecuser', Cygwin.cygPath(gvm_mgr.getMachineFolder()) + '/' + name + '/dvm_key' )
1.42 self.poweroffVM(name)
1.43 - return gvm_mgr.removeVM(name)
1.44 + return vmmanager().removeVM(name)
1.45
1.46
1.47 class os_sdvm_ip:
1.48 @@ -152,7 +153,7 @@
1.49
1.50 def GET(self, name):
1.51 log_call(web.ctx.environ)
1.52 - return gvm_mgr.getHostOnlyIP(name)
1.53 + return vmmanager().getHostOnlyIP(name)
1.54
1.55
1.56 class os_sdvm_start:
1.57 @@ -163,7 +164,7 @@
1.58
1.59 def GET(self, name):
1.60 log_call(web.ctx.environ)
1.61 - return gvm_mgr.startVM(name)
1.62 + return vmmanager().startVM(name)
1.63
1.64
1.65 class os_sdvm_stop:
1.66 @@ -174,7 +175,7 @@
1.67
1.68 def GET(self, name):
1.69 log_call(web.ctx.environ)
1.70 - return gvm_mgr.stopVM(name)
1.71 + return vmmanager().stopVM(name)
1.72
1.73
1.74 class os_sdvms:
1.75 @@ -187,16 +188,16 @@
1.76 def GET(self):
1.77 """get the list of SDVMs"""
1.78 log_call(web.ctx.environ)
1.79 - return gvm_mgr.listSDVM()
1.80 + return vmmanager().listSDVM()
1.81
1.82 def POST(self):
1.83 """create a new SDVM"""
1.84 log_call(web.ctx.environ)
1.85
1.86 # get a new vm-name
1.87 - name = gvm_mgr.generateSDVMName()
1.88 + name = vmmanager().generateSDVMName()
1.89 try:
1.90 - gvm_mgr.createVM(name)
1.91 + vmmanager().createVM(name)
1.92 except:
1.93 raise web.internalerror()
1.94
1.95 @@ -210,7 +211,7 @@
1.96
1.97 def GET(self, name):
1.98 log_call(web.ctx.environ)
1.99 - return gvm_mgr.getVMInfo(name)
1.100 + return vmmanager().getVMInfo(name)
1.101
1.102
1.103 class os_vms:
1.104 @@ -221,7 +222,7 @@
1.105
1.106 def GET(self):
1.107 log_call(web.ctx.environ)
1.108 - return gvm_mgr.listVM()
1.109 + return vmmanager().listVM()
1.110
1.111
1.112 class os_root:
1.113 @@ -234,7 +235,7 @@
1.114 log_call(web.ctx.environ)
1.115 res = "'os_server': { "
1.116 res += "'version': '" + __version__ + "', "
1.117 - res += "'machine_folder': '" + gvm_mgr.getDefaultMachineFolder() + "' "
1.118 + res += "'machine_folder': '" + vmmanager().getDefaultMachineFolder() + "' "
1.119 res += "}"
1.120 return res
1.121
1.122 @@ -247,7 +248,7 @@
1.123 def GET(self):
1.124 #return gvm_mgr.guestExecute('SecurityDVM', 'sudo apt-get -y update')
1.125 log_call(web.ctx.environ)
1.126 - return gvm_mgr.updateTemplate()
1.127 + return vmmanager().updateTemplate()
1.128
1.129
1.130 def log_call(web_environ):
1.131 @@ -258,8 +259,22 @@
1.132 except:
1.133 pass
1.134
1.135 -# start
1.136 -if __name__ == "__main__":
1.137 +
1.138 +def main():
1.139 + """main startup for the opensecuirityd"""
1.140 server = web.application(opensecurity_urls, globals())
1.141 server.run()
1.142
1.143 +
1.144 +def vmmanager():
1.145 +
1.146 + """helper method to make lazy init of VMManager"""
1.147 + if gvm_mgr is None:
1.148 + gvm_mgr = VMManager.getInstance()
1.149 + return gvm_mgr
1.150 +
1.151 +
1.152 +# start
1.153 +if __name__ == "__main__":
1.154 + main()
1.155 +