示例#1
0
    def serialize_applications_with_org(self, applications, tree_id,
                                        parent_info, user):
        tree_nodes = []
        if not applications:
            return tree_nodes

        if not tree_id:
            root_node = self.create_root_node()
            tree_nodes.append(root_node)
            organizations = self.filter_organizations(applications)
            for i, org in enumerate(organizations):
                tree_id = urlencode({'org_id': str(org.id)})
                apps = applications.filter(org_id=org.id)
                # 组织节点
                org_node = org.as_tree_node(oid=tree_id, pid=root_node.id)
                org_node.name += '({})'.format(apps.count())
                tree_nodes.append(org_node)
                category_type_nodes = Application.create_category_type_tree_nodes(
                    apps, tree_id, show_empty=False)
                tree_nodes += category_type_nodes

                for app in apps:
                    app_node = app.as_tree_node(tree_id, is_luna=True)
                    tree_nodes.append(app_node)
            return tree_nodes

        parent_info = dict(parse_qsl(parent_info))
        pod_name = parent_info.get('pod')
        app_id = parent_info.get('app_id')
        namespace = parent_info.get('namespace')
        system_user_id = parent_info.get('system_user_id')
        if app_id and not any([pod_name, namespace, system_user_id]):
            app = get_object_or_404(Application, id=app_id)
            system_user_ids = get_application_system_user_ids(user, app)
            system_users = SystemUser.objects.filter(
                id__in=system_user_ids).order_by('priority')
            for system_user in system_users:
                system_user_node = KubernetesTree(
                    tree_id).as_system_user_tree_node(system_user, parent_info)
                tree_nodes.append(system_user_node)
            return tree_nodes

        tree_nodes = KubernetesTree(tree_id).async_tree_node(parent_info)
        return tree_nodes
示例#2
0
    def get_children_nodes(tree_id, parent_info, user):
        tree_nodes = []
        parent_info = dict(parse_qsl(parent_info))
        pod_name = parent_info.get('pod')
        app_id = parent_info.get('app_id')
        namespace = parent_info.get('namespace')
        system_user_id = parent_info.get('system_user_id')

        if app_id and not any([pod_name, namespace, system_user_id]):
            app = get_object_or_404(Application, id=app_id)
            system_user_ids = get_application_system_user_ids(user, app)
            system_users = SystemUser.objects.filter(
                id__in=system_user_ids).order_by('priority')
            for system_user in system_users:
                system_user_node = KubernetesTree(
                    tree_id).as_system_user_tree_node(system_user, parent_info)
                tree_nodes.append(system_user_node)
            return tree_nodes
        tree_nodes = KubernetesTree(tree_id).async_tree_node(parent_info)
        return tree_nodes
示例#3
0
 def get_application_system_user_ids(self, application):
     return get_application_system_user_ids(self.user, application)