OpenSecurity/bin/vmmanager.py
changeset 43 7c2e34bcdf3d
parent 41 76d9177ca509
parent 42 e10a08095ccc
child 46 f659d8fb57a8
     1.1 --- a/OpenSecurity/bin/vmmanager.py	Wed Dec 11 14:34:19 2013 +0100
     1.2 +++ b/OpenSecurity/bin/vmmanager.py	Wed Dec 11 14:49:34 2013 +0100
     1.3 @@ -16,7 +16,7 @@
     1.4  import string
     1.5  
     1.6  
     1.7 -DEBUG = False
     1.8 +DEBUG = True
     1.9  
    1.10  class USBFilter:
    1.11      vendorid = ""
    1.12 @@ -225,14 +225,7 @@
    1.13      def startVM(self, vm_name):
    1.14          print('starting ' +  vm_name)
    1.15          cmd = 'VBoxManage startvm ' + vm_name + ' --type headless' 
    1.16 -        result = self.execute(cmd)
    1.17 -        while result[0] != 0:
    1.18 -            print "Failed to start SDVM: ", vm_name, " retrying"
    1.19 -            time.sleep(1)
    1.20 -            result = self.execute(cmd)
    1.21 -        #verify against (0, 'Waiting for VM "SecurityDVM0" to power on...\r\nVM "SecurityDVM0" has been successfully started.\r\n', '')
    1.22 -        return result[0]
    1.23 -        
    1.24 +        print self.execute(cmd) #verify against (0, 'Waiting for VM "SecurityDVM0" to power on...\r\nVM "SecurityDVM0" has been successfully started.\r\n', '')
    1.25          
    1.26      # stop VM    
    1.27      def stopVM(self, vm_name):
    1.28 @@ -326,37 +319,25 @@
    1.29                      new_sdvm = self.generateSDVMName()
    1.30                      self.createVM(new_sdvm)
    1.31                      self.attachRSD(new_sdvm, connected_device)
    1.32 -
    1.33 -
    1.34 +                    #sleep like method
    1.35 +                    self.listSDVM()
    1.36                      self.startVM(new_sdvm)
    1.37 -                    # wait for machine to come up
    1.38 +                   
    1.39                      while new_ip == None:
    1.40                          time.sleep(1)
    1.41                          new_ip = self.getHostOnlyIP(new_sdvm)
    1.42                      while new_ip not in self.startNotifications:
    1.43                          time.sleep(1)
    1.44 -                    if new_ip != None:
    1.45 -                        self.mapNetworkDrive('h:', '\\\\' + new_ip + '\\USB', None, None)
    1.46                      #TODO: cleanup notifications somwhere else (eg. machine shutdown)
    1.47                      self.startNotifications.remove(new_ip)
    1.48              VMManager.handleDeviceChangeLock.release()
    1.49              return new_ip
    1.50      
    1.51      def handleBrowsingRequest(self):
    1.52 -        if VMManager.handleDeviceChangeLock.acquire(True):
    1.53 -            new_ip = None
    1.54 -            new_sdvm = self.generateSDVMName()
    1.55 -            self.createVM(new_sdvm)
    1.56 -            self.genCertificateISO(new_sdvm)
    1.57 -            self.attachCertificateISO(new_sdvm)
    1.58 -            self.startVM(new_sdvm)
    1.59 -            # wait for machine to come up
    1.60 -            while new_ip == None:
    1.61 -                time.sleep(1)
    1.62 -                new_ip = self.getHostOnlyIP(new_sdvm)
    1.63 -            while new_ip not in self.startNotifications:
    1.64 -                time.sleep(1)
    1.65 -            VMManager.handleDeviceChangeLock.release()
    1.66 +        new_sdvm = self.generateSDVMName()
    1.67 +        self.createVM(new_sdvm)
    1.68 +        self.genCertificateISO(new_sdvm)
    1.69 +        self.attachCertificateISO(new_sdvm)
    1.70          return new_sdvm
    1.71      
    1.72      # executes command over ssh on guest vm
    1.73 @@ -369,7 +350,7 @@
    1.74          return self.execute(cmd)
    1.75      
    1.76      # executes command over ssh on guest vm with X forwarding
    1.77 -    def sshGuestX11Execute(self, vm_name, prog, user_name='osecuser'):
    1.78 +    def sshGuestX11Execute(self, vm_name, prog, user_name='opensec'):
    1.79          #TODO: verify if X server is running on user account 
    1.80          #TODO: set DISPLAY accordingly
    1.81          address = self.getHostOnlyIP(vm_name)
    1.82 @@ -429,13 +410,13 @@
    1.83              return -1
    1.84          return 1
    1.85  
    1.86 -#if __name__ == '__main__':
    1.87 +if __name__ == '__main__':
    1.88  
    1.89 -    #man = VMManager.getInstance()
    1.90 +    man = VMManager.getInstance()
    1.91      #man.removeVM('SecurityDVM0')
    1.92      #man.netUse('192.168.56.134', 'USB\\')
    1.93 -    #ip = '192.168.56.139'
    1.94 -    #man.mapNetworkDrive('h:', '\\\\' + ip + '\USB', None, None)
    1.95 +    ip = '192.168.56.139'
    1.96 +    man.mapNetworkDrive('h:', '\\\\' + ip + '\USB', None, None)
    1.97      
    1.98      #man.cygwin_path = 'c:\\cygwin64\\bin\\'
    1.99      #man.handleDeviceChange()