netbox-plugin-dns 0.21.14__tar.gz → 0.21.16__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 netbox-plugin-dns might be problematic. Click here for more details.

Files changed (110) hide show
  1. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/PKG-INFO +1 -1
  2. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/__init__.py +23 -10
  3. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/signals/ipam_coupling.py +3 -0
  4. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/utilities/ipam_coupling.py +18 -1
  5. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/pyproject.toml +1 -1
  6. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/LICENSE +0 -0
  7. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/README.md +0 -0
  8. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/api/nested_serializers.py +0 -0
  9. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/api/serializers.py +0 -0
  10. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/api/urls.py +0 -0
  11. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/api/views.py +0 -0
  12. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/apps.py +0 -0
  13. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/fields/__init__.py +0 -0
  14. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/fields/address.py +0 -0
  15. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/fields/network.py +0 -0
  16. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/__init__.py +0 -0
  17. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/contact.py +0 -0
  18. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/nameserver.py +0 -0
  19. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/record.py +0 -0
  20. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/registrar.py +0 -0
  21. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/view.py +0 -0
  22. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/filters/zone.py +0 -0
  23. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/__init__.py +0 -0
  24. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/contact.py +0 -0
  25. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/nameserver.py +0 -0
  26. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/record.py +0 -0
  27. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/registrar.py +0 -0
  28. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/view.py +0 -0
  29. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/forms/zone.py +0 -0
  30. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/__init__.py +0 -0
  31. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/contact.py +0 -0
  32. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/nameserver.py +0 -0
  33. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/record.py +0 -0
  34. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/registrar.py +0 -0
  35. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/schema.py +0 -0
  36. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/view.py +0 -0
  37. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/graphql/zone.py +0 -0
  38. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/management/commands/cleanup_database.py +0 -0
  39. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/management/commands/setup_coupling.py +0 -0
  40. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/management/commands/update_soa.py +0 -0
  41. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0001_initial.py +0 -0
  42. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -0
  43. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0002_zone_default_ttl.py +0 -0
  44. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0003_soa_managed_records.py +0 -0
  45. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0004_create_ptr_for_a_aaaa_records.py +0 -0
  46. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0005_update_ns_records.py +0 -0
  47. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0006_zone_soa_serial_auto.py +0 -0
  48. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0007_alter_zone_soa_serial_auto.py +0 -0
  49. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0008_zone_status_names.py +0 -0
  50. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0009_netbox32.py +0 -0
  51. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0010_update_soa_records.py +0 -0
  52. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0011_add_view_model.py +0 -0
  53. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0012_adjust_zone_and_record.py +0 -0
  54. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0013_add_nameserver_zone_record_description.py +0 -0
  55. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0014_add_view_description.py +0 -0
  56. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0015_add_record_status.py +0 -0
  57. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0016_cleanup_ptr_records.py +0 -0
  58. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0017_alter_record_ttl.py +0 -0
  59. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0018_zone_arpa_network.py +0 -0
  60. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0019_update_ns_ttl.py +0 -0
  61. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0020_netbox_3_4.py +0 -0
  62. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0021_record_ip_address.py +0 -0
  63. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0022_search.py +0 -0
  64. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0023_alter_record_value.py +0 -0
  65. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0024_tenancy.py +0 -0
  66. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0025_ipam_coupling_cf.py +0 -0
  67. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0026_domain_registration.py +0 -0
  68. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/0027_alter_registrar_iana_id.py +0 -0
  69. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/migrations/__init__.py +0 -0
  70. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/__init__.py +0 -0
  71. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/contact.py +0 -0
  72. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/nameserver.py +0 -0
  73. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/record.py +0 -0
  74. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/registrar.py +0 -0
  75. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/view.py +0 -0
  76. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/models/zone.py +0 -0
  77. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/navigation.py +0 -0
  78. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/signals/__init__.py +0 -0
  79. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/__init__.py +0 -0
  80. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/contact.py +0 -0
  81. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/nameserver.py +0 -0
  82. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/record.py +0 -0
  83. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/registrar.py +0 -0
  84. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/view.py +0 -0
  85. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/tables/zone.py +0 -0
  86. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/template_content.py +0 -0
  87. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/contact.html +0 -0
  88. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/nameserver.html +0 -0
  89. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/record/managed.html +0 -0
  90. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/record/related.html +0 -0
  91. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/record.html +0 -0
  92. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/registrar.html +0 -0
  93. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/related_dns_objects.html +0 -0
  94. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/view.html +0 -0
  95. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/zone/base.html +0 -0
  96. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/zone/child.html +0 -0
  97. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/zone/managed_record.html +0 -0
  98. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/zone/record.html +0 -0
  99. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/zone/registration.html +0 -0
  100. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/templates/netbox_dns/zone.html +0 -0
  101. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/urls.py +0 -0
  102. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/utilities/__init__.py +0 -0
  103. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/validators.py +0 -0
  104. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/__init__.py +0 -0
  105. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/contact.py +0 -0
  106. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/nameserver.py +0 -0
  107. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/record.py +0 -0
  108. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/registrar.py +0 -0
  109. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/view.py +0 -0
  110. {netbox_plugin_dns-0.21.14 → netbox_plugin_dns-0.21.16}/netbox_dns/views/zone.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netbox-plugin-dns
