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