Пример #1
0
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()
Пример #2
0
    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()
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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')
Пример #6
0
    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()
Пример #8
0
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 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()
Пример #10
0
 def on_stop(self):
     JobManager().save_all()
Пример #11
0
 def build(self):
     JobManager().load()
     self.scrmngr = self.root.ids['scr_mngr']
     self.scrmngr.add_widget(JobListScreen())
     return self.root
Пример #12
0
 def stop(self):
     jm = JobManager()
     jm.stop_job()
     jm.save(jm.job)
Пример #13
0
    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)