def query_nodes_evaluation()

in rules/customer-fc/ack_cluster_node_monitor_enabled.py [0:0]


def query_nodes_evaluation(clt, cluster_id):
    compliance_result = True
    page_number = 1
    page_size = 50
    cluster_total = 0
    while page_number == 1 or (cluster_total > page_size * page_number):
        request = CommonRequest(
            'cs.aliyuncs.com',
            '2015-12-15',
            uri_pattern='/clusters/' + cluster_id + '/nodes'
        )
        request.set_protocol_type(protocol_type.HTTPS)
        request.add_query_param('pageSize', page_size)
        request.add_query_param('pageNumber', page_number)
        response = clt.do_action_with_exception(request)
        res = str(response, encoding='utf-8')
        json_res = json.loads(res)

        instance_id_set = set()
        if "nodes" in json_res and json_res["nodes"]:
            for node in json_res["nodes"]:
                instance_id_set.add(node["instance_id"])
            compliance_result = query_instances_monitor_status(clt, instance_id_set)
            if not compliance_result:
                return compliance_result
        else:
            break

        page_number = page_number + 1
        if "page" in json_res and json_res["page"] and "total_count" in json_res["page"] and \
                json_res["page"]["total_count"]:
            cluster_total = json_res["page"]["total_count"]
    return compliance_result