Пример #1
0
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"))
Пример #2
0
 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 []
Пример #3
0
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
Пример #4
0
 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 []
Пример #5
0
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
Пример #6
0
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()])
Пример #7
0
 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 []
Пример #8
0
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)