def list(self, request, project_id): """get project cluster list""" cluster_info = self.get_cluster_list(request, project_id) cluster_data = cluster_info.get("results") or [] cluster_node_map = self.cluster_has_node(request, project_id) # add allow delete perm for info in cluster_data: info["environment"] = cluster_env_transfer(info["environment"]) # allow delete cluster allow_delete = False if cluster_node_map.get(info["cluster_id"]) else True info["allow"] = info["allow_delete"] = allow_delete perm_can_use = True if request.GET.get("perm_can_use") == "1" else False self.register_function_controller(cluster_data) cluster_results = Cluster.hook_perms(request, project_id, cluster_data, filter_use=perm_can_use) # add can create cluster perm for prod/test can_create_test, can_create_prod = self.get_cluster_create_perm(request, project_id) return response.Response( { "code": ErrorCode.NoError, "data": {"count": len(cluster_results), "results": cluster_results}, "permissions": { "test": can_create_test, "prod": can_create_prod, "create": can_create_test or can_create_prod, }, } )
def list(self, request, project_id): """get project cluster list """ cluster_info = self.get_cluster_list(request, project_id) cluster_data = cluster_info.get('results') or [] cluster_node_map = self.cluster_has_node(request, project_id) # add allow delete perm for info in cluster_data: info['environment'] = cluster_env_transfer(info['environment']) # allow delete cluster allow_delete = False if cluster_node_map.get( info['cluster_id']) else True info['allow'] = info['allow_delete'] = allow_delete perm_can_use = True if request.GET.get( 'perm_can_use') == '1' else False cluster_results = Cluster.hook_perms(request, project_id, cluster_data, filter_use=perm_can_use) # add disk resource try: cluster_results = prometheus.fixed_disk_usage(cluster_results) except Exception as err: logger.error('request prometheus err, detail: %s', err) # add can create cluster perm for prod/test can_create_test, can_create_prod = self.get_cluster_create_perm( request, project_id) return response.Response({ 'code': ErrorCode.NoError, 'data': { 'count': len(cluster_results), 'results': cluster_results }, 'permissions': { 'test': can_create_test, 'prod': can_create_prod, 'create': can_create_test or can_create_prod } })