def applyTryPrice(self): """[审批试用订单(共享高性能和文件存储)]""" time.sleep(5) #王楠审批试用 url1 = self.url + "/portal-test/flow/task/apvList?businessId=" + self.orderId + "&flowIds=1,2,3,8,9,10" header = {} header['Token'] = casjc_login.login(casjc_config.avpuser1, casjc_config.avppasswd, 1)[0] r1 = requests.get(url1, headers=header) print(r1.json()) taskId = r1.json()['data'][0]['taskId'] url2 = self.url + "/portal-test/order/approve/apvOrder" header['Content-Type'] = "application/json" data2 = {} data2['opinion'] = "test" data2['status'] = 0 data2['taskId'] = taskId - 1 r2 = requests.post(url2, headers=header, data=json.dumps(data2)) #print(r2.json()) if r2.json()['code'] == 200 and r2.json( )['message'] == None and r2.json()['data'] == None: casjc_log_task.logging.info(self.applyTryPrice.__doc__ + " 审批账号:" + casjc_config.avpuser1 + " 审批成功") else: casjc_log_task.logging.info(self.applyTryPrice.__doc__ + " 审批账号:" + casjc_config.avpuser1 + " 审批异常") return False time.sleep(5) #戴吉伟审批试用 url3 = self.url + "/portal-test/flow/task/apvList?businessId=" + self.orderId + "&flowIds=1,2,3,8,9,10" header['Token'] = casjc_login.login(casjc_config.avpuser2, casjc_config.avppasswd, 1)[0] r3 = requests.get(url3, headers=header) print(r3.json()) taskId = r3.json()['data'][0]['taskId'] url4 = self.url + "/portal-test/order/approve/apvOrder" data3 = {} data3['opinion'] = "test" data3['status'] = 0 data3['taskId'] = taskId + 1 r4 = requests.post(url4, headers=header, data=json.dumps(data3)) #print(r4.json()) if r4.json()['code'] == 200 and r4.json( )['message'] == None and r4.json()['data'] == None: casjc_log_task.logging.info(self.applyTryPrice.__doc__ + " 审批账号:" + casjc_config.avpuser2 + " 审批成功") return True else: casjc_log_task.logging.info(self.applyTryPrice.__doc__ + " 审批账号:" + casjc_config.avpuser2 + " 审批异常") return False
def applyPrice(self): """[审批新购订单价格 (共享高性能和文件存储)]""" #王楠价格审批新购订单 url1 = self.url + "/portal-test/flow/task/apvList?businessId=" + self.orderId + "&flowIds=1,2,3" header = {} header['Content-Type'] = "application/json" header['Token'] = casjc_login.login(casjc_config.avpuser1, casjc_config.avppasswd, 1)[0] r1 = requests.get(url1, headers=header) #print(r1.json()) taskId = r1.json()['data'][0]['taskId'] url2 = self.url + "/portal-test/order/order/apvOrder" header['Content-Type'] = "application/json" data2 = {} data2['opinion'] = "test" data2['status'] = 0 data2['taskId'] = taskId - 1 r2 = requests.post(url2, headers=header, data=json.dumps(data2)) #print(r2.json()) if r2.json()['code'] == 200 and r2.json( )['message'] == None and r2.json()['data'] == None: casjc_log_task.logging.info(self.applyPrice.__doc__ + " 审批账号:" + casjc_config.avpuser1 + " 审批成功") return True else: casjc_log_task.logging.info(self.applyPrice.__doc__ + " 审批账号:" + casjc_config.avpuser1 + " 审批异常") return False
def __init__(self, account="gktest", userId=20650, entId=10066): self.header = {} self.url = casjc_config.global_url #申请,生成合同,确认参数销售经理账号 self.saleraccount = "lihaifeng" self.header['Content-Type'] = "application/json" self.saleser = casjc_login.login(self.saleraccount, "Casjc@123", 1) self.header['Token'] = self.saleser[0] self.salesuserid = self.saleser[1] #全局订单Id self.orderId = "" self.tryOrderId = "" #企业用户信息 self.account = account self.userId = userId self.entId = entId #申请配置资源值 self.pname = "斗罗大陆9层魂环理论" + str(random.randint(1, 1000)) self.phone = "18210462798" self.email = "*****@*****.**" self.tmpnumber = 1 self.corenumber = 2 self.totalprice = 1000.24 self.jobday = 1 self.storeday = 10
def __init__(self, account="gktest", userId=20650, entId=10066): self.header = {} self.url = casjc_config.global_url #申请,生成合同,确认参数销售经理账号 #self.saleraccount = "lihaifeng" self.saleraccount = "baishi" self.header['Content-Type'] = "application/json" self.saleser = casjc_login.login(self.saleraccount, "Casjc@123", 1) self.header['Token'] = self.saleser[0] self.salesuserid = self.saleser[1] #全局订单Id self.orderId = "" self.tryOrderId = "" #企业用户信息 self.account = account self.userId = userId self.entId = entId self.entName = "国科北京分部" #申请配置资源值 self.pname = "斗罗大陆9层魂环理论" + str(random.randint(1, 1000)) self.phone = "18210462798" self.email = "*****@*****.**" self.tmpnumber = 1 self.corenumber = 2 self.tprice = 5.12 self.jobday = 1 self.storeday = 10 self.preDeploy = 0 #是否提前配置 0否1是 self.deployWay = 0 #资源配置方式,0固定参数1灵活配置 self.payWay = 0 #付费方式 0预付费1后付费
def submitJob(): title = "[已有资源用户,提交作业_" + str(random.randint(1000, 9999)) + "] " global res userinfo = casjc_login.login(casjc_config.username, casjc_config.passwd, 0) url = "ws://10.8.14.194:11014/webshell?uid=" + str( userinfo[1] ) + "&id=42&queueName=" + casjc_config.queuename + "&token=" + userinfo[ 0] + "&cols=132&rows=15&width=1870&height=510" jobname = str(time.strftime('%d%H%M', time.localtime())) try: ws = create_connection(url, timeout=60) print(ws.recv()) sjob1 = 'nohup srun -p low -J casjc-' + jobname + ' sleep 180&\n' casjc_log_task.logging.info('执行slurm命令:' + sjob1) ws.send(sjob1) print(ws.recv()) print(json.loads(ws.recv())['data']) ws.send('\n') print(ws.recv()) time.sleep(5) sjob2 = 'squeue\n' casjc_log_task.logging.info('执行slurm命令:' + sjob2) ws.send(sjob2) print(ws.recv()) squeue = ws.recv() print(squeue) res[title + sjob1] = [casjc_config.username, squeue] return True except Exception as e: print('error', e) return False
def entRenewSubmitJob(): """[新普通用户初次配置资源后进行续期,提交作业]""" title = "[新普通用户初次配置资源后进行续期,提交作业]" global res #新增企业用户 newuser = casjc_user.auser() tmpuser = newuser.addControlUser() #申请审批配置资源并续期 rescoure = casjc_resource.resource(tmpuser[0], tmpuser[1], tmpuser[2]) rescoure.testRenew() #新增企业普通用户 newuser2 = casjc_user.cuser(tmpuser[0]) luser = newuser2.addQueueStoreUser() #登录企业普通用户 userinfo = casjc_login.login(luser, casjc_config.cpasswd, 0) #等待610秒,等高性能配置生效 time.sleep(610) url = "ws://10.8.14.181:11014/webshell?uid=" + str( userinfo[1] ) + "&id=42&queueName=" + casjc_config.queuename + "&token=" + userinfo[ 0] + "&cols=132&rows=15&width=1870&height=510" casjc_log_task.logging.info(newSubmitJob.__doc__ + " 登录webshell: " + url) jobname = str(time.strftime('%d%H%M', time.localtime())) try: ws = create_connection(url, timeout=60) print(ws.recv()) sjob1 = 'nohup srun -p low -J casjc-' + jobname + ' sleep 180&\n' casjc_log_task.logging.info(newSubmitJob.__doc__ + '执行slurm命令:' + sjob1) print(ws.recv()) print(json.loads(ws.recv())['data']) print(ws.recv()) print(ws.recv()) print(ws.recv()) ws.send(sjob1) ws.send('\n') time.sleep(1) print(ws.recv()) print(ws.recv()) sjob2 = 'squeue\n' casjc_log_task.logging.info(newSubmitJob.__doc__ + '执行slurm命令:' + sjob2) ws.send(sjob2) print(ws.recv()) time.sleep(2) squeue = ws.recv() print(squeue) res[title + sjob1] = [luser[0], squeue] return True except Exception as e: print('error', e) res[title] = [luser[0], "webServer timeout"] return False
def confirmAll(self, mytype="All"): """[配置新购资源,全部配置]""" title = "[配置新购资源,全部配置]" if mytype != "All": self.tmpnumber = 2 self.corenumber = 1 title = "[配置新购资源,部分配置]" #戴吉伟配置资源,获取必要参数 url10 = self.url + "/portal-test/order/order/getOrder?times=1610011814514&orderId=" + self.orderId header = {} header['Content-Type'] = "application/json" header['Token'] = casjc_login.login(casjc_config.avpuser2, casjc_config.avppasswd, 1)[0] r10 = requests.get(url10, headers=header) #print(r10.json()) resInitId_file = r10.json()['data']['resInitVOList'][1]['resInitId'] orderResId_file = r10.json()['data']['resVOList'][1]['orderResId'] resInitId_job = r10.json()['data']['resInitVOList'][0]['resInitId'] orderResId_job = r10.json()['data']['resVOList'][0]['orderResId'] uptime = r10.json()['data']['resVOList'][0]['updateTime'] #配置高性能计算 url11 = self.url + "/portal-test/order/deploy/deployOrderRes" data = {} data["colonyId"] = 42 data["defMemPerCpu"] = "" data["deployStatus"] = "" data["deployWay"] = 1 data["endTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["entId"] = self.entId data["nodeList"] = ['low'] data["number"] = self.corenumber data["orderId"] = self.orderId data["orderResId"] = orderResId_job data["path"] = "/public1/home/" + self.account + "/" + self.account data["price"] = 0.12 * self.corenumber data["queueName"] = "" data["queueType"] = 0 data["resInitId"] = resInitId_job data["resProdSrvId"] = 1 data["resTypeId"] = 2 data["startTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["updateTime"] = uptime ldata = [] ldata.append(data) r11 = requests.post(url11, headers=header, data=json.dumps(ldata)) #print(r11.json()) if r11.json()['code'] == 200 and r11.json( )['message'] == None and r11.json()['data'] == None: casjc_log_task.logging.info(title + " 高性能资源配置完成, 配置人:" + casjc_config.avpuser2) else: casjc_log_task.logging.info(title + " 高性能资源配置异常, 配置人:" + casjc_config.avpuser2) return False #配置文件存储 data = {} data["colonyId"] = 43 data["defMemPerCpu"] = "" data["deployStatus"] = "" data["deployWay"] = 1 data["endTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["entId"] = self.entId data["nodeList"] = [''] data["number"] = self.storeday / self.tmpnumber data["orderId"] = self.orderId data["orderResId"] = orderResId_file data["path"] = "/public1/home/" + self.account + "/" + self.account data["price"] = 1000 / self.tmpnumber data["queueName"] = "" data["queueType"] = 0 data["resInitId"] = resInitId_file data["resProdSrvId"] = 3 data["resTypeId"] = 4 data["startTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["updateTime"] = uptime ldata = [] ldata.append(data) r12 = requests.post(url11, headers=header, data=json.dumps(ldata)) #print(r12.json()) if r12.json()['code'] == 200 and r12.json( )['message'] == None and r12.json()['data'] == None: casjc_log_task.logging.info(title + " 文件存储资源配置完成, 配置人:" + casjc_config.avpuser2) return True else: casjc_log_task.logging.info(title + " 文件存储资源配置异常, 配置人:" + casjc_config.avpuser2) return False
def exaContract(self): """[审批新购订单合同]""" #合同审批 王楠 url3 = self.url + "/portal-test/flow/task/apvList?businessId=" + self.orderId + "&flowIds=1,2,3" header = {} header['Content-Type'] = "application/json" header['Token'] = casjc_login.login(casjc_config.conuser1, casjc_config.avppasswd, 1)[0] r3 = requests.get(url3, headers=header) #print(r3.json()) taskId = r3.json()['data'][-1]['taskId'] url4 = self.url + "/portal-test/order/order/apvOrder" data3 = {} data3['opinion'] = "test" data3['status'] = 0 data3['taskId'] = taskId - 1 r4 = requests.post(url4, headers=header, data=json.dumps(data3)) #print(r4.json()) if r4.json()['code'] == 200 and r4.json( )['message'] == None and r4.json()['data'] == None: casjc_log_task.logging.info(self.exaContract.__doc__ + " 审批账号:" + casjc_config.conuser1 + " 审批成功") else: casjc_log_task.logging.info(self.exaContract.__doc__ + " 审批账号:" + casjc_config.conuser1 + " 审批异常") return False #合同审批 孔水水 url5 = self.url + "/portal-test/flow/task/apvList?businessId=" + self.orderId + "&flowIds=1,2,3" header['Token'] = casjc_login.login(casjc_config.conuser2, casjc_config.avppasswd, 1)[0] r5 = requests.get(url5, headers=header) #print(r5.json()) taskId = r5.json()['data'][2]['taskId'] url6 = self.url + "/portal-test/order/order/apvOrder" data3 = {} data3['opinion'] = "test" data3['status'] = 0 data3['taskId'] = taskId + 1 r6 = requests.post(url6, headers=header, data=json.dumps(data3)) #print(r6.json()) if r6.json()['code'] == 200 and r6.json( )['message'] == None and r6.json()['data'] == None: casjc_log_task.logging.info(self.exaContract.__doc__ + " 审批账号:" + casjc_config.conuser2 + " 审批成功") else: casjc_log_task.logging.info(self.exaContract.__doc__ + " 审批账号:" + casjc_config.conuser2 + " 审批异常") return False #合同审批 刘凯敏 url7 = self.url + "/portal-test/flow/task/apvList?businessId=" + self.orderId + "&flowIds=1,2,3" header['Token'] = casjc_login.login(casjc_config.conuser3, casjc_config.avppasswd, 1)[0] r7 = requests.get(url7, headers=header) #print(r7.json()) taskId = r7.json()['data'][-1]['taskId'] url8 = self.url + "/portal-test/order/order/apvOrder" data3 = {} data3['opinion'] = "test" data3['status'] = 0 data3['taskId'] = taskId + 1 r8 = requests.post(url8, headers=header, data=json.dumps(data3)) #print(r8.json()) if r8.json()['code'] == 200 and r8.json( )['message'] == None and r8.json()['data'] == None: casjc_log_task.logging.info(self.exaContract.__doc__ + " 审批账号:" + casjc_config.conuser3 + " 审批成功") return True else: casjc_log_task.logging.info(self.exaContract.__doc__ + " 审批账号:" + casjc_config.conuser3 + " 审批异常") return False
def confirmOrder(self): """[配置试用订单(共享高性能和文件存储)]""" #戴吉伟配置资源,获取必要参数 url5 = self.url + "/portal-test/order/order/getOrder?times=1610011814514&orderId=" + self.tryOrderId header = {} header['Content-Type'] = "application/json" header['Token'] = casjc_login.login(casjc_config.avpuser2, casjc_config.avppasswd, 1)[0] r5 = requests.get(url5, headers=header) #print(r5.json()) resInitId_file = r5.json()['data']['resInitVOList'][1]['resInitId'] orderResId_file = r5.json()['data']['resVOList'][1]['orderResId'] resInitId_job = r5.json()['data']['resInitVOList'][0]['resInitId'] orderResId_job = r5.json()['data']['resVOList'][0]['orderResId'] uptime = r5.json()['data']['resVOList'][0]['updateTime'] #配置高性能计算 url6 = self.url + "/portal-test/order/deploy/deployOrderRes" data = {} data["colonyId"] = 42 data["defMemPerCpu"] = "" data["deployStatus"] = 3 data["deployWay"] = 0 data["endTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["entId"] = self.entId data["nodeList"] = ['low'] data["number"] = 1 data["orderId"] = self.tryOrderId data["orderResId"] = orderResId_job data["path"] = "" data["price"] = 0 data["queueName"] = "" data["queueType"] = 0 data["resInitId"] = resInitId_job data["resProdSrvId"] = 1 data["resTypeId"] = 2 data["startTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["updateTime"] = uptime ldata = [] ldata.append(data) r6 = requests.post(url6, headers=header, data=json.dumps(ldata)) #print(r6.json()) if r6.json()['code'] == 200 and r6.json( )['message'] == None and r6.json()['data'] == None: casjc_log_task.logging.info(self.confirmOrder.__doc__ + " 高性能资源配置完成, 配置人:" + casjc_config.avpuser2) else: casjc_log_task.logging.info(self.confirmOrder.__doc__ + " 高性能资源配置异常, 配置人:" + casjc_config.avpuser2) return False #配置文件存储 data = {} data["colonyId"] = 43 data["defMemPerCpu"] = "" data["deployStatus"] = 3 data["deployWay"] = 0 data["endTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["entId"] = self.entId data["nodeList"] = [''] data["number"] = 1 data["orderId"] = self.tryOrderId data["orderResId"] = orderResId_file data["path"] = "/public1/home/" + self.account + "/" + self.account data["price"] = 0 data["queueName"] = "" data["queueType"] = 0 data["resInitId"] = resInitId_file data["resProdSrvId"] = 3 data["resTypeId"] = 4 data["startTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["updateTime"] = uptime ldata = [] ldata.append(data) r7 = requests.post(url6, headers=header, data=json.dumps(ldata)) #print(r7.json()) if r7.json()['code'] == 200 and r7.json( )['message'] == None and r7.json()['data'] == None: casjc_log_task.logging.info(self.confirmOrder.__doc__ + " 文件存储资源配置完成, 配置人:" + casjc_config.avpuser2) return True else: casjc_log_task.logging.info(self.confirmOrder.__doc__ + " 文件存储资源配置异常, 配置人:" + casjc_config.avpuser2) return False
def confirmOrder(self): """[配置试用订单(共享高性能和文件存储)]""" time.sleep(5) #戴吉伟配置资源,获取必要参数 url5 = self.url + "/portal-test/order/order/getOrder?times=1610011814514&orderId=" + self.tryOrderId header = {} header['Content-Type'] = "application/json" header['Token'] = casjc_login.login(casjc_config.avpuser2, casjc_config.avppasswd, 1)[0] r5 = requests.get(url5, headers=header) #print(r5.json()) #resInitId_file = r5.json()['data']['resInitVOList'][1]['resInitId'] #orderResId_file = r5.json()['data']['resVOList'][1]['orderResId'] resInitId_job = r5.json()['data']['resInitVOList'][0]['resInitId'] orderResId_job = r5.json()['data']['resVOList'][0]['orderResId'] uptime = r5.json()['data']['resVOList'][0]['updateTime'] #配置高性能计算 url6 = self.url + "/portal-test/order/deploy/deployOrderRes" data = {} data["colonyId"] = 43 data["defMemPerCpu"] = "" data["deployStatus"] = 3 data["deployWay"] = 0 data["endTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["entId"] = self.entId data["nodeList"] = [] data["number"] = 0 data["orderId"] = self.tryOrderId data["orderResId"] = orderResId_job data["queueName"] = "" data["queueType"] = 0 data['qosName'] = "normal" data["resInitId"] = resInitId_job data["resProdSrvId"] = 1 data["startTime"] = time.strftime("20%y-%m-%d", time.localtime()) data["updateTime"] = uptime data['resBandowidthList'] = [{ "networkName": "", "bandwidth": 1, "gateway": "", "publicIp": "", "subnetMask": "" }] data['resPrivateNetworkList'] = [{ "networkName": "", "bandwidth": 1, "gateway": "", "networkSegment": "", "subnetMask": "" }] data['resVpnList'] = [] data['resProdSrvId'] = 1 data['resTypeId'] = 4 data['discountUnitPrice'] = 5 data['unitPrice'] = 5 data['originalPrice'] = 5 data['price'] = 5 data['Path'] = "/public1/home/" + self.account + "/" + self.account ldata = [] ldata.append(data) r6 = requests.post(url6, headers=header, data=json.dumps(ldata)) print(r6.json()) if r6.json()['code'] == 200 and r6.json( )['message'] == None and r6.json()['data'] == None: casjc_log_task.logging.info(self.confirmOrder.__doc__ + " 高性能资源配置完成, 配置人:" + casjc_config.avpuser2) else: casjc_log_task.logging.info(self.confirmOrder.__doc__ + " 高性能资源配置异常, 配置人:" + casjc_config.avpuser2) return False