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_contoller(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 retrieve(self, request, project_id, cluster_id): cluster_data = self.get_cluster(request, project_id, cluster_id) cluster_data['environment'] = cluster_env_transfer( cluster_data['environment']) return response.Response({ "code": ErrorCode.NoError, "data": cluster_data })
def _cluster_id_map(self, access_token, project_id): clusters = node_utils.get_clusters(access_token, project_id) return { cluster["cluster_id"]: { "cluster_env": cluster_env_transfer(cluster["environment"]), "cluster_name": cluster["name"] } for cluster in clusters }
def retrieve(self, request, project_id, cluster_id): cluster_data = self.get_cluster(request, project_id, cluster_id) cluster_data["environment"] = cluster_env_transfer(cluster_data["environment"]) # 添加功能白名单 self.register_function_contoller(cluster_data) return response.Response({"code": ErrorCode.NoError, "data": cluster_data})
def update(self, request, project_id, cluster_id): cluster_perm = Cluster(request, project_id, cluster_id) cluster_perm.can_edit(raise_exception=True) data = self.get_params(request) data = self.update_data(data, project_id, cluster_id, cluster_perm) # update cluster info with client.ContextActivityLogClient( project_id=project_id, user=request.user.username, resource_type="cluster", resource_id=cluster_id, ).log_modify(): cluster_info = self.update_cluster(request, project_id, cluster_id, data) # render environment for frontend cluster_info["environment"] = cluster_env_transfer(cluster_info["environment"]) return response.Response(cluster_info)
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 } })