3
- Version: 0.21.14
3
+ Version: 0.21.16
4
4
  Summary: NetBox DNS is a NetBox plugin for managing DNS data.
5
5
  Home-page: https://github.com/peteeckel/netbox-plugin-dns
6
6
  License: MIT
@@ -1,6 +1,7 @@
1
1
  import sys
2
2
 
3
3
  from extras.plugins import PluginConfig
4
+ from django.db.utils import OperationalError
4
5
 
5
6
  try:
6
7
  # NetBox 3.5.0 - 3.5.7, 3.5.9+
@@ -9,7 +10,7 @@ except ImportError:
9
10
  # NetBox 3.5.8
10
11
  from extras.plugins.utils import get_plugin_config
11
12
 
12
- __version__ = "0.21.14"
13
+ __version__ = "0.21.16"
13
14
 
14
15
 
15
16
  class DNSConfig(PluginConfig):
@@ -50,17 +51,29 @@ class DNSConfig(PluginConfig):
50
51
  from ipam.models import IPAddress
51
52
  from django.contrib.contenttypes.models import ContentType
52
53
 
53
- objtype = ContentType.objects.get_for_model(IPAddress)
54
- required_cf = ("ipaddress_dns_record_name", "ipaddress_dns_zone_id")
54
+ try:
55
+ objtype = ContentType.objects.get_for_model(IPAddress)
56
+ required_cf = (
57
+ "ipaddress_dns_record_name",
58
+ "ipaddress_dns_record_ttl",
59
+ "ipaddress_dns_record_disable_ptr",
60
+ "ipaddress_dns_zone_id",
61
+ )
55
62
 
56
- if CustomField.objects.filter(
57
- name__in=required_cf, content_types=objtype
58
- ).count() < len(required_cf):
63
+ if CustomField.objects.filter(
64
+ name__in=required_cf, content_types=objtype
65
+ ).count() < len(required_cf):
66
+ print(
67
+ "WARNING: 'feature_ipam_coupling' is enabled, but the required"
68
+ " custom fields for IPAM DNS coupling are missing. Please run"
69
+ " the Django management command 'setup_coupling' to create the"
70
+ " missing custom fields.",
71
+ file=sys.stderr,
72
+ )
73
+ except OperationalError as exc:
59
74
  print(
60
- "WARNING: 'feature_ipam_coupling' is enabled, but the required"
61
- " custom fields for IPAM DNS coupling are missing. Please run"
62
- " the Django management command 'setup_coupling' to create the"
63
- " custom fields.",
75
+ "WARNING: Unable to connect to PostgreSQL, cannot check custom fields"
76
+ " for feature_ipam_coupling",
64
77
  file=sys.stderr,
65
78
  )
66
79
 
@@ -28,6 +28,9 @@ except ImportError:
28
28
 
29
29
  @receiver(post_clean, sender=IPAddress)
30
30
  def ip_address_check_permissions_save(instance, **kwargs):
31
+ if not instance.address:
32
+ return
33
+
31
34
  if not get_plugin_config("netbox_dns", "feature_ipam_coupling"):
32
35
  return
33
36
 
@@ -3,6 +3,13 @@ from utilities.permissions import resolve_permission
3
3
 
4
4
  from netbox_dns.models import Record, RecordTypeChoices, RecordStatusChoices
5
5
 
6
+ try:
7
+ # NetBox 3.5.0 - 3.5.7, 3.5.9+
8
+ from extras.plugins import get_plugin_config
9
+ except ImportError:
10
+ # NetBox 3.5.8
11
+ from extras.plugins.utils import get_plugin_config
12
+
6
13
 
7
14
  class DNSPermissionDenied(Exception):
8
15
  pass
@@ -27,9 +34,19 @@ def address_record_type(ip_address):
27
34
 
28
35
 
29
36
  def address_record_status(ip_address):
37
+ ip_active_status_list = get_plugin_config(
38
+ "netbox_dns",
39
+ "ipam_coupling_ip_active_status_list",
40
+ (
41
+ IPAddressStatusChoices.STATUS_ACTIVE,
42
+ IPAddressStatusChoices.STATUS_DHCP,
43
+ IPAddressStatusChoices.STATUS_SLAAC,
44
+ ),
45
+ )
46
+
30
47
  return (
31
48
  RecordStatusChoices.STATUS_ACTIVE
32
- if ip_address.status == IPAddressStatusChoices.STATUS_ACTIVE
49
+ if ip_address.status in ip_active_status_list
33
50
  else RecordStatusChoices.STATUS_INACTIVE
34
51
  )
35
52
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "netbox-plugin-dns"
3
- version = "0.21.14"
3
+ version = "0.21.16"
4
4
  description = "NetBox DNS is a NetBox plugin for managing DNS data."
5
5
  authors = ["Peter Eckel <pe-netbox-dns@hindenburgring.com>"]
6
6
  homepage = "https://github.com/peteeckel/netbox-plugin-dns"