OpenSecurity/bin/opensecurityd.pyw
changeset 86 a169498c5314
parent 79 617009c32da0
child 87 d5b04809faca
     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 +