ipfabric_netbox 3.2.3__tar.gz → 3.2.4__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 (65) hide show
  1. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/PKG-INFO +1 -1
  2. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/__init__.py +1 -1
  3. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0010_remove_uuid_from_get_or_create.py +20 -11
  4. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/pyproject.toml +1 -1
  5. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/README.md +0 -0
  6. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/api/__init__.py +0 -0
  7. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/api/nested_serializers.py +0 -0
  8. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/api/serializers.py +0 -0
  9. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/api/urls.py +0 -0
  10. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/api/views.py +0 -0
  11. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/choices.py +0 -0
  12. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/data/transform_map.json +0 -0
  13. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/exceptions.py +0 -0
  14. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/filtersets.py +0 -0
  15. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/forms.py +0 -0
  16. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/jobs.py +0 -0
  17. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0001_initial.py +0 -0
  18. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0002_ipfabricsnapshot_status.py +0 -0
  19. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0003_ipfabricsource_type_and_more.py +0 -0
  20. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0004_ipfabricsync_auto_merge.py +0 -0
  21. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0005_alter_ipfabricrelationshipfield_source_model_and_more.py +0 -0
  22. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0006_alter_ipfabrictransformmap_target_model.py +0 -0
  23. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0007_prepare_custom_fields.py +0 -0
  24. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0008_prepare_transform_maps.py +0 -0
  25. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/0009_transformmap_changes_for_netbox_v4_2.py +0 -0
  26. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/migrations/__init__.py +0 -0
  27. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/models.py +0 -0
  28. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/navigation.py +0 -0
  29. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/signals.py +0 -0
  30. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/tables.py +0 -0
  31. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/template_content.py +0 -0
  32. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html +0 -0
  33. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/json.html +0 -0
  34. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/logs_pending.html +0 -0
  35. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html +0 -0
  36. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html +0 -0
  37. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html +0 -0
  38. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html +0 -0
  39. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/sync_delete.html +0 -0
  40. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html +0 -0
  41. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_relationship_map.html +0 -0
  42. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabric_table.html +0 -0
  43. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricbranch.html +0 -0
  44. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsnapshot.html +0 -0
  45. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html +0 -0
  46. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html +0 -0
  47. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html +0 -0
  48. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_list.html +0 -0
  49. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_restore.html +0 -0
  50. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/partials/branch_all.html +0 -0
  51. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/partials/branch_progress.html +0 -0
  52. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/partials/branch_status.html +0 -0
  53. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/partials/job_logs.html +0 -0
  54. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_branch.html +0 -0
  55. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/ipfabric_netbox/sync_list.html +0 -0
  56. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/templates/static/ipfabric_netbox/css/rack.css +0 -0
  57. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/tests/__init__.py +0 -0
  58. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/tests/test_models.py +0 -0
  59. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/urls.py +0 -0
  60. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/utilities/__init__.py +0 -0
  61. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/utilities/ipfutils.py +0 -0
  62. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/utilities/logging.py +0 -0
  63. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/utilities/nbutils.py +0 -0
  64. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/utilities/transform_map.py +0 -0
  65. {ipfabric_netbox-3.2.3 → ipfabric_netbox-3.2.4}/ipfabric_netbox/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ipfabric_netbox
3
- Version: 3.2.3
3
+ Version: 3.2.4
4
4
  Summary: NetBox plugin to sync IP Fabric data into NetBox
5
5
  License: MIT
6
6
  Keywords: netbox,ipfabric,plugin,sync
@@ -5,7 +5,7 @@ class NetboxIPFabricConfig(PluginConfig):
5
5
  name = "ipfabric_netbox"
6
6
  verbose_name = "NetBox IP Fabric SoT Plugin"
7
7
  description = "Sync IP Fabric into NetBox"
8
- version = "3.2.3"
8
+ version = "3.2.4"
9
9
  base_url = "ipfabric"
10
10
  min_version = "4.2.4"
11
11
 
@@ -10,7 +10,7 @@ if TYPE_CHECKING:
10
10
 
11
11
 
12
12
  items_to_change = {
13
- ("ip_address", "ipam", "ipaddress"): {"fields": [], "relationships": ["vrf"]},
13
+ ("ipaddress", "ipam", "ipaddress"): {"fields": [], "relationships": ["vrf"]},
14
14
  ("device", "dcim", "platform"): {"fields": [], "relationships": ["manufacturer"]},
15
15
  ("device", "dcim", "device"): {
16
16
  "fields": [],
@@ -43,37 +43,46 @@ def add_templates(apps: "apps", schema_editor: "BaseDatabaseSchemaEditor"):
43
43
  if transform_map_id not in items_to_change:
44
44
  continue
45
45
  source_model, app_label, target_model = transform_map_id
46
- transform_map = apps.get_model(
46
+ transform_map, _ = apps.get_model(
47
47
  "ipfabric_netbox", "IPFabricTransformMap"
48
- ).objects.get(
48
+ ).objects.get_or_create(
49
49
  source_model=source_model,
50
50
  target_model=apps.get_model("contenttypes", "ContentType").objects.get(
51
51
  app_label=app_label,
52
52
  model=target_model,
53
53
  ),
54
+ defaults={"name": item["data"]["name"]},
54
55
  )
55
56
 
56
57
  change_data = items_to_change[transform_map_id]
57
58
 
58
59
  for field_map in item["field_maps"]:
59
- if field_map["target_field"] not in change_data["fields"]:
60
+ f_target_field = field_map.pop("target_field", None)
61
+ if f_target_field not in change_data["fields"]:
60
62
  continue
61
- field = apps.get_model(
63
+ field, _ = apps.get_model(
62
64
  "ipfabric_netbox", "IPFabricTransformField"
63
- ).objects.get(
64
- target_field=field_map["target_field"], transform_map=transform_map
65
+ ).objects.get_or_create(
66
+ target_field=f_target_field,
67
+ transform_map=transform_map,
68
+ defaults=field_map,
65
69
  )
66
70
  field.template = field_map["template"]
67
71
  field.save()
68
72
 
69
73
  for relationship_map in item["relationship_maps"]:
70
- if relationship_map["target_field"] not in change_data["relationships"]:
74
+ rel_target_field = relationship_map.pop("target_field", None)
75
+ if rel_target_field not in change_data["relationships"]:
71
76
  continue
72
- relationship = apps.get_model(
77
+ relationship_map["source_model"] = apps.get_model(
78
+ "contenttypes", "ContentType"
79
+ ).objects.get(**relationship_map.pop("source_model"))
80
+ relationship, _ = apps.get_model(
73
81
  "ipfabric_netbox", "IPFabricRelationshipField"
74
- ).objects.get(
75
- target_field=relationship_map["target_field"],
82
+ ).objects.get_or_create(
83
+ target_field=rel_target_field,
76
84
  transform_map=transform_map,
85
+ defaults=relationship_map,
77
86
  )
78
87
  relationship.template = relationship_map["template"]
79
88
  relationship.save()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ipfabric_netbox"
3
- version = "3.2.3"
3
+ version = "3.2.4"
4
4
  description = "NetBox plugin to sync IP Fabric data into NetBox"
5
5
  authors = [{name = "Solution Architecture <solution.architecture@ipfabric.io>"}]
6
6
  license = "MIT"