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
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
def get_application_system_user_ids(self, application): return get_application_system_user_ids(self.user, application)