Exemplo n.º 1
0
def svc_update(request):
    try:
        logger = logging.getLogger('django')
        requestData = json.loads(request.body)
        scheduler_id = requestData['scheduler_id']
        svc_params = requestData['svc_params']
        logger.info("scheduler_id: ")
        logger.info(scheduler_id)
        logger.info("svc_params: ")
        logger.info(jsonStr(svc_params))

        svc_catalog = svc_params['id'].split("/")[1]
        logger.info("svc_catalog: ")
        logger.info(svc_catalog)
        apply_id = svc_params['id'].split("/")[2]
        logger.info("apply_id: ")
        logger.info(apply_id)

        action=models.SVC_DEPLOY_ACTION_CHOICES[1][1]
        svc_deploy = models.SVC_Deploy(action=action,
                             svc_catalog=svc_catalog, apply_id=apply_id,
                             status=models.SVC_DEPLOY_STATUS_CHOICES[0][0],
                             description=models.SVC_DEPLOY_STATUS_CHOICES[0][1])
        svc_deploy.save()
        svc_deploy_id = svc_deploy.id
        logger.info("##########" + action + " " + svc_params['id'] + " SUBMITTED" + "##########")

        deploy_info = marathonLib.svc_update(scheduler_id, jsonStr(svc_params))
        svc_deploy.deploy_id = deploy_info['deploymentId']
        svc_deploy.status = models.SVC_DEPLOY_STATUS_CHOICES[1][0]
        svc_deploy.description = models.SVC_DEPLOY_STATUS_CHOICES[1][1]
        svc_deploy.save()
        logger.info("##########" + action + " " + svc_params['id'] + " DEPLOYING" + "##########")

        msg = {"deploy_id": svc_deploy_id}
    except Exception as e:
        logger.error(e, exc_info=1)
        svc_deploy.status = models.SVC_DEPLOY_STATUS_CHOICES[2][0]
        svc_deploy.description = models.SVC_DEPLOY_STATUS_CHOICES[2][1]
        svc_deploy.info = str(e)
        svc_deploy.save()
        logger.info("##########" + action + " " + svc_params['id'] + " EXCEPTION" + "##########")
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 2
0
def get_svc_deploy_status(request):
    try:
        logger = logging.getLogger('django')
        deploy_id = request.GET.get("deploy_id")
        item = models.SVC_Deploy.objects.get(id=deploy_id)
        msg = {}
        msg['deploy_id'] = item.id
        msg['action'] = item.action
        msg['apply_id'] = item.apply_id
        msg['start_time'] = str(localtime(item.start_time))
        if(item.end_time == None):
            msg['end_time'] = '-'
        else:
            msg['end_time'] = str(localtime(item.end_time))
        msg['status'] = item.status
        msg['description'] = item.description
        if(item.info == None):
            msg['info'] = '-'
        else:
            msg['info'] = item.info
    except Exception as e:
        logger.error(e, exc_info=1)
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 3
0
def get_schedulers(request):
    try:
        logger = logging.getLogger('django')
        msg = CONF.SCHEDULER
    except Exception as e:
        logger.error(e, exc_info=1)
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 4
0
def get_svc_apps(scheduler_id, svc_catalog, apply_id):
    try:
        logger = logging.getLogger('django')
        marathon_leader = get_marathon_leader(scheduler_id)
        headers = {'content-type':'application/json;charset=utf-8'}
        r = requests.get('http://'+marathon_leader['leader']+'/v2/groups/'+svc_catalog+'/'+str(apply_id), headers=headers)
        #print r.status_code
        #print r.json()
        app_name_list = []
        app_info = []
        groups = r.json()
        if(r.status_code == 200):
            for item in groups['apps']:
                app_name_list.append(item['id'])
        else:
            raise Exception(jsonStr(groups))

        for app in app_name_list:
            r = requests.get('http://'+marathon_leader['leader']+'/v2/apps'+app, headers=headers)
            msg = r.json()['app']
            app_info_tmp = {}
            if(r.status_code == 200):
                app_info_tmp['id'] = msg['id']
                app_info_tmp['mem'] = msg['mem']
                app_info_tmp['cpus'] = msg['cpus']
                app_info_tmp['instances'] = msg['instances']
                app_info_tmp['tasksStaged'] = msg['tasksStaged']
                app_info_tmp['tasksRunning'] = msg['tasksRunning']
                app_info_tmp['tasksHealthy'] = msg['tasksHealthy']
                app_info_tmp['tasksUnhealthy'] = msg['tasksUnhealthy']
                app_info.append(app_info_tmp)
            else:
                raise Exception(jsonStr(msg))
    except Exception as e:
        #traceback.print_exc()
        logger.error(e, exc_info=1)
        raise Exception(e)
    else:
        return app_info
