ipfabric_netbox 4.2.0b9__py3-none-any.whl → 4.2.1b1__py3-none-any.whl

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.

@@ -6,7 +6,7 @@ class NetboxIPFabricConfig(PluginConfig):
6
6
  name = "ipfabric_netbox"
7
7
  verbose_name = "NetBox IP Fabric SoT Plugin"
8
8
  description = "Sync IP Fabric into NetBox"
9
- version = "4.2.0b9"
9
+ version = "4.2.1b1"
10
10
  base_url = "ipfabric"
11
11
  min_version = "4.2.4"
12
12
 
@@ -1,13 +1,30 @@
1
+ import logging
2
+
1
3
  from netbox.plugins import PluginTemplateExtension
2
4
 
5
+ from ipfabric_netbox.models import IPFabricSnapshot
6
+
7
+ logger = logging.getLogger("ipfabric_netbox.template_content")
8
+
3
9
 
4
10
  class SiteTopologyButtons(PluginTemplateExtension):
5
11
  model = "dcim.site"
6
12
 
7
13
  def buttons(self):
8
- return self.render(
9
- "ipfabric_netbox/inc/site_topology_button.html", extra_context={}
10
- )
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"
11
28
 
12
29
 
13
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=object.pk site=object.site.pk %}?snapshot=$last&source={{ object.custom_field_data.ipfabric_source }}"
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=object.pk site=object.site.pk %}?snapshot=$prev&source={{ object.custom_field_data.ipfabric_source }}"
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></li>
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,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ipfabric_netbox
3
- Version: 4.2.0b9
3
+ Version: 4.2.1b1
4
4
  Summary: NetBox plugin to sync IP Fabric data into NetBox
5
5
  License: MIT
6
6
  Keywords: netbox,ipfabric,plugin,sync
@@ -1,4 +1,4 @@
1
- ipfabric_netbox/__init__.py,sha256=DZlbtM-vuPR_pbH3EUldapH1UJSm8qq0Utiy4Rl-cKw,674
1
+ ipfabric_netbox/__init__.py,sha256=7Pn2zxoAmxBrV8hJ3bUPoLFZNacylsVcu4LbPPyykPU,674
2
2
  ipfabric_netbox/api/__init__.py,sha256=XRclTGWVR0ZhAAwgYul5Wm_loug5_hUjEumbLQEwKYM,47
3
3
  ipfabric_netbox/api/serializers.py,sha256=7cmVsIzGzz9u6htLKizLr2Ar0OC7uV8rMX3U7EzRmG4,6482
4
4
  ipfabric_netbox/api/urls.py,sha256=1fXXVTxNY5E64Nfz6b7zXD9bZI3FcefuxAWKMe0w_QU,1240
@@ -38,13 +38,13 @@ ipfabric_netbox/models.py,sha256=T2VOnlKyWkYpwnsGkkgt5-zwvVbxT1eqTnEfCvTV5jc,360
38
38
  ipfabric_netbox/navigation.py,sha256=2dEJ_wKHb52Tl0FOV1TH3JbxRe8YZ56ewrTsBFGKpCg,2210
39
39
  ipfabric_netbox/signals.py,sha256=cGa5PVD2i24pGXiVNfbu6ruIDqPVdwKQHTSWe9Ura84,1838
40
40
  ipfabric_netbox/tables.py,sha256=zJUCoOrJgBNVxOmQrvlUyoD_0_Kq988GjregdcSAa68,8854
41
- ipfabric_netbox/template_content.py,sha256=bP2nUf5MM-GUbtQxJ8QoYVNXhrDCrkb8wZnbeqa07EA,315
41
+ ipfabric_netbox/template_content.py,sha256=ZT0uxqaC-Xnvrvm3nr89P9r43vsIuie3xcXIuT0UCN0,959
42
42
  ipfabric_netbox/templates/ipfabric_netbox/inc/clone_form.html,sha256=K-2TTDaS1F4wUIR8FFFPqex4KJbySXtHiz5V-OEwelY,967
43
43
  ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html,sha256=xOiIrvRIBtqDD65u6xcLo2xdwDKNpAylDmzznaJRGCw,3281
44
44
  ipfabric_netbox/templates/ipfabric_netbox/inc/json.html,sha256=qPHUdaHyKM9Y7FqBEnYwcNoyp5GMFaexJFXMRf4AqZQ,569
45
45
  ipfabric_netbox/templates/ipfabric_netbox/inc/logs_pending.html,sha256=JbS6wIE_zb0iBKo78W9Al8caXZY7HnsjEFDhY0hirw0,295
46
46
  ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html,sha256=HxGRk7oTptDWtoMklJ5TolbljZrvAzhZa_Hbjs75P8w,720
47
- ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html,sha256=N5T6HXDpKN2qf9UP3F870wpLwSHghYgoqhLRZhOuWG0,2684
47
+ ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html,sha256=0YOvokuo2ZbR48odRkCcEssWBIxwCGwpsWom38_l-FA,2806
48
48
  ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html,sha256=zjG5qjth277dnVkzyg8qxs72wtKZ8yypXRTXqral4Wk,2124
49
49
  ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html,sha256=1ItOCPjjp9iH7MLNLIz6x-2NnSa0Wx4bXUYVk-Jn4Y0,2885
50
50
  ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html,sha256=mRU-rBweVFvaPFHbVYPw7vcYyXiVaXCOkeHm7xWdKPA,500
@@ -80,6 +80,6 @@ ipfabric_netbox/utilities/logging.py,sha256=GYknjocMN6LQ2873_az3y0RKm29TCXaWviUI
80
80
  ipfabric_netbox/utilities/nbutils.py,sha256=kFBEiJOGvr_49hJWCS2duXojx2-A9kVk0Xp_vj0ohfs,2641
81
81
  ipfabric_netbox/utilities/transform_map.py,sha256=QotbGc2TksINJrb62STgAigpC5Nsgi5umYHu_0rZd8k,2204
82
82
  ipfabric_netbox/views.py,sha256=W7By73eiopwX-Q10S4kcFVL-lkz0WG0pwe2doNpvYg0,36807
83
- ipfabric_netbox-4.2.0b9.dist-info/METADATA,sha256=zq7D8wC26Z5QiKLvt6LDuO0cv3mBxG18q-7427xsMH8,4638
84
- ipfabric_netbox-4.2.0b9.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
85
- ipfabric_netbox-4.2.0b9.dist-info/RECORD,,
83
+ ipfabric_netbox-4.2.1b1.dist-info/METADATA,sha256=kViH4IXkbDcLYi7XGSIug-KT486e_GIgCb7ocCeembA,4638
84
+ ipfabric_netbox-4.2.1b1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
85
+ ipfabric_netbox-4.2.1b1.dist-info/RECORD,,