mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 17:37:37 -02:30
Merge pull request #199 from chrismeyersfsu/feature-fact_options
add list of modules to fact OPTIONS endpoints
This commit is contained in:
@@ -9,7 +9,7 @@ import logging
|
|||||||
from dateutil import rrule
|
from dateutil import rrule
|
||||||
from ast import literal_eval
|
from ast import literal_eval
|
||||||
|
|
||||||
from rest_framework_mongoengine.serializers import MongoEngineModelSerializer
|
from rest_framework_mongoengine.serializers import MongoEngineModelSerializer, MongoEngineModelSerializerOptions
|
||||||
|
|
||||||
# PyYAML
|
# PyYAML
|
||||||
import yaml
|
import yaml
|
||||||
@@ -403,6 +403,23 @@ class BaseSerializer(serializers.ModelSerializer):
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
|
class BaseFactSerializerOptions(MongoEngineModelSerializerOptions):
|
||||||
|
def __init__(self, meta):
|
||||||
|
super(BaseFactSerializerOptions, self).__init__(meta)
|
||||||
|
|
||||||
|
|
||||||
|
class BaseFactSerializer(MongoEngineModelSerializer):
|
||||||
|
_options_class = BaseFactSerializerOptions
|
||||||
|
__metaclass__ = BaseSerializerMetaclass
|
||||||
|
|
||||||
|
def get_fields(self):
|
||||||
|
ret = super(BaseFactSerializer, self).get_fields()
|
||||||
|
if 'module' in ret:
|
||||||
|
choices = [(o, o) for o in FactVersion.objects.all().only('module').distinct('module')]
|
||||||
|
ret['module'] = ChoiceField(source='module', choices=choices, read_only=True, required=False)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
class UnifiedJobTemplateSerializer(BaseSerializer):
|
class UnifiedJobTemplateSerializer(BaseSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@@ -2052,7 +2069,7 @@ class AuthTokenSerializer(serializers.Serializer):
|
|||||||
raise serializers.ValidationError('Must include "username" and "password"')
|
raise serializers.ValidationError('Must include "username" and "password"')
|
||||||
|
|
||||||
|
|
||||||
class FactVersionSerializer(MongoEngineModelSerializer):
|
class FactVersionSerializer(BaseFactSerializer):
|
||||||
related = serializers.SerializerMethodField('get_related')
|
related = serializers.SerializerMethodField('get_related')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@@ -2071,7 +2088,8 @@ class FactVersionSerializer(MongoEngineModelSerializer):
|
|||||||
))
|
))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
class FactSerializer(MongoEngineModelSerializer):
|
|
||||||
|
class FactSerializer(BaseFactSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Fact
|
model = Fact
|
||||||
|
|||||||
Reference in New Issue
Block a user