From 36c68178dd74df304feb4c47cb4e563b72694c40 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Sat, 21 Jan 2017 12:45:40 -0500 Subject: [PATCH] cleanup from accessible_objects refactor --- awx/main/models/mixins.py | 16 ++++------ awx/main/models/unified_jobs.py | 8 ++--- tools/data_generators/presets.tsv | 30 +++++++++---------- .../rbac_dummy_data_generator.py | 17 +++++++---- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/awx/main/models/mixins.py b/awx/main/models/mixins.py index 645626bca3..d70756251f 100644 --- a/awx/main/models/mixins.py +++ b/awx/main/models/mixins.py @@ -3,7 +3,6 @@ import json # Django from django.db import models -from django.db.models import Q from django.contrib.contenttypes.models import ContentType from django.contrib.auth.models import User # noqa @@ -38,7 +37,6 @@ class ResourceMixin(models.Model): ''' return ResourceMixin._accessible_objects(cls, accessor, role_field) - @staticmethod def _accessible_pk_qs(cls, accessor, role_field, content_types=None): if type(accessor) == User: @@ -50,17 +48,15 @@ class ResourceMixin(models.Model): ancestor_roles = Role.objects.filter(content_type__pk=accessor_type.id, object_id=accessor.id) - if content_types is not None: - return RoleAncestorEntry.objects.filter( - ancestor__in = ancestor_roles, - content_type_id__in = content_types, - role_field = role_field - ).values_list('object_id').distinct() + if content_types is None: + ct_kwarg = dict(content_type_id = ContentType.objects.get_for_model(cls).id) + else: + ct_kwarg = dict(content_type_id__in = content_types) return RoleAncestorEntry.objects.filter( ancestor__in = ancestor_roles, - content_type_id = ContentType.objects.get_for_model(cls).id, - role_field = role_field + role_field = role_field, + **ct_kwarg ).values_list('object_id').distinct() diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index 87cdb90d73..896e740c0c 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -175,12 +175,10 @@ class UnifiedJobTemplate(PolymorphicModel, CommonModelNameNotUnique, Notificatio Does not return inventory sources or system JTs, these should be handled inside of get_queryset where it is utilized. ''' - # Algorithmic option, if we don't want hardcoded class names - # ujt_name_list = [c.__name__.lower() for c in cls.__subclasses__()] - # ujt_name_list.remove('inventorysource') + ujt_names = [c.__name__.lower() for c in cls.__subclasses__() + if c.__name__.lower() not in ['inventorysource', 'systemjobtemplate']] subclass_content_types = ContentType.objects.filter( - model__in=['project', 'jobtemplate', 'systemjobtemplate', 'workflowjobtemplate'] - ).values_list('id', flat=True) + model__in=ujt_names).values_list('id', flat=True) return ResourceMixin._accessible_pk_qs(cls, accessor, role_field, content_types=subclass_content_types) diff --git a/tools/data_generators/presets.tsv b/tools/data_generators/presets.tsv index 5ba5b4557f..02e2d8f28f 100644 --- a/tools/data_generators/presets.tsv +++ b/tools/data_generators/presets.tsv @@ -1,15 +1,15 @@ -resource medium jan2017 -organizations 500 1 -users 5000 3 -teams 500 2 -projects 1000 30 -job-templates 2000 127 -credentials 2000 50 -inventories 2000 6 -inventory-groups 500 15 -inventory-hosts 2500 15 -wfjts 100 0 -nodes 1000 0 -labels 1000 0 -jobs 1000 157208 -job-events 1000 3370942 \ No newline at end of file +resource medium Jan2017 jobs1k jobs10k +organizations 500 1 1 1 +users 5000 3 3 3 +teams 500 2 2 2 +projects 1000 30 30 30 +job_templates 2000 127 127 127 +credentials 2000 50 50 50 +inventories 2000 6 6 6 +inventory_groups 500 15 15 15 +inventory_hosts 2500 15 15 15 +wfjts 100 0 0 0 +nodes 1000 0 0 0 +labels 1000 0 0 0 +jobs 1000 157208 1000 10000 +job_events 1000 3370942 20000 200000 \ No newline at end of file diff --git a/tools/data_generators/rbac_dummy_data_generator.py b/tools/data_generators/rbac_dummy_data_generator.py index 910568f8d6..8fe910d401 100755 --- a/tools/data_generators/rbac_dummy_data_generator.py +++ b/tools/data_generators/rbac_dummy_data_generator.py @@ -490,7 +490,8 @@ try: if project_idx == 0 and i == 0: job_template.admin_role.members.add(jt_admin) project_idx += 1 - print('') + if n > 0: + print('') print('# Creating %d Workflow Job Templates' % n_wfjts) org_idx = 0 @@ -511,7 +512,8 @@ try: wfjt._is_new = _ wfjts.append(wfjt) org_idx += 1 - print('') + if n: + print('') print('# Creating %d Workflow Job Template nodes' % n_nodes) wfjt_idx = 0 @@ -561,7 +563,8 @@ try: parent_node.success_nodes.add(node) parent_idx = (parent_idx + 7) % len(wfjt_nodes) wfjt_idx += 1 - print('') + if n: + print('') print('# Creating %d Labels' % n_labels) org_idx = 0 @@ -580,7 +583,8 @@ try: ) labels.append(label) org_idx += 1 - print('') + if n: + print('') label_gen = yield_choice(labels) print('# Adding labels to job templates') @@ -636,10 +640,9 @@ try: jobs.append(job) job_i += 1 if not job._is_new: - job_template_idx += 1 group_idx += 1 continue - if i+1 == n: + if i + 1 == n: job_template.last_job = job if job_template.pk % 5 == 0: job_template.current_job = job @@ -689,3 +692,5 @@ try: except Rollback: print('Rolled back changes') pass + +print('')