Exemple #1
0
    def create_task(self,
                    name,
                    url,
                    cmd_line,
                    replicate_count,
                    mem_limit,
                    cpu_soft_limit,
                    cpu_limit,
                    deploy_step_size=-1,
                    one_task_per_host=False,
                    restrict_tags=[],
                    conf=None):

        galaxy_sdk = sdk.GalaxySDK(self.master_addr)
        status, job_id = galaxy_sdk.make_job(
            name,
            'ftp',
            url,
            cmd_line,
            replicate_num=replicate_count,
            mem_limit=mem_limit,
            cpu_limit=cpu_limit,
            cpu_soft_limit=cpu_soft_limit,
            deploy_step_size=deploy_step_size,
            one_task_per_host=one_task_per_host,
            restrict_tags=restrict_tags,
            conf=conf)
        return status, job_id
Exemple #2
0
def main():
    master_addr = "localhost:8102"
    job_id = 0
    replicate_num = 0
    deploy_step_size = -1
    try:
        opts,args = getopt.getopt(sys.argv[1:],"s:vh",["version","help", "job_id=", "replicate_num=", "deploy_step_size="])
    except getopt.GetoptError:
        sys.exit(2)

    for opt in opts: 
        if opt[0] == "s" :
            master_addr = opt[1]
        elif opt[0] == "--job_id" :
            job_id = int(opt[1])
        elif opt[0] == "--replicate_num" :
            replicate_num = int(opt[1])
        elif opt[0] == "--deploy_step_size" :
            deploy_step_size = int(opt[1])
        elif opt[0] == "--help" :
            usage()
            sys.exit(0)
        else : 
            LOG.critical("invalid args %s"%(str(opt)))
            sys.exit(-1)
    master = sdk.GalaxySDK(master_addr) 
    LOG.info("get master sdk")
    if deploy_step_size == -1 :
        ret = master.update_job(job_id, replicate_num)
    else :
        ret = master.update_job(job_id, replicate_num, deploy_step_size)
    if ret == False :
        LOG.critical("update job failed")
        return -1
    return 0
Exemple #3
0
 def job_history(self, job_id):
     galaxy_sdk = sdk.GalaxySDK(self.master_addr)
     status, task_list = galaxy_sdk.get_scheduled_history(int(job_id))
     if not status:
         return False, []
     ret_task_list = []
     for task in task_list:
         ret_task_list.append(task.__dict__)
     return True, ret_task_list
Exemple #4
0
def get_real_time_status(request):
    galaxy = sdk.GalaxySDK(request.master)
    response = galaxy.get_real_time_status()
    builder = http.ResponseBuilder()
    status = pb2dict.protobuf_to_dict(response)
    return builder.ok(data={
        "status": status,
        "dc": request.data_center,
        "master": request.master
    }).build_json()
Exemple #5
0
    def list_task_by_job_id(self, job_id):
        galaxy_sdk = sdk.GalaxySDK(self.master_addr)
        status, task_list = galaxy_sdk.list_task_by_job_id(int(job_id))
        if not status:
            return False, []

        ret_task_list = []
        for task in task_list:
            ret_task_list.append(task.__dict__)
        return True, ret_task_list
Exemple #6
0
    def list_task_by_host(self, agent):
        galaxy_sdk = sdk.GalaxySDK(self.master_addr)
        status, task_list = galaxy_sdk.list_task_by_host(str(agent))
        if not status:
            return False, []

        ret_task_list = []
        for task in task_list:
            ret_task_list.append(task.__dict__)
        return True, ret_task_list
Exemple #7
0
def job_all(request):
    galaxy = sdk.GalaxySDK(request.master)
    jobs, status = galaxy.get_all_job()
    job_dicts = []
    for job in jobs:
        job_dict = pb2dict.protobuf_to_dict(job)
        job_dict['state'] = master_pb2.JobState.Name(job_dict['state'])   
        job_dicts.append(job_dict)
    return util.render_tpl(request, {"jobs":job_dicts,
                                     "dc":request.data_center,
                                     "master":request.master,
                                     "trace":request.trace}, "index.html")
