Пример #1
0
 def list_nodes(self, request, project_id, cluster_id):
     """查询集群下nodes
     NOTE: 限制查询一个集群下的节点
     """
     # 以集群中节点为初始数据,如果bcs cc中节点不在集群中,处于初始化中或者初始化失败,也需要展示
     cluster_nodes = node.query_cluster_nodes(request.ctx_cluster)
     bcs_cc_nodes = node.query_bcs_cc_nodes(request.ctx_cluster)
     # 组装数据
     cluster = get_cluster(request.user.token.access_token, request.project.project_id, cluster_id)
     client = node.NodesData(bcs_cc_nodes, cluster_nodes, cluster_id, cluster.get("name", ""))
     return Response(client.nodes())
Пример #2
0
    def list(self, request, project_id):
        # get cluster id by request
        cluster_id = self.get_cluster_id(request)
        # get node info
        node_list = self.get_node_list(request, project_id, cluster_id)
        node_list = node_list.get('results') or []
        if not node_list:
            return Response({'code': 0, 'result': []})
        node_id_info_map = self.exclude_removed_status_node(node_list)
        # get node labels
        node_label_list = self.get_labels_by_node(request, project_id, node_id_info_map.keys())
        # render cluster id, cluster name and cluster environment
        cluster_name_env = self.get_cluster_id_info_map(request, project_id)
        # 获取节点的taint
        ctx_cluster = CtxCluster.create(token=request.user.token.access_token, id=cluster_id, project_id=project_id)
        nodes = query_cluster_nodes(ctx_cluster)
        node_list = self.compose_nodes(
            node_id_info_map, node_label_list, request.project['english_name'], cluster_name_env, nodes
        )
        # add perm for node
        nodes_results = bcs_perm.Cluster.hook_perms(request, project_id, node_list)

        return Response({'count': len(node_list), 'results': nodes_results})
Пример #3
0
def test_query_cluster_nodes(client, create_and_delete_node, ctx_cluster):
    cluster_nodes = node_tools.query_cluster_nodes(ctx_cluster)
    assert FAKE_INNER_IP in cluster_nodes
    assert cluster_nodes[FAKE_INNER_IP]["name"] == FAKE_NODE_NAME
    assert cluster_nodes[FAKE_INNER_IP]["status"] == NodeConditionStatus.Ready
    assert not cluster_nodes[FAKE_INNER_IP]["unschedulable"]
Пример #4
0
def test_query_cluster_nodes(client, create_and_delete_node, ctx_cluster):
    cluster_nodes = node_tools.query_cluster_nodes(ctx_cluster)
    assert fake_inner_ip in cluster_nodes
    assert cluster_nodes[fake_inner_ip]["name"] == fake_node_name
    assert cluster_nodes[fake_inner_ip]["status"] == NodeConditionStatus.Ready
    assert not cluster_nodes[fake_inner_ip]["unschedulable"]
Пример #5
0
def query_cluster_nodes(mock_list):
    cluster_nodes = node.query_cluster_nodes(fake_ctx_cluster)
    assert fake_inner_ip in cluster_nodes
    assert cluster_nodes[fake_inner_ip]["node_name"] == fake_node_name
    assert cluster_nodes[fake_inner_ip]["status"] == NodeConditionStatus.Ready
    assert not cluster_nodes[fake_inner_ip]["unschedulable"]