ipfabric_netbox 4.2.0b9__tar.gz → 4.2.1b1__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.0b9 → ipfabric_netbox-4.2.1b1}/PKG-INFO +1 -1
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/__init__.py +1 -1
- ipfabric_netbox-4.2.1b1/ipfabric_netbox/template_content.py +30 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html +10 -3
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/pyproject.toml +1 -1
- ipfabric_netbox-4.2.0b9/ipfabric_netbox/template_content.py +0 -13
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/README.md +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/serializers.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/urls.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/views.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/choices.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/data/transform_map.json +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/exceptions.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/filtersets.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/forms.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/enums.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/filters.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/schema.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/types.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/jobs.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0001_initial.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0002_ipfabricsnapshot_status.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0003_ipfabricsource_type_and_more.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0004_ipfabricsync_auto_merge.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0005_alter_ipfabricrelationshipfield_source_model_and_more.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0006_alter_ipfabrictransformmap_target_model.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0007_prepare_custom_fields.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0008_prepare_transform_maps.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0009_transformmap_changes_for_netbox_v4_2.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0010_remove_uuid_from_get_or_create.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0012_remove_status_field.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0014_ipfabrictransformmapgroup_ipfabrictransformmap_group.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0015_ipfabricingestionissue.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0016_tags_and_changelog_for_snapshots.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0017_ipfabricsync_update_custom_fields.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0018_remove_type_field.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/models.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/navigation.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/signals.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tables.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/clone_form.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/json.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/logs_pending.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_relationship_map.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabric_table.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricingestion.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsnapshot.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_list.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_restore.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmapgroup.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_progress.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_statistics.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_status.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/job_logs.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/object_tabs.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/static/ipfabric_netbox/css/rack.css +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templatetags/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templatetags/ipfabric_netbox_helpers.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/api/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/api/test_api.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/test_forms.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/test_models.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/urls.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/__init__.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/ipfutils.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/logging.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/nbutils.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/transform_map.py +0 -0
- {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/views.py +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from netbox.plugins import PluginTemplateExtension
|
|
4
|
+
|
|
5
|
+
from ipfabric_netbox.models import IPFabricSnapshot
|
|
6
|
+
|
|
7
|
+
logger = logging.getLogger("ipfabric_netbox.template_content")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SiteTopologyButtons(PluginTemplateExtension):
|
|
11
|
+
model = "dcim.site"
|
|
12
|
+
|
|
13
|
+
def buttons(self):
|
|
14
|
+
try:
|
|
15
|
+
site = self.context.get("object")
|
|
16
|
+
source = None
|
|
17
|
+
for snapshot in IPFabricSnapshot.objects.all():
|
|
18
|
+
# `Site.name` is unique in DB, so we can use it to match against IPF snapshots
|
|
19
|
+
if site.name in snapshot.sites:
|
|
20
|
+
source = snapshot.source
|
|
21
|
+
return self.render(
|
|
22
|
+
"ipfabric_netbox/inc/site_topology_button.html",
|
|
23
|
+
extra_context={"source": source},
|
|
24
|
+
)
|
|
25
|
+
except Exception as e:
|
|
26
|
+
logger.error(f"Could not render topology button: {e}.")
|
|
27
|
+
return "render error"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
template_extensions = [SiteTopologyButtons]
|
|
@@ -6,19 +6,26 @@
|
|
|
6
6
|
IP Fabric Topology
|
|
7
7
|
</button>
|
|
8
8
|
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
|
|
9
|
+
{% if source is not None %}
|
|
9
10
|
<li><a href="#"
|
|
10
|
-
hx-get="{% url 'plugins:ipfabric_netbox:ipfabricsource_topology' pk=
|
|
11
|
+
hx-get="{% url 'plugins:ipfabric_netbox:ipfabricsource_topology' pk=source.pk site=object.pk %}?snapshot=$last&source={{ source.id }}"
|
|
11
12
|
hx-target="#topology-modal-content" data-bs-toggle="modal" data-bs-target="#topology-modal"
|
|
12
13
|
class="dropdown-item">
|
|
13
14
|
Last Snapshot
|
|
14
15
|
</a>
|
|
15
16
|
</li>
|
|
16
17
|
<li><a href="#"
|
|
17
|
-
hx-get="{% url 'plugins:ipfabric_netbox:ipfabricsource_topology' pk=
|
|
18
|
+
hx-get="{% url 'plugins:ipfabric_netbox:ipfabricsource_topology' pk=source.pk site=object.pk %}?snapshot=$prev&source={{ source.id }}"
|
|
18
19
|
hx-target="#topology-modal-content" data-bs-toggle="modal" data-bs-target="#topology-modal"
|
|
19
20
|
class="dropdown-item">
|
|
20
21
|
Previous Snapshot
|
|
21
|
-
</a
|
|
22
|
+
</a>
|
|
23
|
+
</li>
|
|
24
|
+
{% else %}
|
|
25
|
+
<li>
|
|
26
|
+
<span class="dropdown-item text-danger">No IP Fabric Source Found for this Site</span>
|
|
27
|
+
</li>
|
|
28
|
+
{% endif %}
|
|
22
29
|
</ul>
|
|
23
30
|
</div>
|
|
24
31
|
</div>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
from netbox.plugins import PluginTemplateExtension
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class SiteTopologyButtons(PluginTemplateExtension):
|
|
5
|
-
model = "dcim.site"
|
|
6
|
-
|
|
7
|
-
def buttons(self):
|
|
8
|
-
return self.render(
|
|
9
|
-
"ipfabric_netbox/inc/site_topology_button.html", extra_context={}
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
template_extensions = [SiteTopologyButtons]
|
|
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.0b9 → ipfabric_netbox-4.2.1b1}/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
|
|
File without changes
|
{ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/transform_map.py
RENAMED
|
File without changes
|
|
File without changes
|