Exemple #8
0
def get_total_status(request):
    dcs = {}
    with open(settings.LITE_DB_PATH, "rb") as fd:
        dcs = json.load(fd)
    datas = []
    for key in dcs:
        galaxy = sdk.GalaxySDK(dcs[key]["master"])
        response = galaxy.get_real_time_status()
        builder = http.ResponseBuilder()
        status = pb2dict.protobuf_to_dict(response)
        datas.append(status);
    builder = http.ResponseBuilder()
    return builder.ok(data = {"status":datas}).build_json()
Exemple #9
0
def test_deploy_task():
    client = sdk.GalaxySDK("127.0.0.1:%d" % MASTER_PORT)
    status, job_id = client.make_job("test",
                                     "ftp",
                                     package,
                                     "sh task.sh",
                                     replicate_num=4,
                                     mem_limit=1024,
                                     cpu_limit=1,
                                     deploy_step_size=1)
    assert status
    time.sleep(2)
    with open(master_ctrl.output) as fd:
        log = fd.read()
        pass
Exemple #10
0
def test_create_job():
    client = sdk.GalaxySDK("127.0.0.1:%d" % MASTER_PORT)
    ret, job_id = client.make_job("task",
                                  "ftp",
                                  package,
                                  "sh task.sh",
                                  replicate_num=0)
    assert job_id >= 0
    status, job_list = client.list_all_job()
    assert status
    assert len(job_list) == 1
    client.kill_job(job_id)
    time.sleep(1)
    status, job_list = client.list_all_job()
    assert status
    assert len(job_list) == 0
Exemple #11
0
    def create_task(self,
                    name,
                    url,
                    cmd_line,
                    replicate_count,
                    mem_limit,
                    cpu_quota,
                    deploy_step_size=-1):

        galaxy_sdk = sdk.GalaxySDK(self.master_addr)
        status, job_id = galaxy_sdk.make_job(name,
                                             'ftp',
                                             url,
                                             cmd_line,
                                             replicate_num=replicate_count,
                                             mem_limit=mem_limit,
                                             cpu_limit=cpu_quota,
                                             deploy_step_size=deploy_step_size)
        return status, job_id
Exemple #12
0
    def update_job(self, job_id, replicate_num):

        galaxy_sdk = sdk.GalaxySDK(self.master_addr)
        return galaxy_sdk.update_job(job_id, replicate_num)
Exemple #13
0
    def kill_job(self, job_id):

        galaxy_sdk = sdk.GalaxySDK(self.master_addr)
        galaxy_sdk.kill_job(job_id)
Exemple #14
0
 def list_node(self):
     galaxy_sdk = sdk.GalaxySDK(self.master_addr)
     node_list = galaxy_sdk.list_all_node()
     return node_list
Exemple #15
0
 def list_tag(self):
     galaxy_sdk = sdk.GalaxySDK(self.master_addr)
     return galaxy_sdk.list_tag()
Exemple #16
0
def list_tag():
    master = sdk.GalaxySDK('localhost:8102')
    ret = master.list_tag()
    print ret
Exemple #17
0
def test_tag_agent():
    master = sdk.GalaxySDK('localhost:8102')
    status = master.tag_agent('dev',
                              set(['cq01-rdqa-pool056.cq01.baidu.com:8201']))
    print status
Exemple #18
0
def test_list_node():
    client = sdk.GalaxySDK("127.0.0.1:%d" % MASTER_PORT)
    node_list = client.list_all_node()
    assert len(node_list) == 1
Exemple #19
0
 def list_jobs(self):
     galaxy_sdk = sdk.GalaxySDK(self.master_addr)
     status, job_list = galaxy_sdk.list_all_job()
     return status, job_list
Exemple #20
0
 def tag_agent(self, tag, agent_set):
     galaxy_sdk = sdk.GalaxySDK(self.master_addr)
     status = galaxy_sdk.tag_agent(tag, agent_set)
     return status
Exemple #21
0
def pod_all(request):
    galaxy = sdk.GalaxySDK(request.master)
    galaxy.