Exemplo n.º 1
0
class TaskFilter(BaseFilterSet):
    state = filters.CharFilter()
    worker = HyperlinkRelatedFilter()
    name = filters.CharFilter()
    started_at = IsoDateTimeFilter(field_name="started_at")
    finished_at = IsoDateTimeFilter(field_name="finished_at")
    parent_task = HyperlinkRelatedFilter()
    child_tasks = HyperlinkRelatedFilter()
    task_group = HyperlinkRelatedFilter()
    reserved_resources_record = ReservedResourcesFilter()
    created_resources = CreatedResourcesFilter()

    class Meta:
        model = Task
        fields = {
            "name": ["contains"],
            "state": ["exact", "in"],
            "worker": ["exact", "in"],
            "started_at": DATETIME_FILTER_OPTIONS,
            "finished_at": DATETIME_FILTER_OPTIONS,
            "parent_task": ["exact"],
            "child_tasks": ["exact"],
            "task_group": ["exact"],
            "reserved_resources_record": ["exact"],
            "created_resources": ["exact"],
        }
Exemplo n.º 2
0
class TaskFilter(BaseFilterSet):
    state = filters.CharFilter()
    worker = HyperlinkRelatedFilter()
    name = filters.CharFilter()
    started_at = IsoDateTimeFilter(field_name='started_at')
    finished_at = IsoDateTimeFilter(field_name='finished_at')
    parent_task = HyperlinkRelatedFilter()
    child_tasks = HyperlinkRelatedFilter()
    task_group = HyperlinkRelatedFilter()
    reserved_resources_record = ReservedResourcesFilter()
    created_resources = CreatedResourcesFilter()

    class Meta:
        model = Task
        fields = {
            'name': ['contains'],
            'state': ['exact', 'in'],
            'worker': ['exact', 'in'],
            'started_at': DATETIME_FILTER_OPTIONS,
            'finished_at': DATETIME_FILTER_OPTIONS,
            'parent_task': ['exact'],
            'child_tasks': ['exact'],
            'task_group': ['exact'],
            'reserved_resources_record': ['exact'],
            'created_resources': ['exact']
        }
Exemplo n.º 3
0
class WorkerFilter(BaseFilterSet):
    name = filters.CharFilter()
    last_heartbeat = IsoDateTimeFilter()
    online = filters.BooleanFilter(method='filter_online')
    missing = filters.BooleanFilter(method='filter_missing')

    class Meta:
        model = Worker
        fields = {
            'name': NAME_FILTER_OPTIONS,
            'last_heartbeat': DATETIME_FILTER_OPTIONS,
            'online': ['exact'],
            'missing': ['exact']
        }

    def filter_online(self, queryset, name, value):
        online_workers = Worker.objects.online_workers()

        if value:
            return queryset.filter(pk__in=online_workers)
        else:
            return queryset.exclude(pk__in=online_workers)

    def filter_missing(self, queryset, name, value):
        missing_workers = Worker.objects.missing_workers()

        if value:
            return queryset.filter(pk__in=missing_workers)
        else:
            return queryset.exclude(pk__in=missing_workers)
Exemplo n.º 4
0
class WorkerFilter(BaseFilterSet):
    name = filters.CharFilter()
    last_heartbeat = IsoDateTimeFilter()
    online = filters.BooleanFilter(method="filter_online")
    missing = filters.BooleanFilter(method="filter_missing")

    class Meta:
        model = Worker
        fields = {
            "name": NAME_FILTER_OPTIONS,
            "last_heartbeat": DATETIME_FILTER_OPTIONS,
            "online": ["exact"],
            "missing": ["exact"],
        }

    def filter_online(self, queryset, name, value):
        online_workers = Worker.objects.online_workers()

        if value:
            return queryset.filter(pk__in=online_workers)
        else:
            return queryset.exclude(pk__in=online_workers)

    def filter_missing(self, queryset, name, value):
        missing_workers = Worker.objects.missing_workers()

        if value:
            return queryset.filter(pk__in=missing_workers)
        else:
            return queryset.exclude(pk__in=missing_workers)
Exemplo n.º 5
0
class TaskFilter(BaseFilterSet):
    state = filters.CharFilter()
    worker = HyperlinkRelatedFilter()
    started_at = IsoDateTimeFilter(field_name='started_at')
    finished_at = IsoDateTimeFilter(field_name='finished_at')
    parent = HyperlinkRelatedFilter()

    class Meta:
        model = Task
        fields = {
            'state': ['exact', 'in'],
            'worker': ['exact', 'in'],
            'started_at': DATETIME_FILTER_OPTIONS,
            'finished_at': DATETIME_FILTER_OPTIONS,
            'parent': ['exact']
        }
Exemplo n.º 6
0
class PublicationFilter(BaseFilterSet):
    repository_version = RepositoryVersionFilter()
    pulp_created = IsoDateTimeFilter()

    class Meta:
        model = Publication
        fields = {
            'repository_version': ['exact'],
            'pulp_created': DATETIME_FILTER_OPTIONS,
        }
Exemplo n.º 7
0
class PublicationFilter(BaseFilterSet):
    repository_version = RepositoryVersionFilter()
    pulp_created = IsoDateTimeFilter()

    class Meta:
        model = Publication
        fields = {
            "repository_version": ["exact"],
            "pulp_created": DATETIME_FILTER_OPTIONS,
        }
