cleanup from accessible_objects refactor

This commit is contained in:
AlanCoding 2017-01-21 12:45:40 -05:00
parent b2d0871a5e
commit 36c68178dd
4 changed files with 35 additions and 36 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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
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
1 resource medium jan2017 Jan2017 jobs1k jobs10k
2 organizations 500 1 1 1
3 users 5000 3 3 3
4 teams 500 2 2 2
5 projects 1000 30 30 30
6 job-templates job_templates 2000 127 127 127
7 credentials 2000 50 50 50
8 inventories 2000 6 6 6
9 inventory-groups inventory_groups 500 15 15 15
10 inventory-hosts inventory_hosts 2500 15 15 15
11 wfjts 100 0 0 0
12 nodes 1000 0 0 0
13 labels 1000 0 0 0
14 jobs 1000 157208 1000 10000
15 job-events job_events 1000 3370942 20000 200000

View File

@ -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('')