def testBasicTimeOut(): """ one job will timeout, 10 will be ok """ jm = JobManager() def start(machineName): print "start:%s" % machineName time.sleep(10) # raise RuntimeError("testerror") print "started:%s" % machineName def start2(machineName): print "start:%s" % machineName time.sleep(5) print "started:%s" % machineName jm.do(10, "start", start, timeout=5, lock="", machineName="test.1") for i in range(10): jm.do(i, "start2", start2, timeout=20, lock="", machineName="test.%s" % i) jm.start()
def play_pause(self): jm = JobManager() if jm.job_status == 'stopped': jm.start_job() elif jm.job_status == 'paused': jm.unpause_job() else: jm.pause_job()
def _update(self, dt): self.job_time = '' self.real_job_time = '' self.job_paused_time = '' jm = JobManager() self.job_status = jm.job_status if jm.job_status != 'stopped': self.job_time = 'worked time: ' + str(jm.job_time) self.job_paused_time = 'paused time: ' + str( jm.job_total_pause_time) self.real_job_time = 'real worked time' + str(jm.real_job_time)
def __init__(self, **kwargs): super(JobListScreen, self).__init__(**kwargs) ml = self.ids.mylist for c in JobManager().job_list: status = '[color=green]{}[/color]'.format( c.status) if c.status in ['started', 'paused'] else c.status item = JobListItem( text=c.name, secondary_text="{}\n{}".format(c.description, status), ) ml.add_widget(item)
def save_job(self): jm = JobManager() job_name = self.ids.job_name.text job_description = self.ids.job_description.text jm.new_job(job_name, job_description) jm.select_job(job_name) app = App.get_running_app() app.switch_to('jobdetail')
def __init__(self, **kwargs): job = JobManager().job self.job_name = job.name self.job_description = job.description self.menu_items = [ { 'viewclass': 'MDMenuItem', 'text': 'Edit', 'on_release': lambda: print('edit') }, { 'viewclass': 'MDMenuItem', 'text': 'Analize', 'on_release': lambda: print('analyze') }, ] super(JobDetailScreen, self).__init__(**kwargs)
def testLocking(): jm = JobManager() jm.addLock("computenode.1.startvm", concurrentMax=1) # means only 1 with that lock request can execute at same time def start(machineName, computenode): print "start:%s on computenode:%s" % (machineName, computenode) time.sleep(2) # raise RuntimeError("testerror") print "started:%s" % machineName nrcomputenodes = 3 for computenodeid in range(1, 1 + nrcomputenodes): # computenodes for i in range(5): jm.do("start_%s_%s" % (computenodeid, i), start, timeout=40, lock="computenode.%s.startvm" % computenodeid, machineName="test.%s" % i, computenode=computenodeid) jm.start()
def testLocking(): jm = JobManager() jm.addLock( "computenode.1.startvm", concurrentMax=1 ) # means only 1 with that lock request can execute at same time def start(machineName, computenode): print "start:%s on computenode:%s" % (machineName, computenode) time.sleep(2) # raise RuntimeError("testerror") print "started:%s" % machineName nrcomputenodes = 3 for computenodeid in range(1, 1 + nrcomputenodes): # computenodes for i in range(5): jm.do("start_%s_%s" % (computenodeid, i), start, timeout=40, lock="computenode.%s.startvm" % computenodeid, machineName="test.%s" % i, computenode=computenodeid) jm.start()
def on_stop(self): JobManager().save_all()
def build(self): JobManager().load() self.scrmngr = self.root.ids['scr_mngr'] self.scrmngr.add_widget(JobListScreen()) return self.root
def stop(self): jm = JobManager() jm.stop_job() jm.save(jm.job)
def on_release(self): app = App.get_running_app() JobManager().select_job(self.text) app.switch_to('jobdetail')
from JumpScale import j from lib.DigitalOcean import * from lib.JobManager import * q.application.appname = "cloudautomator" q.application.start() jm = JobManager() jm.addLock( "computenode.1", 1, ) def start(machineName): print "start:%s" % machineName time.sleep(10) # raise RuntimeError("testerror") print "started:%s" % machineName def start2(machineName): print "start:%s" % machineName time.sleep(5) print "started:%s" % machineName jm.do(10, "start", start, timeout=5, lock="", machineName="test.1") for i in range(10): jm.do(i, "start2", start2, timeout=20, lock="", machineName="test.%s" % i)