mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 21:37:42 -02:30
Renaming some views for somewhat consistent naming, add hosts/N/groups and hosts/N/all_groups views, removed creation_date field from seralizers.
This commit is contained in:
@@ -15,17 +15,17 @@ from rest_framework import serializers
|
||||
# AnsibleWorks
|
||||
from ansibleworks.main.models import *
|
||||
|
||||
BASE_FIELDS = ('id', 'url', 'related', 'summary_fields', 'created',
|
||||
'creation_date', 'name', 'description')
|
||||
BASE_FIELDS = ('id', 'url', 'related', 'summary_fields', 'created', 'name',
|
||||
'description')
|
||||
|
||||
# objects that if found we should add summary info for them
|
||||
SUMMARIZABLE_FKS = (
|
||||
'organization', 'host', 'group', 'inventory', 'project', 'team', 'job', 'job_template',
|
||||
'credential', 'permission'
|
||||
'organization', 'host', 'group', 'inventory', 'project', 'team', 'job',
|
||||
'job_template', 'credential', 'permission',
|
||||
)
|
||||
# fields that should be summarized regardless of object type
|
||||
SUMMARIZABLE_FIELDS = (
|
||||
'name', 'username', 'first_name', 'last_name', 'description'
|
||||
'name', 'username', 'first_name', 'last_name', 'description',
|
||||
)
|
||||
|
||||
class BaseSerializer(serializers.ModelSerializer):
|
||||
@@ -37,19 +37,18 @@ class BaseSerializer(serializers.ModelSerializer):
|
||||
|
||||
# make certain fields read only
|
||||
created = serializers.SerializerMethodField('get_created')
|
||||
creation_date = serializers.SerializerMethodField('get_creation_date') # FIXME: temporarily left this field in case anything uses it.. should be removed.
|
||||
active = serializers.SerializerMethodField('get_active')
|
||||
|
||||
def get_absolute_url(self, obj):
|
||||
if isinstance(obj, User):
|
||||
return reverse('main:users_detail', args=(obj.pk,))
|
||||
return reverse('main:user_detail', args=(obj.pk,))
|
||||
else:
|
||||
return obj.get_absolute_url()
|
||||
|
||||
def get_related(self, obj):
|
||||
res = dict()
|
||||
if getattr(obj, 'created_by', None):
|
||||
res['created_by'] = reverse('main:users_detail', args=(obj.created_by.pk,))
|
||||
res['created_by'] = reverse('main:user_detail', args=(obj.created_by.pk,))
|
||||
return res
|
||||
|
||||
def get_summary_fields(self, obj):
|
||||
@@ -70,12 +69,6 @@ class BaseSerializer(serializers.ModelSerializer):
|
||||
pass
|
||||
return summary_fields
|
||||
|
||||
def get_creation_date(self, obj):
|
||||
if isinstance(obj, User):
|
||||
return obj.date_joined.date()
|
||||
else:
|
||||
return obj.created.date()
|
||||
|
||||
def get_created(self, obj):
|
||||
if isinstance(obj, User):
|
||||
return obj.date_joined
|
||||
@@ -97,13 +90,13 @@ class OrganizationSerializer(BaseSerializer):
|
||||
def get_related(self, obj):
|
||||
res = super(OrganizationSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
#audit_trail = reverse('main:organizations_audit_trail_list', args=(obj.pk,)),
|
||||
projects = reverse('main:organizations_projects_list', args=(obj.pk,)),
|
||||
inventories = reverse('main:organizations_inventories_list', args=(obj.pk,)),
|
||||
users = reverse('main:organizations_users_list', args=(obj.pk,)),
|
||||
admins = reverse('main:organizations_admins_list', args=(obj.pk,)),
|
||||
#tags = reverse('main:organizations_tags_list', args=(obj.pk,)),
|
||||
teams = reverse('main:organizations_teams_list', args=(obj.pk,)),
|
||||
#audit_trail = reverse('main:organization_audit_trail_list', args=(obj.pk,)),
|
||||
projects = reverse('main:organization_projects_list', args=(obj.pk,)),
|
||||
inventories = reverse('main:organization_inventories_list', args=(obj.pk,)),
|
||||
users = reverse('main:organization_users_list', args=(obj.pk,)),
|
||||
admins = reverse('main:organization_admins_list', args=(obj.pk,)),
|
||||
#tags = reverse('main:organization_tags_list', args=(obj.pk,)),
|
||||
teams = reverse('main:organization_teams_list', args=(obj.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -114,13 +107,12 @@ class ProjectSerializer(BaseSerializer):
|
||||
class Meta:
|
||||
model = Project
|
||||
fields = BASE_FIELDS + ('local_path',)
|
||||
# 'default_playbook', 'scm_type')
|
||||
|
||||
def get_related(self, obj):
|
||||
res = super(ProjectSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
organizations = reverse('main:projects_organizations_list', args=(obj.pk,)),
|
||||
playbooks = reverse('main:projects_detail_playbooks', args=(obj.pk,)),
|
||||
organizations = reverse('main:project_organizations_list', args=(obj.pk,)),
|
||||
playbooks = reverse('main:project_detail_playbooks', args=(obj.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -148,7 +140,7 @@ class InventorySerializer(BaseSerializer):
|
||||
groups = reverse('main:inventory_groups_list', args=(obj.pk,)),
|
||||
root_groups = reverse('main:inventory_root_groups_list', args=(obj.pk,)),
|
||||
variable_data = reverse('main:inventory_variable_detail', args=(obj.pk,)),
|
||||
organization = reverse('main:organizations_detail', args=(obj.organization.pk,)),
|
||||
organization = reverse('main:organization_detail', args=(obj.organization.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -161,16 +153,17 @@ class HostSerializer(BaseSerializer):
|
||||
def get_related(self, obj):
|
||||
res = super(HostSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
variable_data = reverse('main:hosts_variable_detail', args=(obj.pk,)),
|
||||
inventory = reverse('main:inventory_detail', args=(obj.inventory.pk,)),
|
||||
job_events = reverse('main:host_job_event_list', args=(obj.pk,)),
|
||||
job_host_summaries = reverse('main:host_job_host_summary_list', args=(obj.pk,)),
|
||||
variable_data = reverse('main:host_variable_detail', args=(obj.pk,)),
|
||||
inventory = reverse('main:inventory_detail', args=(obj.inventory.pk,)),
|
||||
groups = reverse('main:host_groups_list', args=(obj.pk,)),
|
||||
all_groups = reverse('main:host_all_groups_list', args=(obj.pk,)),
|
||||
job_events = reverse('main:host_job_events_list', args=(obj.pk,)),
|
||||
job_host_summaries = reverse('main:host_job_host_summaries_list', args=(obj.pk,)),
|
||||
))
|
||||
if obj.last_job:
|
||||
res['last_job'] = reverse('main:job_detail', args=(obj.last_job.pk,))
|
||||
if obj.last_job_host_summary:
|
||||
res['last_job_host_summary'] = reverse('main:job_host_summary_detail', args=(obj.last_job_host_summary.pk,))
|
||||
# NICE TO HAVE: possible reverse resource to show what groups the host is in
|
||||
return res
|
||||
|
||||
class GroupSerializer(BaseSerializer):
|
||||
@@ -182,13 +175,13 @@ class GroupSerializer(BaseSerializer):
|
||||
def get_related(self, obj):
|
||||
res = super(GroupSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
variable_data = reverse('main:groups_variable_detail', args=(obj.pk,)),
|
||||
hosts = reverse('main:groups_hosts_list', args=(obj.pk,)),
|
||||
children = reverse('main:groups_children_list', args=(obj.pk,)),
|
||||
all_hosts = reverse('main:groups_all_hosts_list', args=(obj.pk,)),
|
||||
variable_data = reverse('main:group_variable_detail', args=(obj.pk,)),
|
||||
hosts = reverse('main:group_hosts_list', args=(obj.pk,)),
|
||||
children = reverse('main:group_children_list', args=(obj.pk,)),
|
||||
all_hosts = reverse('main:group_all_hosts_list', args=(obj.pk,)),
|
||||
inventory = reverse('main:inventory_detail', args=(obj.inventory.pk,)),
|
||||
job_events = reverse('main:group_job_event_list', args=(obj.pk,)),
|
||||
job_host_summaries = reverse('main:group_job_host_summary_list', args=(obj.pk,)),
|
||||
job_events = reverse('main:group_job_events_list', args=(obj.pk,)),
|
||||
job_host_summaries = reverse('main:group_job_host_summaries_list', args=(obj.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -229,11 +222,11 @@ class TeamSerializer(BaseSerializer):
|
||||
def get_related(self, obj):
|
||||
res = super(TeamSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
projects = reverse('main:teams_projects_list', args=(obj.pk,)),
|
||||
users = reverse('main:teams_users_list', args=(obj.pk,)),
|
||||
credentials = reverse('main:teams_credentials_list', args=(obj.pk,)),
|
||||
organization = reverse('main:organizations_detail', args=(obj.organization.pk,)),
|
||||
permissions = reverse('main:teams_permissions_list', args=(obj.pk,)),
|
||||
projects = reverse('main:team_projects_list', args=(obj.pk,)),
|
||||
users = reverse('main:team_users_list', args=(obj.pk,)),
|
||||
credentials = reverse('main:team_credentials_list', args=(obj.pk,)),
|
||||
organization = reverse('main:organization_detail', args=(obj.organization.pk,)),
|
||||
permissions = reverse('main:team_permissions_list', args=(obj.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -247,11 +240,11 @@ class PermissionSerializer(BaseSerializer):
|
||||
def get_related(self, obj):
|
||||
res = super(PermissionSerializer, self).get_related(obj)
|
||||
if obj.user:
|
||||
res['user'] = reverse('main:users_detail', args=(obj.user.pk,))
|
||||
res['user'] = reverse('main:user_detail', args=(obj.user.pk,))
|
||||
if obj.team:
|
||||
res['team'] = reverse('main:teams_detail', args=(obj.team.pk,))
|
||||
res['team'] = reverse('main:team_detail', args=(obj.team.pk,))
|
||||
if obj.project:
|
||||
res['project'] = reverse('main:projects_detail', args=(obj.project.pk,))
|
||||
res['project'] = reverse('main:project_detail', args=(obj.project.pk,))
|
||||
if obj.inventory:
|
||||
res['inventory'] = reverse('main:inventory_detail', args=(obj.inventory.pk,))
|
||||
return res
|
||||
@@ -269,9 +262,9 @@ class CredentialSerializer(BaseSerializer):
|
||||
def get_related(self, obj):
|
||||
res = super(CredentialSerializer, self).get_related(obj)
|
||||
if obj.user:
|
||||
res['user'] = reverse('main:users_detail', args=(obj.user.pk,))
|
||||
res['user'] = reverse('main:user_detail', args=(obj.user.pk,))
|
||||
if obj.team:
|
||||
res['team'] = reverse('main:teams_detail', args=(obj.team.pk,))
|
||||
res['team'] = reverse('main:team_detail', args=(obj.team.pk,))
|
||||
return res
|
||||
|
||||
def validate(self, attrs):
|
||||
@@ -288,19 +281,18 @@ class UserSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ('id', 'url', 'related', 'created', 'creation_date',
|
||||
'username', 'first_name', 'last_name', 'email', 'is_active',
|
||||
'is_superuser',)
|
||||
fields = ('id', 'url', 'related', 'created', 'username', 'first_name',
|
||||
'last_name', 'email', 'is_active', 'is_superuser',)
|
||||
|
||||
def get_related(self, obj):
|
||||
res = super(UserSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
teams = reverse('main:users_teams_list', args=(obj.pk,)),
|
||||
organizations = reverse('main:users_organizations_list', args=(obj.pk,)),
|
||||
admin_of_organizations = reverse('main:users_admin_organizations_list', args=(obj.pk,)),
|
||||
projects = reverse('main:users_projects_list', args=(obj.pk,)),
|
||||
credentials = reverse('main:users_credentials_list', args=(obj.pk,)),
|
||||
permissions = reverse('main:users_permissions_list', args=(obj.pk,)),
|
||||
teams = reverse('main:user_teams_list', args=(obj.pk,)),
|
||||
organizations = reverse('main:user_organizations_list', args=(obj.pk,)),
|
||||
admin_of_organizations = reverse('main:user_admin_of_organizations_list', args=(obj.pk,)),
|
||||
projects = reverse('main:user_projects_list', args=(obj.pk,)),
|
||||
credentials = reverse('main:user_credentials_list', args=(obj.pk,)),
|
||||
permissions = reverse('main:user_permissions_list', args=(obj.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -316,11 +308,11 @@ class JobTemplateSerializer(BaseSerializer):
|
||||
res = super(JobTemplateSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
inventory = reverse('main:inventory_detail', args=(obj.inventory.pk,)),
|
||||
project = reverse('main:projects_detail', args=(obj.project.pk,)),
|
||||
jobs = reverse('main:job_template_job_list', args=(obj.pk,)),
|
||||
project = reverse('main:project_detail', args=(obj.project.pk,)),
|
||||
jobs = reverse('main:job_template_jobs_list', args=(obj.pk,)),
|
||||
))
|
||||
if obj.credential:
|
||||
res['credential'] = reverse('main:credentials_detail', args=(obj.credential.pk,))
|
||||
res['credential'] = reverse('main:credential_detail', args=(obj.credential.pk,))
|
||||
return res
|
||||
|
||||
def validate_playbook(self, attrs, source):
|
||||
@@ -347,10 +339,10 @@ class JobSerializer(BaseSerializer):
|
||||
res = super(JobSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
inventory = reverse('main:inventory_detail', args=(obj.inventory.pk,)),
|
||||
project = reverse('main:projects_detail', args=(obj.project.pk,)),
|
||||
credential = reverse('main:credentials_detail', args=(obj.credential.pk,)),
|
||||
job_events = reverse('main:job_job_event_list', args=(obj.pk,)),
|
||||
job_host_summaries = reverse('main:job_job_host_summary_list', args=(obj.pk,)),
|
||||
project = reverse('main:project_detail', args=(obj.project.pk,)),
|
||||
credential = reverse('main:credential_detail', args=(obj.credential.pk,)),
|
||||
job_events = reverse('main:job_job_events_list', args=(obj.pk,)),
|
||||
job_host_summaries = reverse('main:job_job_host_summaries_list', args=(obj.pk,)),
|
||||
))
|
||||
if obj.job_template:
|
||||
res['job_template'] = reverse('main:job_template_detail', args=(obj.job_template.pk,))
|
||||
@@ -395,7 +387,7 @@ class JobHostSummarySerializer(BaseSerializer):
|
||||
res = super(JobHostSummarySerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
job=reverse('main:job_detail', args=(obj.job.pk,)),
|
||||
host=reverse('main:hosts_detail', args=(obj.host.pk,))
|
||||
host=reverse('main:host_detail', args=(obj.host.pk,))
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -414,5 +406,5 @@ class JobEventSerializer(BaseSerializer):
|
||||
job = reverse('main:job_detail', args=(obj.job.pk,)),
|
||||
))
|
||||
if obj.host:
|
||||
res['host'] = reverse('main:hosts_detail', args=(obj.host.pk,))
|
||||
res['host'] = reverse('main:host_detail', args=(obj.host.pk,))
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user