Exemplo n.º 5
0
def get_marathon_leader(request):
    try:
        logger = logging.getLogger('django')
        scheduler_id = request.GET.get("scheduler_id")
        marathon_leader = marathonLib.get_marathon_leader(scheduler_id)
        msg = marathon_leader
    except Exception as e:
        logger.error(e, exc_info=1)
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 6
0
def get_svc_apps(request):
    try:
        logger = logging.getLogger('django')
        scheduler_id = request.GET.get("scheduler_id")
        svc_catalog = request.GET.get("svc_catalog")
        apply_id = request.GET.get("apply_id")
        msg = marathonLib.get_svc_apps(scheduler_id, svc_catalog, apply_id)
    except Exception as e:
        logger.error(e, exc_info=1)
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 7
0
def posttest(request):
    try:
        logger = logging.getLogger('django')
        requestData = json.loads(request.body)
        email = requestData['email']
        logger.info(email)
        cutime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        logger.info(cutime)
        msg = cutime
    except Exception as e:
        logger.error(e, exc_info=1)
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 8
0
def gettest(request):
    try:
        logger = logging.getLogger('django')
        a = request.GET.get("a")
        b = request.GET.get("b")
        logger.info(a)
        logger.info(b)
        cu_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        msg = "Hello world, a = " + a + ", b = " + b + ", it's time now " + cu_time
        import codecs
        with codecs.open("./template/sharedfiles/sharedfile.txt", "a", "utf-8") as f:
            f.write(msg + "\n")
        logger.info(msg)
    except Exception as e:
        logger.error(e, exc_info=1)
        ERRORCODE['INTERNAL_ERROR']['msg'] = str(e)
        return jsonResponse(ERRORCODE['INTERNAL_ERROR'])
    else:
        ERRORCODE['SUCCESS']['msg'] = msg
        logger.info(jsonStr(ERRORCODE['SUCCESS']))
        return jsonResponse(ERRORCODE['SUCCESS'])
Exemplo n.º 9
0
def get_app_instances(scheduler_id, app_id):
    try:
        logger = logging.getLogger('django')
        marathon_leader = get_marathon_leader(scheduler_id)
        mesos_info = get_mesos_info(scheduler_id)
        mesos_leader = mesos_info['mesos_leader']
        framework_id = mesos_info['framework_id']
        headers = {'content-type':'application/json;charset=utf-8'}
        r = requests.get('http://'+marathon_leader['leader']+'/v2/apps'+app_id+'/tasks', headers=headers)
        #print r.status_code
        #print r.json()
        msg = None
        if(r.status_code == 200):
            msg = r.json()['tasks']
            for msg_item in msg:
                msg_item['log'] = mesos_leader + "#/slaves/" + msg_item['slaveId'] + "/frameworks/" + framework_id + "/executors/" + msg_item['id']
        else:
            raise Exception(jsonStr(r.json()))
    except Exception as e:
        #traceback.print_exc()
        logger.error(e, exc_info=1)
        raise Exception(e)
    else:
        return msg