def update_node_cluster_check_status(log, log_type, status=models.CommonStatus.InitialCheckFailed): """更新master or slave失败状态 """ if log_type == "ClusterInstallLog": result = paas_cc.update_cluster( log.token, log.project_id, log.cluster_id, {"status": status}, ) elif log_type == "NodeUpdateLog": try: params = json.loads(log.params) except Exception: params = {} result = paas_cc.update_node_list( log.token, log.project_id, log.cluster_id, [ { "inner_ip": ip, "status": status } for ip in params.get("node_info").keys() ] ) else: return if result.get("code") != ErrorCode.NoError: logger.error(u"更新配置中心状态失败,详情: %s" % result.get("message"))
def update_cluster_nodes(self, node_ips, status=CommonStatus.Initializing): """更新阶段状态,并返回更新后的信息""" data = [{'inner_ip': ip, 'status': status} for ip in node_ips] resp = paas_cc.update_node_list(self.access_token, self.project_id, self.cluster_id, data=data) if resp.get('code') != ErrorCode.NoError: raise error_codes.APIError(resp.get('message')) return resp.get('data') or []
def update_node_status(log): params = json.loads(log.params) ip_list = list(params.get("node_info", {}).keys()) if log.oper_type == models.NodeOperType.NodeRemove: if log.status == models.CommonStatus.Normal: status = models.CommonStatus.Removed else: status = log.status else: status = log.status for i in range(2): token_dict = ssm.get_client_access_token() resp = paas_cc.update_node_list( token_dict["access_token"], log.project_id, log.cluster_id, [{ "inner_ip": ip, "status": status } for ip in ip_list], ) if resp.get("code") != ErrorCode.NoError: logger.error("Update node[%s] status failed, detail: %s" % (json.dumps(ip_list), resp.get("message"))) else: logger.info("Update node[%s] status success" % json.dumps(ip_list)) break
def update_nodes_in_cluster(self, request, project_id, cluster_id, node_ips, status): """update nodes with same cluster""" data = [{'inner_ip': ip, 'status': status} for ip in node_ips] resp = paas_cc.update_node_list(request.user.token.access_token, project_id, cluster_id, data=data) if resp.get('code') != ErrorCode.NoError: raise error_codes.APIError(resp.get('message')) return resp.get('data') or []
def update_node_status(log): params = json.loads(log.params) ip_list = list(params.get('node_info', {}).keys()) if log.oper_type == models.NodeOperType.NodeRemove: if log.status == models.CommonStatus.Normal: status = models.CommonStatus.Removed else: status = log.status else: status = log.status for i in range(2): token_dict = iam.get_access_token() resp = paas_cc.update_node_list( token_dict['access_token'], log.project_id, log.cluster_id, [ { 'inner_ip': ip, 'status': status } for ip in ip_list ] ) if resp.get('code') != ErrorCode.NoError: logger.error('Update node[%s] status failed, detail: %s' % (json.dumps(ip_list), resp.get('message'))) else: logger.info('Update node[%s] status success' % json.dumps(ip_list)) break
def node_ip_status(log, project_id, cluster_id, node_info): log.is_finished = True log.is_polling = False log.status = models.NodeStatus.InitialFailed # 记录错误信息到log log.log = json.dumps({ "status": models.CommonStatus.InitialFailed, "node_tasks": [{ "name": "", "state": _("调用BCS接口失败") }] }) log.save() # 更改任务状态 paas_cc.update_node_list(log.token, project_id, cluster_id, [{ "inner_ip": ip, "status": models.CommonStatus.InitialFailed, } for ip in node_info.keys()])
def update_nodes_status(self, request, project_id, cluster_id, node_list, ip_list): driver = K8SDriver(request, project_id, cluster_id) node_container_data = driver.get_host_container_count(ip_list) update_data = [] for info in node_list: curr_node_container_count = node_container_data.get(info['inner_ip']) or 0 if curr_node_container_count == 0 and info['status'] == NodeStatus.ToRemoved: info['status'] = NodeStatus.Removable update_data.append({'inner_ip': info['inner_ip'], 'status': info['status']}) resp = paas_cc.update_node_list(request.user.token.access_token, project_id, cluster_id, data=update_data) if resp.get('code') != ErrorCode.NoError: raise error_codes.APIError(resp.get('message')) return resp.get('data') or []
def update_cc_nodes_status(access_token, project_id, cluster_id, nodes): """更新记录的节点状态""" return paas_cc.update_node_list(access_token, project_id, cluster_id, data=nodes)