class BarfSiteFilterSet(SiteFilterSet): q = SearchFilter(filter_predicates={ "asn": { "preprocessor": barf, "lookup_expr": "exact" }, }, )
class ObjectChangeFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "user_name": "icontains", "object_repr": "icontains", }, ) changed_object_type = ContentTypeFilter() user_id = django_filters.ModelMultipleChoiceFilter( queryset=get_user_model().objects.all(), label="User (ID)", ) user = django_filters.ModelMultipleChoiceFilter( field_name="user__username", queryset=get_user_model().objects.all(), to_field_name="username", label="User name", ) class Meta: model = ObjectChange fields = [ "id", "user", "user_name", "request_id", "action", "changed_object_type_id", "changed_object_id", "object_repr", "time", ]
class VRFFilterSet(NautobotFilterSet, TenancyFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "rd": "icontains", "description": "icontains", }, ) import_target_id = django_filters.ModelMultipleChoiceFilter( field_name="import_targets", queryset=RouteTarget.objects.all(), label="Import target", ) import_target = django_filters.ModelMultipleChoiceFilter( field_name="import_targets__name", queryset=RouteTarget.objects.all(), to_field_name="name", label="Import target (name)", ) export_target_id = django_filters.ModelMultipleChoiceFilter( field_name="export_targets", queryset=RouteTarget.objects.all(), label="Export target", ) export_target = django_filters.ModelMultipleChoiceFilter( field_name="export_targets__name", queryset=RouteTarget.objects.all(), to_field_name="name", label="Export target (name)", ) tag = TagFilter() class Meta: model = VRF fields = ["id", "name", "rd", "enforce_unique"]
class TenantFilterSet(NautobotFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "slug": "icontains", "description": "icontains", "comments": "icontains", }, ) group_id = TreeNodeMultipleChoiceFilter( queryset=TenantGroup.objects.all(), field_name="group", lookup_expr="in", label="Tenant group (ID)", ) group = TreeNodeMultipleChoiceFilter( queryset=TenantGroup.objects.all(), field_name="group", lookup_expr="in", to_field_name="slug", label="Tenant group (slug)", ) tag = TagFilter() class Meta: model = Tenant fields = ["id", "name", "slug"]
class CircuitTerminationFilterSet(BaseFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): q = SearchFilter(filter_predicates={ "circuit__cid": "icontains", "xconnect_id": "icontains", "pp_info": "icontains", "description": "icontains", }, ) circuit_id = django_filters.ModelMultipleChoiceFilter( queryset=Circuit.objects.all(), label="Circuit", ) site_id = django_filters.ModelMultipleChoiceFilter( queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site (slug)", ) provider_network_id = django_filters.ModelMultipleChoiceFilter( queryset=ProviderNetwork.objects.all(), label="Provider Network (ID)", ) class Meta: model = CircuitTermination fields = ["term_side", "port_speed", "upstream_speed", "xconnect_id"]
class RouteTargetFilterSet(NautobotFilterSet, TenancyFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "description": "icontains", }, ) importing_vrf_id = django_filters.ModelMultipleChoiceFilter( field_name="importing_vrfs", queryset=VRF.objects.all(), label="Importing VRF", ) importing_vrf = django_filters.ModelMultipleChoiceFilter( field_name="importing_vrfs__rd", queryset=VRF.objects.all(), to_field_name="rd", label="Import VRF (RD)", ) exporting_vrf_id = django_filters.ModelMultipleChoiceFilter( field_name="exporting_vrfs", queryset=VRF.objects.all(), label="Exporting VRF", ) exporting_vrf = django_filters.ModelMultipleChoiceFilter( field_name="exporting_vrfs__rd", queryset=VRF.objects.all(), to_field_name="rd", label="Export VRF (RD)", ) tag = TagFilter() class Meta: model = RouteTarget fields = ["id", "name"]
class ServiceFilterSet(NautobotFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "description": "icontains", }, ) device_id = django_filters.ModelMultipleChoiceFilter( queryset=Device.objects.all(), label="Device (ID)", ) device = django_filters.ModelMultipleChoiceFilter( field_name="device__name", queryset=Device.objects.all(), to_field_name="name", label="Device (name)", ) virtual_machine_id = django_filters.ModelMultipleChoiceFilter( queryset=VirtualMachine.objects.all(), label="Virtual machine (ID)", ) virtual_machine = django_filters.ModelMultipleChoiceFilter( field_name="virtual_machine__name", queryset=VirtualMachine.objects.all(), to_field_name="name", label="Virtual machine (name)", ) port = NumericArrayFilter(field_name="ports", lookup_expr="contains") tag = TagFilter() class Meta: model = Service fields = ["id", "name", "protocol"]
class JobResultFilterSet(BaseFilterSet, CustomFieldModelFilterSet): q = SearchFilter(filter_predicates={ "job_model__name": "icontains", "name": "icontains", "user__username": "******", }, ) job_model = django_filters.ModelMultipleChoiceFilter( field_name="job_model__slug", queryset=Job.objects.all(), to_field_name="slug", label="Job (slug)", ) job_model_id = django_filters.ModelMultipleChoiceFilter( queryset=Job.objects.all(), label="Job (ID)", ) obj_type = ContentTypeFilter() created = django_filters.DateTimeFilter() completed = django_filters.DateTimeFilter() status = django_filters.MultipleChoiceFilter( choices=JobResultStatusChoices, null_value=None) class Meta: model = JobResult fields = [ "id", "created", "completed", "status", "user", "obj_type", "name" ]
class VMInterfaceFilterSet(BaseFilterSet, CustomFieldModelFilterSet): q = SearchFilter(filter_predicates={"name": "icontains"}) cluster_id = django_filters.ModelMultipleChoiceFilter( field_name="virtual_machine__cluster", queryset=Cluster.objects.all(), label="Cluster (ID)", ) cluster = django_filters.ModelMultipleChoiceFilter( field_name="virtual_machine__cluster__name", queryset=Cluster.objects.all(), to_field_name="name", label="Cluster", ) virtual_machine_id = django_filters.ModelMultipleChoiceFilter( field_name="virtual_machine", queryset=VirtualMachine.objects.all(), label="Virtual machine (ID)", ) virtual_machine = django_filters.ModelMultipleChoiceFilter( field_name="virtual_machine__name", queryset=VirtualMachine.objects.all(), to_field_name="name", label="Virtual machine", ) mac_address = MultiValueMACAddressFilter(label="MAC address", ) tag = TagFilter() class Meta: model = VMInterface fields = ["id", "name", "enabled", "mtu"]
class VLANFilterSet(NautobotFilterSet, TenancyFilterSet, StatusModelFilterSetMixin): q = SearchFilter( filter_predicates={ "name": "icontains", "description": "icontains", "vid": { "lookup_expr": "exact", "preprocessor": int, # vid expects an int }, }, ) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="site__region", lookup_expr="in", label="Region (ID)", ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="site__region", lookup_expr="in", to_field_name="slug", label="Region (slug)", ) site_id = django_filters.ModelMultipleChoiceFilter( queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site (slug)", ) group_id = django_filters.ModelMultipleChoiceFilter( queryset=VLANGroup.objects.all(), label="Group (ID)", ) group = django_filters.ModelMultipleChoiceFilter( field_name="group__slug", queryset=VLANGroup.objects.all(), to_field_name="slug", label="Group", ) role_id = django_filters.ModelMultipleChoiceFilter( queryset=Role.objects.all(), label="Role (ID)", ) role = django_filters.ModelMultipleChoiceFilter( field_name="role__slug", queryset=Role.objects.all(), to_field_name="slug", label="Role (slug)", ) tag = TagFilter() class Meta: model = VLAN fields = ["id", "vid", "name"]
class VirtualChassisFilterSet(NautobotFilterSet): q = SearchFilter( filter_predicates={ "name": "icontains", "members__name": "icontains", "domain": "icontains", }, ) master_id = django_filters.ModelMultipleChoiceFilter( queryset=Device.objects.all(), label="Master (ID)", ) master = django_filters.ModelMultipleChoiceFilter( field_name="master__name", queryset=Device.objects.all(), to_field_name="name", label="Master (name)", ) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="master__site__region", lookup_expr="in", label="Region (ID)", ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="master__site__region", lookup_expr="in", to_field_name="slug", label="Region (slug)", ) site_id = django_filters.ModelMultipleChoiceFilter( field_name="master__site", queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="master__site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site name (slug)", ) tenant_id = django_filters.ModelMultipleChoiceFilter( field_name="master__tenant", queryset=Tenant.objects.all(), label="Tenant (ID)", ) tenant = django_filters.ModelMultipleChoiceFilter( field_name="master__tenant__slug", queryset=Tenant.objects.all(), to_field_name="slug", label="Tenant (slug)", ) tag = TagFilter() class Meta: model = VirtualChassis fields = ["id", "domain", "name"]
class MySiteFilterSet(SiteFilterSet): """Overload the default just to illustrate that it's all we're testing for here.""" q = SearchFilter(filter_predicates={ "name": { "lookup_expr": "icontains", "preprocessor": str.strip } })
class MySiteFilterSet2(SiteFilterSet): """Overload the default just to illustrate that it's all we're testing for here.""" q = SearchFilter(filter_predicates={ "asn": { "lookup_expr": "exact", "preprocessor": dict } })
class GraphQLQueryFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "slug": "icontains", "query": "icontains", }, ) class Meta: model = GraphQLQuery fields = ["name", "slug"]
class JobLogEntryFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "grouping": "icontains", "message": "icontains", "log_level": "icontains", }, ) class Meta: model = JobLogEntry exclude = []
class ClusterFilterSet(NautobotFilterSet, TenancyFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "comments": "icontains", }, ) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="site__region", lookup_expr="in", label="Region (ID)", ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="site__region", lookup_expr="in", to_field_name="slug", label="Region (slug)", ) site_id = django_filters.ModelMultipleChoiceFilter( queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site (slug)", ) group_id = django_filters.ModelMultipleChoiceFilter( queryset=ClusterGroup.objects.all(), label="Parent group (ID)", ) group = django_filters.ModelMultipleChoiceFilter( field_name="group__slug", queryset=ClusterGroup.objects.all(), to_field_name="slug", label="Parent group (slug)", ) type_id = django_filters.ModelMultipleChoiceFilter( queryset=ClusterType.objects.all(), label="Cluster type (ID)", ) type = django_filters.ModelMultipleChoiceFilter( field_name="type__slug", queryset=ClusterType.objects.all(), to_field_name="slug", label="Cluster type (slug)", ) tag = TagFilter() class Meta: model = Cluster fields = ["id", "name"]
class TagFilterSet(NautobotFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "slug": "icontains", "content_types__model": "icontains", }, ) content_types = ContentTypeMultipleChoiceFilter( choices=TaggableClassesQuery().get_choices, ) class Meta: model = Tag fields = ["id", "name", "slug", "color", "content_types"]
class PowerFeedFilterSet( NautobotFilterSet, CableTerminationFilterSet, PathEndpointFilterSet, StatusModelFilterSetMixin ): q = SearchFilter(filter_predicates={"name": "icontains", "comments": "icontains"}) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="power_panel__site__region", lookup_expr="in", label="Region (ID)", ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="power_panel__site__region", lookup_expr="in", to_field_name="slug", label="Region (slug)", ) site_id = django_filters.ModelMultipleChoiceFilter( field_name="power_panel__site", queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="power_panel__site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site name (slug)", ) power_panel_id = django_filters.ModelMultipleChoiceFilter( queryset=PowerPanel.objects.all(), label="Power panel (ID)", ) rack_id = django_filters.ModelMultipleChoiceFilter( field_name="rack", queryset=Rack.objects.all(), label="Rack (ID)", ) tag = TagFilter() class Meta: model = PowerFeed fields = [ "id", "name", "status", "type", "supply", "phase", "voltage", "amperage", "max_utilization", ]
class RackReservationFilterSet(NautobotFilterSet, TenancyFilterSet): q = SearchFilter( filter_predicates={ "rack__name": "icontains", "rack__facility_id": "icontains", "user__username": "******", "description": "icontains", }, ) rack_id = django_filters.ModelMultipleChoiceFilter( queryset=Rack.objects.all(), label="Rack (ID)", ) site_id = django_filters.ModelMultipleChoiceFilter( field_name="rack__site", queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="rack__site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site (slug)", ) group_id = TreeNodeMultipleChoiceFilter( queryset=RackGroup.objects.all(), field_name="rack__group", lookup_expr="in", label="Rack group (ID)", ) group = TreeNodeMultipleChoiceFilter( queryset=RackGroup.objects.all(), field_name="rack__group", lookup_expr="in", to_field_name="slug", label="Rack group (slug)", ) user_id = django_filters.ModelMultipleChoiceFilter( queryset=get_user_model().objects.all(), label="User (ID)", ) user = django_filters.ModelMultipleChoiceFilter( field_name="user__username", queryset=get_user_model().objects.all(), to_field_name="username", label="User (name)", ) tag = TagFilter() class Meta: model = RackReservation fields = ["id", "created"]
class ExampleModelFilterSet(BaseFilterSet): """API filter for filtering example model objects.""" q = SearchFilter(filter_predicates={ "name": "icontains", "number": "icontains", }, ) class Meta: model = ExampleModel fields = [ "name", "number", ]
class CustomFieldFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "label": "icontains", "description": "icontains", }, ) content_types = ContentTypeMultipleChoiceFilter( choices=FeatureQuery("custom_fields").get_choices, ) class Meta: model = CustomField fields = [ "id", "content_types", "name", "required", "filter_logic", "weight" ]
class DynamicGroupFilterSet(NautobotFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "slug": "icontains", "description": "icontains", "content_type__app_label": "icontains", "content_type__model": "icontains", }, ) content_type = ContentTypeMultipleChoiceFilter( choices=FeatureQuery("dynamic_groups").get_choices, conjoined=False) class Meta: model = DynamicGroup fields = ("id", "name", "slug", "description")
class ConfigContextSchemaFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "description": "icontains", "data_schema": "icontains", }, ) owner_content_type = ContentTypeFilter() class Meta: model = ConfigContextSchema fields = [ "id", "name", "description", ]
class SecretsGroupFilterSet( BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet, ): """Filterset for the SecretsGroup model.""" q = SearchFilter(filter_predicates={ "name": "icontains", "slug": "icontains", }, ) class Meta: model = SecretsGroup fields = ("id", "name", "slug", "created", "last_updated")
class SiteFilterSet(NautobotFilterSet, TenancyFilterSet, StatusModelFilterSetMixin): q = SearchFilter( filter_predicates={ "name": "icontains", "facility": "icontains", "description": "icontains", "physical_address": "icontains", "shipping_address": "icontains", "contact_name": "icontains", "contact_phone": "icontains", "contact_email": "icontains", "comments": "icontains", "asn": { "lookup_expr": "exact", "preprocessor": int, # asn expects an int }, }, ) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="region", lookup_expr="in", label="Region (ID)", ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="region", lookup_expr="in", to_field_name="slug", label="Region (slug)", ) tag = TagFilter() class Meta: model = Site fields = [ "id", "name", "slug", "facility", "asn", "latitude", "longitude", "contact_name", "contact_phone", "contact_email", ]
class CustomFieldChoiceFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={"value": "icontains"}) field_id = django_filters.ModelMultipleChoiceFilter( field_name="field", queryset=CustomField.objects.all(), label="Field", ) field = django_filters.ModelMultipleChoiceFilter( field_name="field__name", queryset=CustomField.objects.all(), to_field_name="name", label="Field (name)", ) class Meta: model = CustomFieldChoice fields = ["id", "value", "weight"]
class ExportTemplateFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "owner_content_type__app_label": "icontains", "owner_content_type__model": "icontains", "content_type__app_label": "icontains", "content_type__model": "icontains", "description": "icontains", }, ) owner_content_type = ContentTypeFilter() class Meta: model = ExportTemplate fields = [ "id", "content_type", "owner_content_type", "owner_object_id", "name" ]
class SecretFilterSet( BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet, ): """Filterset for the Secret model.""" q = SearchFilter(filter_predicates={ "name": "icontains", "slug": "icontains", }, ) # TODO dynamic choices needed # provider = django_filters.MultipleChoiceFilter(choices=..., null_value=None) class Meta: model = Secret fields = ("id", "name", "slug", "provider", "created", "last_updated")
class DeviceComponentFilterSet(CustomFieldModelFilterSet): q = SearchFilter( filter_predicates={ "name": "icontains", "label": "icontains", "description": "icontains", }, ) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="device__site__region", lookup_expr="in", label="Region (ID)", ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name="device__site__region", lookup_expr="in", to_field_name="slug", label="Region (slug)", ) site_id = django_filters.ModelMultipleChoiceFilter( field_name="device__site", queryset=Site.objects.all(), label="Site (ID)", ) site = django_filters.ModelMultipleChoiceFilter( field_name="device__site__slug", queryset=Site.objects.all(), to_field_name="slug", label="Site name (slug)", ) device_id = django_filters.ModelMultipleChoiceFilter( queryset=Device.objects.all(), label="Device (ID)", ) device = django_filters.ModelMultipleChoiceFilter( field_name="device__name", queryset=Device.objects.all(), to_field_name="name", label="Device (name)", ) tag = TagFilter()
class ComputedFieldFilterSet(BaseFilterSet): q = SearchFilter(filter_predicates={ "name": "icontains", "target_url": "icontains", "text": "icontains", "content_type__app_label": "icontains", "content_type__model": "icontains", }, ) content_type = ContentTypeFilter() class Meta: model = ComputedField fields = ( "content_type", "slug", "template", "fallback_value", "weight", )