Пример #1
0
 def Terminate(self):
     """ Shutdown the region after sending an Alert and delaying for a specified interval """
     p = provision._findRegionProcess(self.slot_number)
     if (p == None):
         return (True)
     p.terminate()
     
     if inworldz.util.process.WaitForProcessTermination(p, 30):
         self.ChangeState(RegionState.DeployedStopped)
         return True
     else:
         return False
Пример #2
0
    def Shutdown(self, delay=60, terminateWait=60):
        """ Shutdown the region after sending an Alert and delaying for a specified interval """
        if (not self.IsRunning()):
            #not an error. this is perfectly fine. the region is already down so we have nothing to do
            return True
        
        self.establishRemoteAdminApiCredentials()

        self.remoteadmin_session.api.Region.Shutdown(self.get_uuid(), delay)
    
        p = provision._findRegionProcess(self.slot_number)
        if inworldz.util.process.WaitForProcessTermination(p, terminateWait):
            self.ChangeState(RegionState.DeployedStopped)
            return True
        else:
            return False
Пример #3
0
 def destroy(self):
     p = provision._findRegionProcess(self.slot_number)
     if p:
         raise ServiceError("Cannot destroy a running region")
     
     """ Zap the config file """
     regionDir = os.path.join(provision.GetSlotDirectory(self.slot_number), "bin", "Regions")
     configFile = os.path.join(regionDir, self.get_name_label() + ".xml")
     if (os.path.exists(configFile)):
         os.remove(configFile)
     
     self.regionEntry.unprovision()
     
     """ Remove our Entry in the Host """
     self.regionHost.region_del(self.get_uuid())
     ServiceBase.destroy(self)
Пример #4
0
 def Start(self, restart=False, delay=60):
     """ Requests a start/restart of the managed sim node with an alert and a delay.
         If restart is False nothing is done if we are already running.  If True and the
         region is running an alert is sent and the region restarted after the delay. """
     p = provision._findRegionProcess(self.slot_number)
     if p != None:
         if (restart == False):
             return (True)
         else:
             self.Shutdown(delay)
     
     """" Make sure there is a region config here... """
     
     bindir = os.path.join(self.slot_directory, "bin")
     exename = os.path.join(bindir, self.exe_name)
     exeargs = self.exe_args
     p = self.regionHost.RunCommandEx(bindir, exename, exeargs)
     
     if p != None:
         self.ChangeState(RegionState.DeployedRunning)
         return True
     else:
         return False
Пример #5
0
 def DumpThreadStacks(self):
     p = provision._findRegionProcess(self.slot_number)
     
     return inworldz.util.process.DumpThreadStacks(p.pid)
     
Пример #6
0
 def IsRunning(self):
     """ Is this simulator currently running? """
     p = provision._findRegionProcess(self.slot_number)
     return p != None
Пример #7
0
 def get_handle_count(self):
     p = provision._findRegionProcess(self.slot_number)
     if p != None:
         return p.get_num_handles()
     else:
         return 0
Пример #8
0
 def get_memory_used(self):
     p = provision._findRegionProcess(self.slot_number)
     if p != None:
         return p.get_memory_info()[1]
     else:
         return 0
Пример #9
0
 def get_cpu_used_percentage(self):
     p = provision._findRegionProcess(self.slot_number)
     if p != None:
         return p.get_cpu_percent()
     else:
         return 0.0