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.

Files changed (86) hide show
  1. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/PKG-INFO +1 -1
  2. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/__init__.py +1 -1
  3. ipfabric_netbox-4.2.1b1/ipfabric_netbox/template_content.py +30 -0
  4. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html +10 -3
  5. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/pyproject.toml +1 -1
  6. ipfabric_netbox-4.2.0b9/ipfabric_netbox/template_content.py +0 -13
  7. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/README.md +0 -0
  8. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/__init__.py +0 -0
  9. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/serializers.py +0 -0
  10. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/urls.py +0 -0
  11. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/api/views.py +0 -0
  12. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/choices.py +0 -0
  13. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/data/transform_map.json +0 -0
  14. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/exceptions.py +0 -0
  15. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/filtersets.py +0 -0
  16. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/forms.py +0 -0
  17. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/__init__.py +0 -0
  18. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/enums.py +0 -0
  19. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/filters.py +0 -0
  20. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/schema.py +0 -0
  21. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/graphql/types.py +0 -0
  22. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/jobs.py +0 -0
  23. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0001_initial.py +0 -0
  24. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py +0 -0
  25. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0002_ipfabricsnapshot_status.py +0 -0
  26. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0003_ipfabricsource_type_and_more.py +0 -0
  27. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0004_ipfabricsync_auto_merge.py +0 -0
  28. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0005_alter_ipfabricrelationshipfield_source_model_and_more.py +0 -0
  29. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0006_alter_ipfabrictransformmap_target_model.py +0 -0
  30. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0007_prepare_custom_fields.py +0 -0
  31. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0008_prepare_transform_maps.py +0 -0
  32. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0009_transformmap_changes_for_netbox_v4_2.py +0 -0
  33. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0010_remove_uuid_from_get_or_create.py +0 -0
  34. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py +0 -0
  35. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0012_remove_status_field.py +0 -0
  36. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py +0 -0
  37. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0014_ipfabrictransformmapgroup_ipfabrictransformmap_group.py +0 -0
  38. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0015_ipfabricingestionissue.py +0 -0
  39. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0016_tags_and_changelog_for_snapshots.py +0 -0
  40. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0017_ipfabricsync_update_custom_fields.py +0 -0
  41. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/0018_remove_type_field.py +0 -0
  42. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/migrations/__init__.py +0 -0
  43. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/models.py +0 -0
  44. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/navigation.py +0 -0
  45. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/signals.py +0 -0
  46. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tables.py +0 -0
  47. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/clone_form.html +0 -0
  48. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html +0 -0
  49. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/json.html +0 -0
  50. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/logs_pending.html +0 -0
  51. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html +0 -0
  52. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html +0 -0
  53. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html +0 -0
  54. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html +0 -0
  55. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_relationship_map.html +0 -0
  56. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabric_table.html +0 -0
  57. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricingestion.html +0 -0
  58. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsnapshot.html +0 -0
  59. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html +0 -0
  60. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html +0 -0
  61. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html +0 -0
  62. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_list.html +0 -0
  63. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_restore.html +0 -0
  64. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmapgroup.html +0 -0
  65. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html +0 -0
  66. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_progress.html +0 -0
  67. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_statistics.html +0 -0
  68. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_status.html +0 -0
  69. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/job_logs.html +0 -0
  70. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/object_tabs.html +0 -0
  71. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html +0 -0
  72. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templates/static/ipfabric_netbox/css/rack.css +0 -0
  73. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templatetags/__init__.py +0 -0
  74. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/templatetags/ipfabric_netbox_helpers.py +0 -0
  75. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/__init__.py +0 -0
  76. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/api/__init__.py +0 -0
  77. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/api/test_api.py +0 -0
  78. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/test_forms.py +0 -0
  79. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/tests/test_models.py +0 -0
  80. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/urls.py +0 -0
  81. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/__init__.py +0 -0
  82. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/ipfutils.py +0 -0
  83. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/logging.py +0 -0
  84. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/nbutils.py +0 -0
  85. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/utilities/transform_map.py +0 -0
  86. {ipfabric_netbox-4.2.0b9 → ipfabric_netbox-4.2.1b1}/ipfabric_netbox/views.py +0 -0
@@ -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
@@ -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
 
@@ -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=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
  [tool.poetry]
2
2
  name = "ipfabric_netbox"
3
- version = "4.2.0b9"
3
+ version = "4.2.1b1"
4
4
  description = "NetBox plugin to sync IP Fabric data into NetBox"
5
5
  authors = ["Solution Architecture <solution.architecture@ipfabric.io>"]
6
6
  license = "MIT"
@@ -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]