mirror of
https://github.com/ansible/awx.git
synced 2026-03-18 17:37:30 -02:30
add list of modules to fact_version OPTIONS endpoint
This commit is contained in:
@@ -8,7 +8,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
|
||||||
@@ -372,6 +372,23 @@ class BaseSerializer(serializers.ModelSerializer):
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
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:
|
||||||
@@ -2018,7 +2035,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:
|
||||||
@@ -2037,7 +2054,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