Пример #1
0
class DetailedHostSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Host
        fields = "__all__"

    playbook = SimplePlaybookSerializer(read_only=True)
    facts = ara_fields.CompressedObjectField(read_only=True)
Пример #2
0
class ListTaskSerializer(ItemCountSerializer, TaskPathSerializer):
    class Meta:
        model = models.Task
        exclude = ("created", "updated")

    tags = ara_fields.CompressedObjectField(read_only=True)
    play = serializers.PrimaryKeyRelatedField(read_only=True)
Пример #3
0
class DetailedRecordSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Record
        fields = "__all__"

    playbook = SimplePlaybookSerializer(read_only=True)
    value = ara_fields.CompressedObjectField(read_only=True)
Пример #4
0
class ListTaskSerializer(ItemCountSerializer, TaskPathSerializer):
    class Meta:
        model = models.Task
        fields = "__all__"

    tags = ara_fields.CompressedObjectField(read_only=True)
    play = serializers.PrimaryKeyRelatedField(read_only=True)
Пример #5
0
class ListPlaybookSerializer(DurationSerializer, ItemCountSerializer):
    class Meta:
        model = models.Playbook
        exclude = ("created", "updated")

    arguments = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT, read_only=True)
    labels = SimpleLabelSerializer(many=True, read_only=True, default=[])
Пример #6
0
class NestedPlayTaskSerializer(TaskPathSerializer):
    class Meta:
        model = models.Task
        exclude = ("playbook", "play", "created", "updated")

    tags = ara_fields.CompressedObjectField(read_only=True)
    results = NestedPlaybookResultSerializer(read_only=True, many=True)
    file = NestedPlaybookFileSerializer(read_only=True)
Пример #7
0
class ListPlaybookSerializer(ItemCountSerializer):
    class Meta:
        model = models.Playbook
        fields = "__all__"

    arguments = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT,
                                                 read_only=True)
    labels = SimpleLabelSerializer(many=True, read_only=True, default=[])
Пример #8
0
class TaskSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Task
        fields = "__all__"

    tags = ara_fields.CompressedObjectField(
        default=ara_fields.EMPTY_LIST,
        help_text="A list containing Ansible tags")
Пример #9
0
class RecordSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Record
        fields = "__all__"

    value = ara_fields.CompressedObjectField(
        default=ara_fields.EMPTY_STRING,
        help_text="A string, list, dict, json or other formatted data")
Пример #10
0
class DetailedTaskSerializer(ItemCountSerializer, TaskPathSerializer):
    class Meta:
        model = models.Task
        fields = "__all__"

    playbook = SimplePlaybookSerializer(read_only=True)
    play = SimplePlaySerializer(read_only=True)
    file = SimpleFileSerializer(read_only=True)
    tags = ara_fields.CompressedObjectField(read_only=True)
Пример #11
0
class PlaybookSerializer(DurationSerializer):
    class Meta:
        model = models.Playbook
        fields = "__all__"

    arguments = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT)
    labels = ara_fields.CreatableSlugRelatedField(
        many=True, slug_field="name", queryset=models.Label.objects.all(), required=False
    )
Пример #12
0
class DetailedTaskSerializer(DurationSerializer, ItemCountSerializer, TaskPathSerializer):
    class Meta:
        model = models.Task
        fields = "__all__"

    playbook = SimplePlaybookSerializer(read_only=True)
    play = SimplePlaySerializer(read_only=True)
    file = SimpleFileSerializer(read_only=True)
    results = NestedPlaybookResultSerializer(many=True, read_only=True, default=[])
    tags = ara_fields.CompressedObjectField(read_only=True)
Пример #13
0
class DetailedResultSerializer(ResultStatusSerializer):
    class Meta:
        model = models.Result
        fields = "__all__"

    playbook = SimplePlaybookSerializer(read_only=True)
    play = SimplePlaySerializer(read_only=True)
    task = SimpleTaskSerializer(read_only=True)
    host = SimpleHostSerializer(read_only=True)
    content = ara_fields.CompressedObjectField(read_only=True)
Пример #14
0
class ResultSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Result
        fields = "__all__"

    content = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT)
    delegated_to = serializers.SlugRelatedField(
        many=True,
        required=False,
        slug_field="id",
        queryset=models.Host.objects.all())
Пример #15
0
class DetailedPlaybookSerializer(DurationSerializer, ItemCountSerializer):
    class Meta:
        model = models.Playbook
        fields = "__all__"

    arguments = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT, read_only=True)
    labels = SimpleLabelSerializer(many=True, read_only=True, default=[])
    plays = NestedPlaybookPlaySerializer(many=True, read_only=True, default=[])
    hosts = SimpleHostSerializer(many=True, read_only=True, default=[])
    files = SimpleFileSerializer(many=True, read_only=True, default=[])
    records = NestedPlaybookRecordSerializer(many=True, read_only=True, default=[])
Пример #16
0
class NestedPlaybookTaskSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Task
        exclude = ("playbook", "created", "updated")

    tags = ara_fields.CompressedObjectField(read_only=True)
    file = NestedPlaybookFileSerializer(read_only=True)
    results = serializers.SerializerMethodField()

    @staticmethod
    def get_results(obj):
        results = obj.results.all().order_by("-id")
        return NestedPlaybookResultSerializer(results, many=True).data
Пример #17
0
class DetailedPlaybookSerializer(ItemCountSerializer):
    class Meta:
        model = models.Playbook
        fields = "__all__"

    arguments = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT,
                                                 read_only=True)
    labels = SimpleLabelSerializer(many=True, read_only=True, default=[])
    hosts = SimpleHostSerializer(many=True, read_only=True, default=[])
    files = SimpleFileSerializer(many=True, read_only=True, default=[])
    records = NestedPlaybookRecordSerializer(many=True,
                                             read_only=True,
                                             default=[])
    plays = serializers.SerializerMethodField()

    @staticmethod
    def get_plays(obj):
        plays = obj.plays.all().order_by("-id")
        return NestedPlaybookPlaySerializer(plays, many=True).data
Пример #18
0
class HostSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Host
        fields = "__all__"

    facts = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT)

    def get_unique_together_validators(self):
        """
        Hosts have a "unique together" constraint for host.name and play.id.
        We want to have a "get_or_create" facility and in order to do that, we
        must manage the validation during the creation, not before.
        Overriding this method effectively disables this validator.
        """
        return []

    def create(self, validated_data):
        host, created = models.Host.objects.get_or_create(
            name=validated_data["name"], playbook=validated_data["playbook"], defaults=validated_data
        )
        return host
Пример #19
0
class ResultSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Result
        fields = "__all__"

    content = ara_fields.CompressedObjectField(default=ara_fields.EMPTY_DICT)
Пример #20
0
class SimpleTaskSerializer(ItemCountSerializer, TaskPathSerializer):
    class Meta:
        model = models.Task
        exclude = ("playbook", "play", "created", "updated")

    tags = ara_fields.CompressedObjectField(read_only=True)