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'])
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'])
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'])
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
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'])
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'])
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'])
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'])
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