def post(self): data = request.get_json() appschema = subapp_schema.load(data) app = SubappModel(**appschema) db.session.add(app) db.session.commit() return normal_request("create subapp success")
def post(self): # 新增数据 data = request.get_json() instanceschema = instance_schema.load(data) instance = InstanceModel(**instanceschema) db.session.add(instance) db.session.commit() return normal_request("create instance success")
def delete(self): # 新增数据 data = request.get_json() userschema = user_schema.load(data) app = UserSchema(**userschema) db.session.add(app) db.session.commit() return normal_request("create app success")
def post(self): # 新增数据 data = request.get_json() hostschema = host_schema.load(data) host = HostModel(**hostschema) db.session.add(host) db.session.commit() return normal_request("create host success")
def delete(self, subappid): # stop instance instList = InstanceModel.query.filter_by(subappid=subappid).all() opModel = OperationModel() db.session.add(opModel) db.session.flush() sequenceInstanceType = [ 'WEBDISPATCHER', 'TREX', 'J2EE', 'DIALOG', 'ASCS', 'HDB' ] newInstList = [] for inst in instList: ipaddressarr = json.loads(inst.host.ipaddress) opsub = {} opsub['operationid'] = opModel.operationid opsub['instanceid'] = inst.instid opsub['operationsubtype'] = 'STOP' opsub['operationsubdetail'] = { "type": "HTTP", "method": "DELETE", "url": f"http://{ipaddressarr[0]['ip']}:23310/api/apps/{inst.subapp.subappsid}/instances/{inst.instanceno}/status", "param": {} } opsub['operationsubcomment'] = f'Stop Instance {inst.instid}' opsub['operationsubsequence'] = sequenceInstanceType.index( inst.instancetype) + 1 opsub['operationsubstatus'] = 0 opsub['operationsubstatusassert'] = '0' newopsub = dict(opsub) operationSubSchema = OperationSubSchema().load(opsub) opSubModel = OperationSubModel(**operationSubSchema) db.session.add(opSubModel) db.session.flush() newopsub['operationsubid'] = opSubModel.operationsubid newInstList.append(newopsub) db.session.commit() newInstList.sort(key=lambda i: i['operationsubsequence']) threading.Thread(target=operation_func, name="operation_func_thread", kwargs={ "instlist": newInstList }).start() return normal_request("create stop subapp operation success")
def delete(self, instid): # stop instance inst = InstanceModel.query.get(instid) opModel = OperationModel() db.session.add(opModel) db.session.flush() ipaddressarr = json.loads(inst.host.ipaddress) opsub = {} opsub['operationid'] = opModel.operationid opsub['instanceid'] = instid opsub['operationsubtype'] = 'STOP' opsub['operationsubdetail'] = { "type": "HTTP", "method": "DELETE", "url": f"http://{ipaddressarr[0]['ip']}:23310/api/apps/{inst.subapp.subappsid}/instances/{inst.instanceno}/status", "param": {} } opsub['operationsubcomment'] = f'Stop Instance {instid}' opsub['operationsubsequence'] = 1 opsub['operationsubstatus'] = 0 opsub['operationsubstatusassert'] = '0' newopsub = dict(opsub) operationSubSchema = OperationSubSchema().load(opsub) opSubModel = OperationSubModel(**operationSubSchema) db.session.add(opSubModel) db.session.flush() newopsub['operationsubid'] = opSubModel.operationsubid db.session.commit() threading.Thread(target=operation_func, name="operation_func_thread", kwargs={ "inst": newopsub }).start() return normal_request("create stop instance operation success")
def put(self, loginid): data = request.get_json() subappid = data['subappid'] app = LoginModel.query.filter_by(loginid=loginid).update(data) db.session.commit() subapp_m = SubappModel.query.get(subappid) subapp = subapp_schema.dump(subapp_m) c = consul.Consul(host=os.environ.get('CONSUL_HOST') if os.environ.get('CONSUL_HOST') else '127.0.0.1', port=Config.CONSUL_CLIENT_PORT, scheme='http') c.kv.put( subapp['subappsid'] + '_login', json.dumps({ "r3client": data['client'], "r3user": data['username'], "r3pwd": data['password'] })) return normal_request("update sap login info success")
def post(self): # 新增数据 data = request.get_json() subappid = data['subappid'] loginschema = login_schema.load(data) login = LoginModel(**loginschema) db.session.add(login) db.session.commit() subapp_m = SubappModel.query.get(subappid) subapp = subapp_schema.dump(subapp_m) c = consul.Consul(host=os.environ.get('CONSUL_HOST') if os.environ.get('CONSUL_HOST') else '127.0.0.1', port=Config.CONSUL_CLIENT_PORT, scheme='http') c.kv.put( subapp['subappsid'] + '_login', json.dumps({ "r3client": data['client'], "r3user": data['username'], "r3pwd": data['password'] })) return normal_request("create instance success")
def post(self): data = request.get_json() host_info = data['host'] subapp_list = data['app'] hdbapp_list = data['hdb'] if "hdb" in data else [] """ { "host": { "cpu": 16, "mem": 135204020224, "swap": 68728909824, "hostname": "s4ides1", "ip": [ { "device": "eth0", "ip": "172.16.0.190" }, { "device": "docker0", "ip": "172.17.0.1" } ] }, "app": [ { "sid": "DM0", "instance": [ { "profile": "DM0_D00_s4ides1", "sysnr": "00", "host": "s4ides1", "sid": "DM0", "servername": "s4ides1_DM0_00", "type": "DIALOG" }, { "profile": "DM0_ASCS01_s4ides1", "sysnr": "01", "host": "s4ides1", "sid": "DM0", "servername": "s4ides1_DM0_01", "type": "ASCS" } ] } ] } """ oldhost = HostModel.query.filter_by( hostname=host_info['hostname']).first() if oldhost: hostid = oldhost.hostid else: hostschema = host_schema.load({ "hostname": host_info['hostname'], "ipaddress": json.dumps(host_info['ip']), "cpu": host_info['cpu'], "memory": host_info['mem'], }) host = HostModel(**hostschema) db.session.add(host) db.session.commit() hostid = host.hostid for subapp in subapp_list: oldsubapp = SubappModel.query.filter_by( subappsid=subapp['sid']).first() if oldsubapp: subappid = oldsubapp.subappid else: subappschema = subapp_schema.load({ "subappsid": subapp['sid'], "subappmsserv": subapp['msserv'] }) subapp_model = SubappModel(**subappschema) db.session.add(subapp_model) db.session.commit() subappid = subapp_model.subappid for instance in subapp['instance']: oldinstance = InstanceModel.query.filter_by( instanceid=instance['profile']).first() if oldinstance: pass else: instanceschema = instance_schema.load({ "instanceid": instance['profile'], "instanceno": instance['sysnr'], "instancetype": instance['type'], "subappid": subappid, "hostid": hostid, }) instance_model = InstanceModel(**instanceschema) db.session.add(instance_model) db.session.commit() for hdbapp in hdbapp_list: oldsubapp = SubappModel.query.filter_by( subappsid=hdbapp['sid']).first() if oldsubapp: subappid = oldsubapp.subappid else: subappschema = subapp_schema.load({ "subappsid": hdbapp['sid'], "subappmsserv": hdbapp['msserv'] }) subapp_model = SubappModel(**subappschema) db.session.add(subapp_model) db.session.commit() subappid = subapp_model.subappid for instance in hdbapp['instance']: oldinstance = InstanceModel.query.filter_by( instanceid=instance['profile']).first() if oldinstance: pass else: instanceschema = instance_schema.load({ "instanceid": instance['profile'], "instanceno": instance['sysnr'], "instancetype": instance['type'], "subappid": subappid, "hostid": hostid, }) instance_model = InstanceModel(**instanceschema) db.session.add(instance_model) db.session.commit() return normal_request("collect agent info success")
def put(self, subappid): data = request.get_json() app = SubappModel.query.filter_by(subappid=subappid).update(data) db.session.commit() return normal_request("update subapp success")
def put(self, appid): # 新增数据 data = request.get_json() app = AppModel.query.filter_by(appid=appid).update(data) db.session.commit() return normal_request("update app success")
def put(self, instid): data = request.get_json() app = InstanceModel.query.filter_by(instid=instid).update(data) db.session.commit() return normal_request("update instance success")
def put(self, hostid): # 新增数据 data = request.get_json() app = HostModel.query.filter_by(hostid=hostid).update(data) db.session.commit() return normal_request("update host success")