Skip to content

Commit

Permalink
Add in the basic list and detail api views
Browse files Browse the repository at this point in the history
  • Loading branch information
jbradberry committed Jul 2, 2020
1 parent 15466f5 commit 733b1e3
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 1 deletion.
17 changes: 16 additions & 1 deletion awx/api/serializers.py
Expand Up @@ -50,7 +50,7 @@
)
from awx.main.models import (
ActivityStream, AdHocCommand, AdHocCommandEvent, Credential, CredentialInputSource,
CredentialType, CustomInventoryScript, Group, Host, Instance,
CredentialType, CustomInventoryScript, ExecutionEnvironment, Group, Host, Instance,
InstanceGroup, Inventory, InventorySource, InventoryUpdate,
InventoryUpdateEvent, Job, JobEvent, JobHostSummary, JobLaunchConfig,
JobNotificationMixin, JobTemplate, Label, Notification, NotificationTemplate,
Expand Down Expand Up @@ -1345,6 +1345,21 @@ def validate(self, attrs):
return super(ProjectOptionsSerializer, self).validate(attrs)


class ExecutionEnvironmentSerializer(BaseSerializer):
class Meta:
model = ExecutionEnvironment
fields = ('*', '-name', 'organization', 'image', 'managed_by_tower', 'credential')

def get_related(self, obj):
res = super(ExecutionEnvironmentSerializer, self).get_related(obj)
if obj.organization:
res['organization'] = self.reverse('api:organization_detail', kwargs={'pk': obj.organization.pk})
if obj.credential:
res['credential'] = self.reverse('api:credential_detail',
kwargs={'pk': obj.credential.pk})
return res


class ProjectSerializer(UnifiedJobTemplateSerializer, ProjectOptionsSerializer):

status = serializers.ChoiceField(choices=Project.PROJECT_STATUS_CHOICES, read_only=True)
Expand Down
14 changes: 14 additions & 0 deletions awx/api/urls/execution_environments.py
@@ -0,0 +1,14 @@
from django.conf.urls import url

from awx.api.views import (
ExecutionEnvironmentList,
ExecutionEnvironmentDetail,
)


urls = [
url(r'^$', ExecutionEnvironmentList.as_view(), name='execution_environment_list'),
url(r'^(?P<pk>[0-9]+)/$', ExecutionEnvironmentDetail.as_view(), name='execution_environment_detail'),
]

__all__ = ['urls']
2 changes: 2 additions & 0 deletions awx/api/urls/urls.py
Expand Up @@ -41,6 +41,7 @@
from .project import urls as project_urls
from .project_update import urls as project_update_urls
from .inventory import urls as inventory_urls
from .execution_environments import urls as execution_environment_urls
from .team import urls as team_urls
from .host import urls as host_urls
from .group import urls as group_urls
Expand Down Expand Up @@ -104,6 +105,7 @@
url(r'^schedules/', include(schedule_urls)),
url(r'^organizations/', include(organization_urls)),
url(r'^users/', include(user_urls)),
url(r'^execution_environments/', include(execution_environment_urls)),
url(r'^projects/', include(project_urls)),
url(r'^project_updates/', include(project_update_urls)),
url(r'^teams/', include(team_urls)),
Expand Down
12 changes: 12 additions & 0 deletions awx/api/views/__init__.py
Expand Up @@ -669,6 +669,18 @@ class TeamAccessList(ResourceAccessList):
parent_model = models.Team


class ExecutionEnvironmentList(ListCreateAPIView):

model = models.ExecutionEnvironment
serializer_class = serializers.ExecutionEnvironmentSerializer


class ExecutionEnvironmentDetail(RetrieveUpdateDestroyAPIView):

model = models.ExecutionEnvironment
serializer_class = serializers.ExecutionEnvironmentSerializer


class ProjectList(ListCreateAPIView):

model = models.Project
Expand Down
1 change: 1 addition & 0 deletions awx/api/views/root.py
Expand Up @@ -98,6 +98,7 @@ def get(self, request, format=None):
data['dashboard'] = reverse('api:dashboard_view', request=request)
data['organizations'] = reverse('api:organization_list', request=request)
data['users'] = reverse('api:user_list', request=request)
data['execution_environments'] = reverse('api:execution_environment_list', request=request)
data['projects'] = reverse('api:project_list', request=request)
data['project_updates'] = reverse('api:project_update_list', request=request)
data['teams'] = reverse('api:team_list', request=request)
Expand Down
4 changes: 4 additions & 0 deletions awx/main/models/execution_environments.py
@@ -1,6 +1,7 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _

from awx.api.versioning import reverse
from awx.main.models.base import PrimordialModel


Expand Down Expand Up @@ -34,3 +35,6 @@ class Meta:
default=None,
on_delete=models.SET_NULL,
)

def get_absolute_url(self, request=None):
return reverse('api:execution_environment_detail', kwargs={'pk': self.pk}, request=request)

0 comments on commit 733b1e3

Please sign in to comment.