ipfabric_netbox 4.2.0b7__tar.gz → 4.2.0b8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ipfabric_netbox might be problematic. Click here for more details.
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/PKG-INFO +1 -1
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/__init__.py +1 -1
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/api/serializers.py +0 -1
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/api/views.py +1 -3
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/choices.py +0 -12
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/filtersets.py +2 -5
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/forms.py +3 -12
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/graphql/enums.py +0 -3
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/graphql/filters.py +157 -106
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/graphql/types.py +51 -30
- ipfabric_netbox-4.2.0b8/ipfabric_netbox/migrations/0018_remove_type_field.py +17 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/models.py +0 -6
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/tables.py +2 -2
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/tests/api/test_api.py +0 -12
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/tests/test_models.py +0 -1
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/pyproject.toml +1 -1
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/README.md +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/api/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/api/urls.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/data/transform_map.json +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/exceptions.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/graphql/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/graphql/schema.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/jobs.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0001_initial.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0002_ipfabricsnapshot_status.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0003_ipfabricsource_type_and_more.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0004_ipfabricsync_auto_merge.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0005_alter_ipfabricrelationshipfield_source_model_and_more.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0006_alter_ipfabrictransformmap_target_model.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0007_prepare_custom_fields.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0008_prepare_transform_maps.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0009_transformmap_changes_for_netbox_v4_2.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0010_remove_uuid_from_get_or_create.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0012_remove_status_field.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0014_ipfabrictransformmapgroup_ipfabrictransformmap_group.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0015_ipfabricingestionissue.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0016_tags_and_changelog_for_snapshots.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0017_ipfabricsync_update_custom_fields.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/navigation.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/signals.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/template_content.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/clone_form.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/json.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/logs_pending.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_relationship_map.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabric_table.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricingestion.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsnapshot.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_list.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_restore.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmapgroup.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_progress.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_statistics.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_status.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/job_logs.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/object_tabs.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templates/static/ipfabric_netbox/css/rack.css +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templatetags/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templatetags/ipfabric_netbox_helpers.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/tests/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/tests/api/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/urls.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/utilities/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/utilities/ipfutils.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/utilities/logging.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/utilities/nbutils.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/utilities/transform_map.py +0 -0
- {ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/views.py +0 -0
|
@@ -83,9 +83,7 @@ class IPFabricSnapshotViewSet(NetBoxReadOnlyModelViewSet):
|
|
|
83
83
|
with transaction.atomic():
|
|
84
84
|
IPFabricData.objects.bulk_create(
|
|
85
85
|
[
|
|
86
|
-
IPFabricData(
|
|
87
|
-
snapshot_data=snapshot, data=item["data"], type=item["type"]
|
|
88
|
-
)
|
|
86
|
+
IPFabricData(snapshot_data=snapshot, data=item["data"])
|
|
89
87
|
for item in request.data["data"]
|
|
90
88
|
],
|
|
91
89
|
batch_size=5000,
|
|
@@ -198,18 +198,6 @@ class IPFabricSnapshotStatusModelChoices(ChoiceSet):
|
|
|
198
198
|
]
|
|
199
199
|
|
|
200
200
|
|
|
201
|
-
class IPFabricSyncTypeChoices(ChoiceSet):
|
|
202
|
-
ALL = "all"
|
|
203
|
-
DCIM = "dcim"
|
|
204
|
-
IPAM = "ipam"
|
|
205
|
-
|
|
206
|
-
CHOICES = (
|
|
207
|
-
(ALL, _("All"), "gray"),
|
|
208
|
-
(DCIM, _("DCIM"), "blue"),
|
|
209
|
-
(IPAM, _("IPAM"), "blue"),
|
|
210
|
-
)
|
|
211
|
-
|
|
212
|
-
|
|
213
201
|
class IPFabricSourceTypeChoices(ChoiceSet):
|
|
214
202
|
LOCAL = "local"
|
|
215
203
|
REMOTE = "remote"
|
|
@@ -74,14 +74,12 @@ class IPFabricDataFilterSet(BaseFilterSet):
|
|
|
74
74
|
|
|
75
75
|
class Meta:
|
|
76
76
|
model = IPFabricData
|
|
77
|
-
fields = ["snapshot_data"
|
|
77
|
+
fields = ["snapshot_data"]
|
|
78
78
|
|
|
79
79
|
def search(self, queryset, name, value):
|
|
80
80
|
if not value.strip():
|
|
81
81
|
return queryset
|
|
82
|
-
return queryset.filter(
|
|
83
|
-
Q(snapshot_data__icontains=value) | Q(type__icontains=value)
|
|
84
|
-
)
|
|
82
|
+
return queryset.filter(Q(snapshot_data__icontains=value))
|
|
85
83
|
|
|
86
84
|
|
|
87
85
|
class IPFabricSnapshotFilterSet(ChangeLoggedModelFilterSet):
|
|
@@ -245,7 +243,6 @@ class IPFabricSyncFilterSet(ChangeLoggedModelFilterSet):
|
|
|
245
243
|
"name",
|
|
246
244
|
"snapshot_data",
|
|
247
245
|
"snapshot_data_id",
|
|
248
|
-
"type",
|
|
249
246
|
"status",
|
|
250
247
|
"auto_merge",
|
|
251
248
|
"last_synced",
|
|
@@ -488,6 +488,7 @@ class IPFabricSyncForm(NetBoxModelForm):
|
|
|
488
488
|
sites = forms.MultipleChoiceField(
|
|
489
489
|
required=False,
|
|
490
490
|
label=_("Sites"),
|
|
491
|
+
help_text=_("Defaults to all sites if none selected."),
|
|
491
492
|
widget=APISelectMultiple(
|
|
492
493
|
api_url="/api/plugins/ipfabric/snapshot/{{snapshot_data}}/sites/",
|
|
493
494
|
),
|
|
@@ -527,15 +528,11 @@ class IPFabricSyncForm(NetBoxModelForm):
|
|
|
527
528
|
"auto_merge",
|
|
528
529
|
"update_custom_fields",
|
|
529
530
|
"sites",
|
|
530
|
-
"type",
|
|
531
531
|
"tags",
|
|
532
532
|
"scheduled",
|
|
533
533
|
"interval",
|
|
534
534
|
)
|
|
535
|
-
widgets = {
|
|
536
|
-
"source": HTMXSelect(),
|
|
537
|
-
"type": HTMXSelect(),
|
|
538
|
-
}
|
|
535
|
+
widgets = {"source": HTMXSelect()}
|
|
539
536
|
|
|
540
537
|
@property
|
|
541
538
|
def fieldsets(self):
|
|
@@ -550,7 +547,6 @@ class IPFabricSyncForm(NetBoxModelForm):
|
|
|
550
547
|
fieldsets.append(
|
|
551
548
|
FieldSet("snapshot_data", name=_("Snapshot Information")),
|
|
552
549
|
)
|
|
553
|
-
fieldsets.append(FieldSet("type", name=_("Ingestion Type")))
|
|
554
550
|
if self.backend_fields:
|
|
555
551
|
for k, v in self.backend_fields.items():
|
|
556
552
|
fieldsets.append(FieldSet(*v, name=f"{k.upper()} Parameters"))
|
|
@@ -594,12 +590,7 @@ class IPFabricSyncForm(NetBoxModelForm):
|
|
|
594
590
|
self.initial["sites"] = self.instance.parameters.get("sites", [])
|
|
595
591
|
self.initial["groups"] = self.instance.parameters.get("groups", [])
|
|
596
592
|
|
|
597
|
-
|
|
598
|
-
backend = {}
|
|
599
|
-
if backend_type == "all":
|
|
600
|
-
backend = sync_parameters
|
|
601
|
-
else:
|
|
602
|
-
backend[backend_type] = sync_parameters.get(backend_type)
|
|
593
|
+
backend = sync_parameters
|
|
603
594
|
|
|
604
595
|
now = local_now().strftime("%Y-%m-%d %H:%M:%S")
|
|
605
596
|
self.fields["scheduled"].help_text += f" (current time: <strong>{now}</strong>)"
|
|
@@ -6,7 +6,6 @@ from netbox_branching.choices import BranchStatusChoices
|
|
|
6
6
|
from ipfabric_netbox.choices import IPFabricRawDataTypeChoices
|
|
7
7
|
from ipfabric_netbox.choices import IPFabricSnapshotStatusModelChoices
|
|
8
8
|
from ipfabric_netbox.choices import IPFabricSourceTypeChoices
|
|
9
|
-
from ipfabric_netbox.choices import IPFabricSyncTypeChoices
|
|
10
9
|
from ipfabric_netbox.choices import IPFabricTransformMapSourceModelChoices
|
|
11
10
|
|
|
12
11
|
__all__ = (
|
|
@@ -14,7 +13,6 @@ __all__ = (
|
|
|
14
13
|
"IPFabricTransformMapSourceModelEnum",
|
|
15
14
|
"IPFabricSourceTypeEnum",
|
|
16
15
|
"IPFabricSnapshotStatusModelEnum",
|
|
17
|
-
"IPFabricSyncTypeEnum",
|
|
18
16
|
"IPFabricRawDataTypeEnum",
|
|
19
17
|
"BranchStatusEnum",
|
|
20
18
|
"JobStatusEnum",
|
|
@@ -30,7 +28,6 @@ IPFabricSourceTypeEnum = strawberry.enum(
|
|
|
30
28
|
IPFabricSnapshotStatusModelEnum = strawberry.enum(
|
|
31
29
|
IPFabricSnapshotStatusModelChoices.as_enum(prefix="type")
|
|
32
30
|
)
|
|
33
|
-
IPFabricSyncTypeEnum = strawberry.enum(IPFabricSyncTypeChoices.as_enum(prefix="type"))
|
|
34
31
|
IPFabricRawDataTypeEnum = strawberry.enum(
|
|
35
32
|
IPFabricRawDataTypeChoices.as_enum(prefix="type")
|
|
36
33
|
)
|
|
@@ -25,7 +25,6 @@ from ipfabric_netbox.graphql.enums import DataSourceStatusEnum
|
|
|
25
25
|
from ipfabric_netbox.graphql.enums import IPFabricRawDataTypeEnum
|
|
26
26
|
from ipfabric_netbox.graphql.enums import IPFabricSnapshotStatusModelEnum
|
|
27
27
|
from ipfabric_netbox.graphql.enums import IPFabricSourceTypeEnum
|
|
28
|
-
from ipfabric_netbox.graphql.enums import IPFabricSyncTypeEnum
|
|
29
28
|
from ipfabric_netbox.graphql.enums import IPFabricTransformMapSourceModelEnum
|
|
30
29
|
from ipfabric_netbox.graphql.enums import JobStatusEnum
|
|
31
30
|
|
|
@@ -56,46 +55,62 @@ class IPFabricTransformMapGroupFilter(NetBoxModelFilterMixin):
|
|
|
56
55
|
class IPFabricTransformMapFilter(NetBoxModelFilterMixin):
|
|
57
56
|
id: ID | None = strawberry_django.filter_field()
|
|
58
57
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
59
|
-
source_model:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
source_model: (
|
|
59
|
+
Annotated[
|
|
60
|
+
"IPFabricTransformMapSourceModelEnum",
|
|
61
|
+
strawberry.lazy("ipfabric_netbox.graphql.enums"),
|
|
62
|
+
]
|
|
63
|
+
| None
|
|
64
|
+
) = strawberry_django.filter_field()
|
|
65
|
+
target_model: (
|
|
66
|
+
Annotated["ContentTypeFilter", strawberry.lazy("core.graphql.filters")] | None
|
|
67
|
+
) = strawberry_django.filter_field()
|
|
68
|
+
group: (
|
|
69
|
+
Annotated[
|
|
70
|
+
"IPFabricTransformMapGroupFilter",
|
|
71
|
+
strawberry.lazy("ipfabric_netbox.graphql.filters"),
|
|
72
|
+
]
|
|
73
|
+
| None
|
|
74
|
+
) = strawberry_django.filter_field()
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
@strawberry_django.filter(models.IPFabricTransformField, lookups=True)
|
|
73
78
|
class IPFabricTransformFieldFilter(BaseFilterMixin):
|
|
74
79
|
id: ID | None = strawberry_django.filter_field()
|
|
75
|
-
transform_map:
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
transform_map: (
|
|
81
|
+
Annotated[
|
|
82
|
+
"IPFabricTransformMapFilter",
|
|
83
|
+
strawberry.lazy("ipfabric_netbox.graphql.filters"),
|
|
84
|
+
]
|
|
85
|
+
| None
|
|
86
|
+
) = strawberry_django.filter_field()
|
|
78
87
|
source_field: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
79
88
|
target_field: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
80
|
-
coalesce:
|
|
81
|
-
"IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")
|
|
82
|
-
|
|
89
|
+
coalesce: (
|
|
90
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
91
|
+
| None
|
|
92
|
+
) = strawberry_django.filter_field()
|
|
83
93
|
template: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
84
94
|
|
|
85
95
|
|
|
86
96
|
@strawberry_django.filter(models.IPFabricRelationshipField, lookups=True)
|
|
87
97
|
class IPFabricRelationshipFieldFilter(BaseFilterMixin):
|
|
88
98
|
id: ID | None = strawberry_django.filter_field()
|
|
89
|
-
transform_map:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
99
|
+
transform_map: (
|
|
100
|
+
Annotated[
|
|
101
|
+
"IPFabricTransformMapFilter",
|
|
102
|
+
strawberry.lazy("ipfabric_netbox.graphql.filters"),
|
|
103
|
+
]
|
|
104
|
+
| None
|
|
105
|
+
) = strawberry_django.filter_field()
|
|
106
|
+
source_model: (
|
|
107
|
+
Annotated["ContentTypeFilter", strawberry.lazy("core.graphql.filters")] | None
|
|
108
|
+
) = strawberry_django.filter_field()
|
|
95
109
|
target_field: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
96
|
-
coalesce:
|
|
97
|
-
"IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")
|
|
98
|
-
|
|
110
|
+
coalesce: (
|
|
111
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
112
|
+
| None
|
|
113
|
+
) = strawberry_django.filter_field()
|
|
99
114
|
template: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
100
115
|
|
|
101
116
|
|
|
@@ -103,16 +118,22 @@ class IPFabricRelationshipFieldFilter(BaseFilterMixin):
|
|
|
103
118
|
class IPFabricSourceFilter(PrimaryModelFilterMixin):
|
|
104
119
|
id: ID | None = strawberry_django.filter_field()
|
|
105
120
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
106
|
-
type:
|
|
107
|
-
|
|
108
|
-
|
|
121
|
+
type: (
|
|
122
|
+
Annotated[
|
|
123
|
+
"IPFabricSourceTypeEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")
|
|
124
|
+
]
|
|
125
|
+
| None
|
|
126
|
+
) = strawberry_django.filter_field()
|
|
109
127
|
url: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
110
|
-
status:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
128
|
+
status: (
|
|
129
|
+
Annotated[
|
|
130
|
+
"DataSourceStatusEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")
|
|
131
|
+
]
|
|
132
|
+
| None
|
|
133
|
+
) = strawberry_django.filter_field()
|
|
134
|
+
parameters: (
|
|
135
|
+
Annotated["JSONFilter", strawberry.lazy("netbox.graphql.filter_lookups")] | None
|
|
136
|
+
) = strawberry_django.filter_field()
|
|
116
137
|
last_synced: DatetimeFilterLookup[
|
|
117
138
|
datetime
|
|
118
139
|
] | None = strawberry_django.filter_field()
|
|
@@ -125,45 +146,55 @@ class IPFabricSnapshotFilter(TagsFilterMixin, ChangeLogFilterMixin, BaseFilterMi
|
|
|
125
146
|
last_updated: DatetimeFilterLookup[
|
|
126
147
|
datetime
|
|
127
148
|
] | None = strawberry_django.filter_field()
|
|
128
|
-
source:
|
|
129
|
-
|
|
130
|
-
|
|
149
|
+
source: (
|
|
150
|
+
Annotated[
|
|
151
|
+
"IPFabricSourceFilter", strawberry.lazy("ipfabric_netbox.graphql.filters")
|
|
152
|
+
]
|
|
153
|
+
| None
|
|
154
|
+
) = strawberry_django.filter_field()
|
|
131
155
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
132
156
|
snapshot_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
133
|
-
data:
|
|
134
|
-
"JSONFilter", strawberry.lazy("netbox.graphql.filter_lookups")
|
|
135
|
-
|
|
157
|
+
data: (
|
|
158
|
+
Annotated["JSONFilter", strawberry.lazy("netbox.graphql.filter_lookups")] | None
|
|
159
|
+
) = strawberry_django.filter_field()
|
|
136
160
|
date: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
137
|
-
status:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
161
|
+
status: (
|
|
162
|
+
Annotated[
|
|
163
|
+
"IPFabricSnapshotStatusModelEnum",
|
|
164
|
+
strawberry.lazy("ipfabric_netbox.graphql.enums"),
|
|
165
|
+
]
|
|
166
|
+
| None
|
|
167
|
+
) = strawberry_django.filter_field()
|
|
141
168
|
|
|
142
169
|
|
|
143
170
|
@strawberry_django.filter(models.IPFabricSync, lookups=True)
|
|
144
171
|
class IPFabricSyncFilter(TagsFilterMixin, ChangeLogFilterMixin, BaseFilterMixin):
|
|
145
172
|
id: ID | None = strawberry_django.filter_field()
|
|
146
173
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
147
|
-
snapshot_data:
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
status:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
174
|
+
snapshot_data: (
|
|
175
|
+
Annotated[
|
|
176
|
+
"IPFabricSnapshotFilter", strawberry.lazy("ipfabric_netbox.graphql.filters")
|
|
177
|
+
]
|
|
178
|
+
| None
|
|
179
|
+
) = strawberry_django.filter_field()
|
|
180
|
+
status: (
|
|
181
|
+
Annotated[
|
|
182
|
+
"DataSourceStatusEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")
|
|
183
|
+
]
|
|
184
|
+
| None
|
|
185
|
+
) = strawberry_django.filter_field()
|
|
186
|
+
parameters: (
|
|
187
|
+
Annotated["JSONFilter", strawberry.lazy("netbox.graphql.filter_lookups")] | None
|
|
188
|
+
) = strawberry_django.filter_field()
|
|
159
189
|
auto_merge: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
160
190
|
last_synced: DatetimeFilterLookup[
|
|
161
191
|
datetime
|
|
162
192
|
] | None = strawberry_django.filter_field()
|
|
163
193
|
scheduled: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
164
|
-
interval:
|
|
165
|
-
"IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")
|
|
166
|
-
|
|
194
|
+
interval: (
|
|
195
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
196
|
+
| None
|
|
197
|
+
) = strawberry_django.filter_field()
|
|
167
198
|
user: Annotated[
|
|
168
199
|
"UserFilter", strawberry.lazy("users.graphql.filters")
|
|
169
200
|
] | None = strawberry_django.filter_field()
|
|
@@ -172,23 +203,32 @@ class IPFabricSyncFilter(TagsFilterMixin, ChangeLogFilterMixin, BaseFilterMixin)
|
|
|
172
203
|
@strawberry_django.filter(models.IPFabricIngestion, lookups=True)
|
|
173
204
|
class IPFabricIngestionFilter(BaseFilterMixin):
|
|
174
205
|
id: ID | None = strawberry_django.filter_field()
|
|
175
|
-
sync:
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
"
|
|
183
|
-
|
|
206
|
+
sync: (
|
|
207
|
+
Annotated[
|
|
208
|
+
"IPFabricSyncFilter", strawberry.lazy("ipfabric_netbox.graphql.filters")
|
|
209
|
+
]
|
|
210
|
+
| None
|
|
211
|
+
) = strawberry_django.filter_field()
|
|
212
|
+
job: (
|
|
213
|
+
Annotated["JobFilter", strawberry.lazy("ipfabric_netbox.graphql.filters")]
|
|
214
|
+
| None
|
|
215
|
+
) = strawberry_django.filter_field()
|
|
216
|
+
branch: (
|
|
217
|
+
Annotated["BranchFilter", strawberry.lazy("ipfabric_netbox.graphql.filters")]
|
|
218
|
+
| None
|
|
219
|
+
) = strawberry_django.filter_field()
|
|
184
220
|
|
|
185
221
|
|
|
186
222
|
@strawberry_django.filter(models.IPFabricIngestionIssue, lookups=True)
|
|
187
223
|
class IPFabricIngestionIssueFilter(BaseFilterMixin):
|
|
188
224
|
id: ID | None = strawberry_django.filter_field()
|
|
189
|
-
ingestion:
|
|
190
|
-
|
|
191
|
-
|
|
225
|
+
ingestion: (
|
|
226
|
+
Annotated[
|
|
227
|
+
"IPFabricIngestionFilter",
|
|
228
|
+
strawberry.lazy("ipfabric_netbox.graphql.filters"),
|
|
229
|
+
]
|
|
230
|
+
| None
|
|
231
|
+
) = strawberry_django.filter_field()
|
|
192
232
|
timestamp: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
193
233
|
model: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
194
234
|
message: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
@@ -201,15 +241,21 @@ class IPFabricIngestionIssueFilter(BaseFilterMixin):
|
|
|
201
241
|
@strawberry_django.filter(models.IPFabricData, lookups=True)
|
|
202
242
|
class IPFabricDataFilter(BaseFilterMixin):
|
|
203
243
|
id: ID | None = strawberry_django.filter_field()
|
|
204
|
-
snapshot_data:
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
"
|
|
212
|
-
|
|
244
|
+
snapshot_data: (
|
|
245
|
+
Annotated[
|
|
246
|
+
"IPFabricSnapshotFilter", strawberry.lazy("ipfabric_netbox.graphql.filters")
|
|
247
|
+
]
|
|
248
|
+
| None
|
|
249
|
+
) = strawberry_django.filter_field()
|
|
250
|
+
data: (
|
|
251
|
+
Annotated["JSONFilter", strawberry.lazy("netbox.graphql.filter_lookups")] | None
|
|
252
|
+
) = strawberry_django.filter_field()
|
|
253
|
+
type: (
|
|
254
|
+
Annotated[
|
|
255
|
+
"IPFabricRawDataTypeEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")
|
|
256
|
+
]
|
|
257
|
+
| None
|
|
258
|
+
) = strawberry_django.filter_field()
|
|
213
259
|
|
|
214
260
|
|
|
215
261
|
# These filters are not defined in the libs, so need to define them here
|
|
@@ -221,46 +267,51 @@ class BranchFilter(PrimaryModelFilterMixin):
|
|
|
221
267
|
"UserFilter", strawberry.lazy("users.graphql.filters")
|
|
222
268
|
] | None = strawberry_django.filter_field()
|
|
223
269
|
schema_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
224
|
-
status:
|
|
225
|
-
"BranchStatusEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
270
|
+
status: (
|
|
271
|
+
Annotated["BranchStatusEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")]
|
|
272
|
+
| None
|
|
273
|
+
) = strawberry_django.filter_field()
|
|
274
|
+
applied_migrations: (
|
|
275
|
+
Annotated["StringArrayLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
276
|
+
| None
|
|
277
|
+
) = strawberry_django.filter_field()
|
|
230
278
|
last_sync: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
231
279
|
merged_time: DatetimeFilterLookup[
|
|
232
280
|
datetime
|
|
233
281
|
] | None = strawberry_django.filter_field()
|
|
234
|
-
merged_by:
|
|
235
|
-
"UserFilter", strawberry.lazy("users.graphql.filters")
|
|
236
|
-
|
|
282
|
+
merged_by: (
|
|
283
|
+
Annotated["UserFilter", strawberry.lazy("users.graphql.filters")] | None
|
|
284
|
+
) = strawberry_django.filter_field()
|
|
237
285
|
|
|
238
286
|
|
|
239
287
|
@strawberry_django.filter(Job, lookups=True)
|
|
240
288
|
class JobFilter(BaseFilterMixin):
|
|
241
289
|
id: ID | None = strawberry_django.filter_field()
|
|
242
|
-
object_type:
|
|
243
|
-
"ContentTypeFilter", strawberry.lazy("core.graphql.filters")
|
|
244
|
-
|
|
245
|
-
object_id:
|
|
246
|
-
"IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")
|
|
247
|
-
|
|
290
|
+
object_type: (
|
|
291
|
+
Annotated["ContentTypeFilter", strawberry.lazy("core.graphql.filters")] | None
|
|
292
|
+
) = strawberry_django.filter_field()
|
|
293
|
+
object_id: (
|
|
294
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
295
|
+
| None
|
|
296
|
+
) = strawberry_django.filter_field()
|
|
248
297
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
249
298
|
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
250
299
|
scheduled: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
251
|
-
interval:
|
|
252
|
-
"IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")
|
|
253
|
-
|
|
300
|
+
interval: (
|
|
301
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
302
|
+
| None
|
|
303
|
+
) = strawberry_django.filter_field()
|
|
254
304
|
started: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
255
305
|
completed: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
256
306
|
user: Annotated[
|
|
257
307
|
"UserFilter", strawberry.lazy("users.graphql.filters")
|
|
258
308
|
] | None = strawberry_django.filter_field()
|
|
259
|
-
status:
|
|
260
|
-
"JobStatusEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
309
|
+
status: (
|
|
310
|
+
Annotated["JobStatusEnum", strawberry.lazy("ipfabric_netbox.graphql.enums")]
|
|
311
|
+
| None
|
|
312
|
+
) = strawberry_django.filter_field()
|
|
313
|
+
data: (
|
|
314
|
+
Annotated["JSONFilter", strawberry.lazy("netbox.graphql.filter_lookups")] | None
|
|
315
|
+
) = strawberry_django.filter_field()
|
|
265
316
|
error: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
266
317
|
job_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
@@ -58,14 +58,20 @@ class IPFabricTransformMapGroupType(NetBoxObjectType):
|
|
|
58
58
|
class IPFabricTransformMapType(NetBoxObjectType):
|
|
59
59
|
name: str
|
|
60
60
|
source_model: str
|
|
61
|
-
target_model:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
target_model: (
|
|
62
|
+
Annotated[
|
|
63
|
+
"ContentTypeType",
|
|
64
|
+
strawberry.lazy("netbox.graphql.types"),
|
|
65
|
+
]
|
|
66
|
+
| None
|
|
67
|
+
)
|
|
68
|
+
group: (
|
|
69
|
+
Annotated[
|
|
70
|
+
"IPFabricTransformMapGroupType",
|
|
71
|
+
strawberry.lazy("ipfabric_netbox.graphql.types"),
|
|
72
|
+
]
|
|
73
|
+
| None
|
|
74
|
+
)
|
|
69
75
|
|
|
70
76
|
|
|
71
77
|
@strawberry_django.type(
|
|
@@ -74,9 +80,12 @@ class IPFabricTransformMapType(NetBoxObjectType):
|
|
|
74
80
|
filters=IPFabricTransformFieldFilter,
|
|
75
81
|
)
|
|
76
82
|
class IPFabricTransformFieldType(BaseObjectType):
|
|
77
|
-
transform_map:
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
transform_map: (
|
|
84
|
+
Annotated[
|
|
85
|
+
"IPFabricTransformMapType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
86
|
+
]
|
|
87
|
+
| None
|
|
88
|
+
)
|
|
80
89
|
source_field: str
|
|
81
90
|
target_field: str
|
|
82
91
|
coalesce: bool
|
|
@@ -89,9 +98,12 @@ class IPFabricTransformFieldType(BaseObjectType):
|
|
|
89
98
|
filters=IPFabricRelationshipFieldFilter,
|
|
90
99
|
)
|
|
91
100
|
class IPFabricRelationshipFieldType(BaseObjectType):
|
|
92
|
-
transform_map:
|
|
93
|
-
|
|
94
|
-
|
|
101
|
+
transform_map: (
|
|
102
|
+
Annotated[
|
|
103
|
+
"IPFabricTransformMapType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
104
|
+
]
|
|
105
|
+
| None
|
|
106
|
+
)
|
|
95
107
|
source_model: Annotated["ContentTypeType", strawberry.lazy("netbox.graphql.types")]
|
|
96
108
|
target_field: str
|
|
97
109
|
coalesce: bool
|
|
@@ -114,9 +126,12 @@ class IPFabricSourceType(OrganizationalObjectType):
|
|
|
114
126
|
models.IPFabricSnapshot, fields="__all__", filters=IPFabricSnapshotFilter
|
|
115
127
|
)
|
|
116
128
|
class IPFabricSnapshotType(ChangelogMixin, TagsMixin, BaseObjectType):
|
|
117
|
-
source:
|
|
118
|
-
|
|
119
|
-
|
|
129
|
+
source: (
|
|
130
|
+
Annotated[
|
|
131
|
+
"IPFabricSourceType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
132
|
+
]
|
|
133
|
+
| None
|
|
134
|
+
)
|
|
120
135
|
name: str
|
|
121
136
|
snapshot_id: str
|
|
122
137
|
data: JSON
|
|
@@ -128,10 +143,12 @@ class IPFabricSnapshotType(ChangelogMixin, TagsMixin, BaseObjectType):
|
|
|
128
143
|
)
|
|
129
144
|
class IPFabricSyncType(ChangelogMixin, TagsMixin, BaseObjectType):
|
|
130
145
|
name: str
|
|
131
|
-
snapshot_data:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
146
|
+
snapshot_data: (
|
|
147
|
+
Annotated[
|
|
148
|
+
"IPFabricSnapshotType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
149
|
+
]
|
|
150
|
+
| None
|
|
151
|
+
)
|
|
135
152
|
status: str
|
|
136
153
|
parameters: JSON
|
|
137
154
|
auto_merge: bool
|
|
@@ -159,13 +176,14 @@ class JobType(BaseObjectType):
|
|
|
159
176
|
models.IPFabricIngestion, fields="__all__", filters=IPFabricIngestionFilter
|
|
160
177
|
)
|
|
161
178
|
class IPFabricIngestionType(BaseObjectType):
|
|
162
|
-
sync:
|
|
163
|
-
"IPFabricSyncType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
164
|
-
|
|
179
|
+
sync: (
|
|
180
|
+
Annotated["IPFabricSyncType", strawberry.lazy("ipfabric_netbox.graphql.types")]
|
|
181
|
+
| None
|
|
182
|
+
)
|
|
165
183
|
job: Annotated["JobType", strawberry.lazy("ipfabric_netbox.graphql.types")] | None
|
|
166
|
-
branch:
|
|
167
|
-
"BranchType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
168
|
-
|
|
184
|
+
branch: (
|
|
185
|
+
Annotated["BranchType", strawberry.lazy("ipfabric_netbox.graphql.types")] | None
|
|
186
|
+
)
|
|
169
187
|
|
|
170
188
|
|
|
171
189
|
@strawberry_django.type(
|
|
@@ -174,9 +192,12 @@ class IPFabricIngestionType(BaseObjectType):
|
|
|
174
192
|
filters=IPFabricIngestionIssueFilter,
|
|
175
193
|
)
|
|
176
194
|
class IPFabricIngestionIssueType(BaseObjectType):
|
|
177
|
-
ingestion:
|
|
178
|
-
|
|
179
|
-
|
|
195
|
+
ingestion: (
|
|
196
|
+
Annotated[
|
|
197
|
+
"IPFabricIngestionType", strawberry.lazy("ipfabric_netbox.graphql.types")
|
|
198
|
+
]
|
|
199
|
+
| None
|
|
200
|
+
)
|
|
180
201
|
timestamp: str
|
|
181
202
|
model: str | None
|
|
182
203
|
message: str
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Generated by Django 5.2 on 2025-08-25 12:53
|
|
2
|
+
from django.db import migrations
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Migration(migrations.Migration):
|
|
6
|
+
dependencies = [
|
|
7
|
+
(
|
|
8
|
+
"ipfabric_netbox",
|
|
9
|
+
"0017_ipfabricsync_update_custom_fields",
|
|
10
|
+
),
|
|
11
|
+
]
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.RemoveField(
|
|
14
|
+
model_name="ipfabricsync",
|
|
15
|
+
name="type",
|
|
16
|
+
),
|
|
17
|
+
]
|
|
@@ -44,7 +44,6 @@ from utilities.request import NetBoxFakeRequest
|
|
|
44
44
|
from .choices import IPFabricRawDataTypeChoices
|
|
45
45
|
from .choices import IPFabricSnapshotStatusModelChoices
|
|
46
46
|
from .choices import IPFabricSourceTypeChoices
|
|
47
|
-
from .choices import IPFabricSyncTypeChoices
|
|
48
47
|
from .choices import IPFabricTransformMapSourceModelChoices
|
|
49
48
|
from .choices import required_transform_map_contenttypes
|
|
50
49
|
from .signals import clear_other_primary_ip
|
|
@@ -598,11 +597,6 @@ class IPFabricSync(IPFabricClient, JobsMixin, TagsMixin, ChangeLoggedModel):
|
|
|
598
597
|
on_delete=models.CASCADE,
|
|
599
598
|
related_name="snapshots",
|
|
600
599
|
)
|
|
601
|
-
type = models.CharField(
|
|
602
|
-
max_length=50,
|
|
603
|
-
choices=IPFabricSyncTypeChoices,
|
|
604
|
-
default=IPFabricSyncTypeChoices.DCIM,
|
|
605
|
-
)
|
|
606
600
|
status = models.CharField(
|
|
607
601
|
max_length=50,
|
|
608
602
|
choices=DataSourceStatusChoices,
|
|
@@ -262,5 +262,5 @@ class IPFabricDataTable(NetBoxTable):
|
|
|
262
262
|
|
|
263
263
|
class Meta(NetBoxTable.Meta):
|
|
264
264
|
model = IPFabricData
|
|
265
|
-
fields = ("snapshot_data", "
|
|
266
|
-
default_columns = ("snapshot_data", "
|
|
265
|
+
fields = ("snapshot_data", "JSON")
|
|
266
|
+
default_columns = ("snapshot_data", "JSON")
|
|
@@ -532,18 +532,15 @@ class IPFabricSyncTest(APIViewTestCases.APIViewTestCase):
|
|
|
532
532
|
create_data = [
|
|
533
533
|
{
|
|
534
534
|
"name": "Test Sync A",
|
|
535
|
-
"type": "dcim",
|
|
536
535
|
"parameters": {"site": True, "device": False},
|
|
537
536
|
},
|
|
538
537
|
{
|
|
539
538
|
"name": "Test Sync B",
|
|
540
|
-
"type": "ipam",
|
|
541
539
|
"parameters": {"ipaddress": True, "prefix": True},
|
|
542
540
|
"auto_merge": True,
|
|
543
541
|
},
|
|
544
542
|
{
|
|
545
543
|
"name": "Test Sync C",
|
|
546
|
-
"type": "dcim",
|
|
547
544
|
"parameters": {"device": True, "interface": True},
|
|
548
545
|
"interval": 60,
|
|
549
546
|
},
|
|
@@ -617,20 +614,17 @@ class IPFabricSyncTest(APIViewTestCases.APIViewTestCase):
|
|
|
617
614
|
IPFabricSync.objects.create(
|
|
618
615
|
name="Sync Test D",
|
|
619
616
|
snapshot_data=snapshots[0],
|
|
620
|
-
type="dcim",
|
|
621
617
|
parameters={"site": True, "device": False},
|
|
622
618
|
)
|
|
623
619
|
IPFabricSync.objects.create(
|
|
624
620
|
name="Sync Test E",
|
|
625
621
|
snapshot_data=snapshots[1],
|
|
626
|
-
type="dcim",
|
|
627
622
|
parameters={"device": True, "interface": True},
|
|
628
623
|
auto_merge=True,
|
|
629
624
|
)
|
|
630
625
|
IPFabricSync.objects.create(
|
|
631
626
|
name="Sync Test F",
|
|
632
627
|
snapshot_data=snapshots[2],
|
|
633
|
-
type="ipam",
|
|
634
628
|
parameters={"ipaddress": True, "prefix": False},
|
|
635
629
|
interval=30,
|
|
636
630
|
)
|
|
@@ -724,19 +718,16 @@ class IPFabricIngestionTest(
|
|
|
724
718
|
IPFabricSync.objects.create(
|
|
725
719
|
name="Ingestion Test Sync A",
|
|
726
720
|
snapshot_data=snapshots[0],
|
|
727
|
-
type="dcim",
|
|
728
721
|
parameters={"site": True, "device": False},
|
|
729
722
|
),
|
|
730
723
|
IPFabricSync.objects.create(
|
|
731
724
|
name="Ingestion Test Sync B",
|
|
732
725
|
snapshot_data=snapshots[1],
|
|
733
|
-
type="dcim",
|
|
734
726
|
parameters={"device": True, "interface": True},
|
|
735
727
|
),
|
|
736
728
|
IPFabricSync.objects.create(
|
|
737
729
|
name="Ingestion Test Sync C",
|
|
738
730
|
snapshot_data=snapshots[2],
|
|
739
|
-
type="ipam",
|
|
740
731
|
parameters={"ipaddress": True, "prefix": False},
|
|
741
732
|
),
|
|
742
733
|
)
|
|
@@ -828,19 +819,16 @@ class IPFabricIngestionIssueTest(
|
|
|
828
819
|
IPFabricSync.objects.create(
|
|
829
820
|
name="Issue Test Sync A",
|
|
830
821
|
snapshot_data=snapshots[0],
|
|
831
|
-
type="dcim",
|
|
832
822
|
parameters={"site": True, "device": False},
|
|
833
823
|
),
|
|
834
824
|
IPFabricSync.objects.create(
|
|
835
825
|
name="Issue Test Sync B",
|
|
836
826
|
snapshot_data=snapshots[1],
|
|
837
|
-
type="dcim",
|
|
838
827
|
parameters={"device": True, "interface": True},
|
|
839
828
|
),
|
|
840
829
|
IPFabricSync.objects.create(
|
|
841
830
|
name="Issue Test Sync C",
|
|
842
831
|
snapshot_data=snapshots[2],
|
|
843
|
-
type="ipam",
|
|
844
832
|
parameters={"ipaddress": True, "prefix": False},
|
|
845
833
|
),
|
|
846
834
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/templatetags/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipfabric_netbox-4.2.0b7 → ipfabric_netbox-4.2.0b8}/ipfabric_netbox/utilities/transform_map.py
RENAMED
|
File without changes
|
|
File without changes
|