Make schedules accept gce/vmware/wa credentials.

This commit is contained in:
Luke Sneeringer
2014-08-13 12:00:42 -04:00
parent 43cbfc2b33
commit 7721a52584

View File

@@ -34,6 +34,7 @@ from rest_framework import serializers
from polymorphic import PolymorphicModel from polymorphic import PolymorphicModel
# AWX # AWX
from awx.main.constants import CLOUD_PROVIDERS
from awx.main.models import * from awx.main.models import *
from awx.main.utils import update_scm_url, get_type_for_model, get_model_for_type from awx.main.utils import update_scm_url, get_type_for_model, get_model_for_type
@@ -109,7 +110,7 @@ class BaseSerializerMetaclass(serializers.SerializerMetaclass):
''' '''
Custom metaclass to enable attribute inheritance from Meta objects on Custom metaclass to enable attribute inheritance from Meta objects on
serializer base classes. serializer base classes.
Also allows for inheriting or updating field lists from base class(es): Also allows for inheriting or updating field lists from base class(es):
class Meta: class Meta:
@@ -288,7 +289,7 @@ class BaseSerializer(serializers.ModelSerializer):
# Can be raised by the reverse accessor for a OneToOneField. # Can be raised by the reverse accessor for a OneToOneField.
except ObjectDoesNotExist: except ObjectDoesNotExist:
pass pass
return summary_fields return summary_fields
def get_created(self, obj): def get_created(self, obj):
if obj is None: if obj is None:
@@ -423,7 +424,7 @@ class UnifiedJobSerializer(BaseSerializer):
class UnifiedJobListSerializer(UnifiedJobSerializer): class UnifiedJobListSerializer(UnifiedJobSerializer):
class Meta: class Meta:
exclude = ('*', 'job_args', 'job_cwd', 'job_env', 'result_traceback', exclude = ('*', 'job_args', 'job_cwd', 'job_env', 'result_traceback',
'result_stdout') 'result_stdout')
@@ -512,7 +513,7 @@ class UserSerializer(BaseSerializer):
if not obj.password: if not obj.password:
obj.set_unusable_password() obj.set_unusable_password()
return super(UserSerializer, self).save_object(obj, **kwargs) return super(UserSerializer, self).save_object(obj, **kwargs)
def get_related(self, obj): def get_related(self, obj):
res = super(UserSerializer, self).get_related(obj) res = super(UserSerializer, self).get_related(obj)
res.update(dict( res.update(dict(
@@ -576,7 +577,7 @@ class OrganizationSerializer(BaseSerializer):
class ProjectOptionsSerializer(BaseSerializer): class ProjectOptionsSerializer(BaseSerializer):
class Meta: class Meta:
fields = ('*', 'local_path', 'scm_type', 'scm_url', 'scm_branch', fields = ('*', 'local_path', 'scm_type', 'scm_url', 'scm_branch',
'scm_clean', 'scm_delete_on_update', 'credential') 'scm_clean', 'scm_delete_on_update', 'credential')
@@ -876,7 +877,7 @@ class GroupSerializer(BaseSerializerWithVariables):
class GroupTreeSerializer(GroupSerializer): class GroupTreeSerializer(GroupSerializer):
children = serializers.SerializerMethodField('get_children') children = serializers.SerializerMethodField('get_children')
class Meta: class Meta:
@@ -930,7 +931,7 @@ class GroupVariableDataSerializer(BaseVariableDataSerializer):
class InventorySourceOptionsSerializer(BaseSerializer): class InventorySourceOptionsSerializer(BaseSerializer):
class Meta: class Meta:
fields = ('*', 'source', 'source_path', 'source_vars', 'credential', fields = ('*', 'source', 'source_path', 'source_vars', 'credential',
'source_regions', 'overwrite', 'overwrite_vars') 'source_regions', 'overwrite', 'overwrite_vars')
@@ -1091,7 +1092,7 @@ class PermissionSerializer(BaseSerializer):
if obj.team and obj.team.active: if obj.team and obj.team.active:
res['team'] = reverse('api:team_detail', args=(obj.team.pk,)) res['team'] = reverse('api:team_detail', args=(obj.team.pk,))
if obj.project and obj.project.active: if obj.project and obj.project.active:
res['project'] = reverse('api:project_detail', args=(obj.project.pk,)) res['project'] = reverse('api:project_detail', args=(obj.project.pk,))
if obj.inventory and obj.inventory.active: if obj.inventory and obj.inventory.active:
res['inventory'] = reverse('api:inventory_detail', args=(obj.inventory.pk,)) res['inventory'] = reverse('api:inventory_detail', args=(obj.inventory.pk,))
return res return res
@@ -1389,7 +1390,7 @@ class ScheduleSerializer(BaseSerializer):
def validate_unified_job_template(self, attrs, source): def validate_unified_job_template(self, attrs, source):
ujt = attrs[source] ujt = attrs[source]
if type(ujt) == InventorySource and ujt.source not in ('rax', 'ec2',): if type(ujt) == InventorySource and ujt.source not in CLOUD_PROVIDERS:
raise serializers.ValidationError('Inventory Source must be a cloud resource') raise serializers.ValidationError('Inventory Source must be a cloud resource')
return attrs return attrs