Exemplo n.º 1
0
    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,
                },
            }
        )
Exemplo n.º 2
0
    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
            }
        })