Exemplo n.º 8
0
class PublicationFilter(BaseFilterSet):
    repository_version = RepositoryVersionFilter()
    pulp_created = IsoDateTimeFilter()
    content = PublicationContentFilter()
    content__in = PublicationContentFilter(field_name="content", lookup_expr="in")

    class Meta:
        model = Publication
        fields = {
            "repository_version": ["exact"],
            "pulp_created": DATETIME_FILTER_OPTIONS,
        }
Exemplo n.º 9
0
class RemoteFilter(BaseFilterSet):
    """
    Plugin remote filter should:
     - inherit from this class
     - add any specific filters if needed
     - define a `Meta` class which should:
       - specify a plugin remote model for which filter is defined
       - extend `fields` with specific ones
    """

    name = filters.CharFilter()
    pulp_last_updated = IsoDateTimeFilter()

    class Meta:
        model = Remote
        fields = {"name": NAME_FILTER_OPTIONS, "pulp_last_updated": DATETIME_FILTER_OPTIONS}
Exemplo n.º 10
0
class Pulp2ContentFilter(BaseFilterSet):
    """
    Filter for Pulp2Content ViewSet.
    """
    pulp2_id = filters.CharFilter()
    pulp2_content_type_id = filters.CharFilter()
    pulp2_last_updated = IsoDateTimeFilter(field_name='pulp2_last_updated')
    pulp3_content = HyperlinkRelatedFilter()

    class Meta:
        model = Pulp2Content
        fields = {
            'pulp2_id': ['exact', 'in'],
            'pulp2_content_type_id': ['exact', 'in'],
            'pulp2_last_updated': DATETIME_FILTER_OPTIONS,
            'pulp3_content': ['exact']
        }
Exemplo n.º 11
0
class RepositoryVersionFilter(BaseFilterSet):
    # e.g.
    # /?number=4
    # /?number__range=4,6
    # /?pulp_created__gte=2018-04-12T19:45
    # /?pulp_created__range=2018-04-12T19:45,2018-04-13T20:00
    # /?content=/pulp/api/v3/content/file/fb8ad2d0-03a8-4e36-a209-77763d4ed16c/
    number = filters.NumberFilter()
    pulp_created = IsoDateTimeFilter()
    content = RepositoryVersionContentFilter()
    content__in = RepositoryVersionContentFilter(field_name="content", lookup_expr="in")

    class Meta:
        model = RepositoryVersion
        fields = {
            "number": ["exact", "lt", "lte", "gt", "gte", "range"],
            "pulp_created": DATETIME_FILTER_OPTIONS,
        }
Exemplo n.º 12
0
class RepositoryVersionFilter(BaseFilterSet):
    # e.g.
    # /?number=4
    # /?number__range=4,6
    # /?pulp_created__gte=2018-04-12T19:45
    # /?pulp_created__range=2018-04-12T19:45,2018-04-13T20:00
    # /?content=/pulp/api/v3/content/file/fb8ad2d0-03a8-4e36-a209-77763d4ed16c/
    number = filters.NumberFilter()
    pulp_created = IsoDateTimeFilter()
    content = RepositoryVersionContentFilter()

    class Meta:
        model = RepositoryVersion
        fields = {
            'number': ['exact', 'lt', 'lte', 'gt', 'gte', 'range'],
            'pulp_created': DATETIME_FILTER_OPTIONS,
            'content': ['exact', 'in']
        }
Exemplo n.º 13
0
class Pulp2ContentFilter(BaseFilterSet):
    """
    Filter for Pulp2Content ViewSet.
    """

    pulp2_id = filters.CharFilter()
    pulp2_content_type_id = filters.CharFilter()
    pulp2_last_updated = IsoDateTimeFilter(field_name="pulp2_last_updated")
    pulp3_content = HyperlinkRelatedFilter()

    class Meta:
        model = Pulp2Content
        fields = {
            "pulp2_id": ["exact", "in"],
            "pulp2_content_type_id": ["exact", "in"],
            "pulp2_last_updated": DATETIME_FILTER_OPTIONS,
            "pulp3_content": ["exact"],
        }
Exemplo n.º 14
0
class ExporterFilter(BaseFilterSet):
    """
    Plugin exporter filter should:
     - inherit from this class
     - add any specific filters if needed
     - define a `Meta` class which should:
       - specify a plugin exporter model for which filter is defined
       - extend `fields` with specific ones
    """
    name = filters.CharFilter()
    last_export = IsoDateTimeFilter()

    class Meta:
        model = Exporter
        fields = {
            'name': NAME_FILTER_OPTIONS,
            'last_export': DATETIME_FILTER_OPTIONS
        }
Exemplo n.º 15
0
class UploadFilter(BaseFilterSet):
    completed = IsoDateTimeFilter(field_name='completed')

    class Meta:
        model = Upload
        fields = {'completed': DATETIME_FILTER_OPTIONS + ['isnull']}
Exemplo n.º 16
0
class UploadFilter(BaseFilterSet):
    completed = IsoDateTimeFilter(field_name="completed")

    class Meta:
        model = Upload
        fields = {"completed": DATETIME_FILTER_OPTIONS + ["isnull"]}