def add_server(): """ 添加容器服务器 :return: """ title = request.forms.title server_host = request.forms.server_host server_port = request.forms.server_port status = request.forms.status max_container_number = request.forms.max_container_number max_memory = request.forms.max_memory sort = request.forms.sort create_time = datetime.datetime.now() dao = ContainerServerModel(server_host=server_host, server_port=server_port, status=status, title=title, max_container_number=max_container_number, max_memory=max_memory, sort=sort, create_time=create_time) if not dao.save(): return {"code": -1} return {"code": 0}
def update_server(): """ 更新容器服务器 :return: """ id = request.forms.id title = request.forms.title server_host = request.forms.server_host server_port = request.forms.server_port status = request.forms.status max_container_number = request.forms.max_container_number max_memory = request.forms.max_memory sort = request.forms.sort dao = ContainerServerModel.update( title=title, server_host=server_host, server_port=server_port, status=status, max_container_number=max_container_number, max_memory=max_memory, sort=sort).where(ContainerServerModel.id == id) if not dao.execute(): return {"code": -1} return {"code": 0}
def get_a_api_url(): """ 获取一个API服务器地址 :return: """ objs = ContainerServerModel.select().where(ContainerServerModel.status == 0).order_by(ContainerServerModel.sort.desc()) d = [999999, 999999, None, None] for obj in objs: url = "http://%s:%d/container/" % (obj.server_host, obj.server_port) r = request_api(url+"analy", {}) if r.status_code != 200: continue response_data_obj = json.loads(r.text) if response_data_obj['code'] != 0: continue if response_data_obj['result']['count'] < d[0] and response_data_obj['result']['totalMemory'] < d[1]: d[2] = obj d[0] = response_data_obj['result']['count'] d[1] = response_data_obj['result']['totalMemory'] d[3] = {"url": url, "server_host": obj.server_host} if d[2] is None: return None login_log("containerAPI", "获取到的API服务器为:%s:%d,当前容器数:%d,容器内存:%dM" %(d[2].server_host, d[2].server_port, d[0], d[1])) return d[3]['url'], d[3]['server_host']
def get_a_api_url(): """ 获取一个API服务器地址 :return: """ objs = ContainerServerModel.select().where( ContainerServerModel.status == 0).order_by( ContainerServerModel.sort.desc()) d = [999999, 999999, None, None] for obj in objs: url = "http://%s:%d/container/" % (obj.server_host, obj.server_port) r = request_api(url + "analy", {}) if r.status_code != 200: continue response_data_obj = json.loads(r.text) if response_data_obj['code'] != 0: continue if response_data_obj['result']['count'] < d[0] and response_data_obj[ 'result']['totalMemory'] < d[1]: d[2] = obj d[0] = response_data_obj['result']['count'] d[1] = response_data_obj['result']['totalMemory'] d[3] = {"url": url, "server_host": obj.server_host} if d[2] is None: return None login_log( "containerAPI", "获取到的API服务器为:%s:%d,当前容器数:%d,容器内存:%dM" % (d[2].server_host, d[2].server_port, d[0], d[1])) return d[3]['url'], d[3]['server_host']
def get_servers(): """ 获取所有的容器服务器 :return: """ lists = ContainerServerModel.select().where(ContainerServerModel.status != 2).order_by(ContainerServerModel.sort.desc(), ContainerServerModel.id.desc()) objs = list(map(ContainerServerModel.get_dict_from_obj, lists)) return json.dumps(objs)
def delete_server(server_id): """ 删除一个服务器 :param server_id: 服务器id :return: """ dao = ContainerServerModel.update(status=2).where(ContainerServerModel.id == server_id) dao.execute() return redirect("/admin/server")
def get_servers(): """ 获取所有的容器服务器 :return: """ lists = ContainerServerModel.select().where( ContainerServerModel.status != 2).order_by( ContainerServerModel.sort.desc(), ContainerServerModel.id.desc()) objs = list(map(ContainerServerModel.get_dict_from_obj, lists)) return json.dumps(objs)
def delete_server(server_id): """ 删除一个服务器 :param server_id: 服务器id :return: """ dao = ContainerServerModel.update(status=2).where( ContainerServerModel.id == server_id) dao.execute() return redirect("/admin/server")
def update_server(): """ 更新容器服务器 :return: """ id = request.forms.id title = request.forms.title server_host = request.forms.server_host server_port = request.forms.server_port status = request.forms.status max_container_number = request.forms.max_container_number max_memory = request.forms.max_memory sort = request.forms.sort dao = ContainerServerModel.update(title=title, server_host=server_host, server_port=server_port, status=status, max_container_number=max_container_number, max_memory=max_memory, sort=sort).where(ContainerServerModel.id == id) if not dao.execute(): return {"code": -1} return {"code": 0}