netbox-docker-plugin 4.12.0__tar.gz → 5.0.0__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.
Files changed (143) hide show
  1. {netbox_docker_plugin-4.12.0/netbox_docker_plugin.egg-info → netbox_docker_plugin-5.0.0}/PKG-INFO +5 -4
  2. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/README.md +3 -2
  3. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/__init__.py +2 -2
  4. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/api/serializers.py +10 -1
  5. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/api/views.py +7 -1
  6. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/host.py +1 -3
  7. netbox_docker_plugin-5.0.0/netbox_docker_plugin/tests/image/test_force_pull_image_with_special_cf.py +103 -0
  8. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/utilities/__init__.py +9 -1
  9. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0/netbox_docker_plugin.egg-info}/PKG-INFO +5 -4
  10. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin.egg-info/SOURCES.txt +1 -0
  11. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/pyproject.toml +2 -2
  12. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/LICENSE +0 -0
  13. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/MANIFEST.in +0 -0
  14. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/api/__init__.py +0 -0
  15. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/api/renderers.py +0 -0
  16. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/api/urls.py +0 -0
  17. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/filtersets.py +0 -0
  18. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/__init__.py +0 -0
  19. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/bind.py +0 -0
  20. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/container.py +0 -0
  21. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/device.py +0 -0
  22. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/env.py +0 -0
  23. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/host.py +0 -0
  24. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/image.py +0 -0
  25. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/label.py +0 -0
  26. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/log_driver_option.py +0 -0
  27. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/mount.py +0 -0
  28. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/network.py +0 -0
  29. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/network_setting.py +0 -0
  30. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/port.py +0 -0
  31. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/registry.py +0 -0
  32. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/sysctl.py +0 -0
  33. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/forms/volume.py +0 -0
  34. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0001_initial.py +0 -0
  35. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0002_image.py +0 -0
  36. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0003_image_size.py +0 -0
  37. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0004_volume.py +0 -0
  38. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0005_network.py +0 -0
  39. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0006_container_port_mount_label_env_and_more.py +0 -0
  40. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0007_remove_container_netbox_docker_plugin_container_unique_name_host__and_more.py +0 -0
  41. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0008_alter_network_unique_together_network_networkid_and_more.py +0 -0
  42. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0009_remove_container_network_networksettings_and_more.py +0 -0
  43. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0010_container_containerid_and_more.py +0 -0
  44. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0011_host_token.py +0 -0
  45. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0012_host_state.py +0 -0
  46. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0013_host_netbox_url.py +0 -0
  47. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0014_container_operation.py +0 -0
  48. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0015_remove_mount_netbox_docker_plugin_mount_unique_volume_and_more.py +0 -0
  49. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0016_alter_env_value.py +0 -0
  50. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0017_network_state.py +0 -0
  51. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0018_alter_mount_volume_alter_networksetting_network.py +0 -0
  52. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0019_host_agent_version_host_docker_api_version.py +0 -0
  53. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0020_container_hostname.py +0 -0
  54. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0021_registry_and_more.py +0 -0
  55. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0022_bind_bind_netbox_docker_plugin_bind_unique_bind.py +0 -0
  56. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0023_delete_hosts.py +0 -0
  57. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0024_registry_host_alter_registry_name_and_more.py +0 -0
  58. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0025_alter_image_version.py +0 -0
  59. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0026_image_digest.py +0 -0
  60. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0027_container_restart_policy.py +0 -0
  61. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0028_mount_and_bind_read_only.py +0 -0
  62. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0029_alter_container_state.py +0 -0
  63. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0030_alter_container_containerid_alter_container_hostname_and_more.py +0 -0
  64. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0031_container_cap_add.py +0 -0
  65. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0032_device_and_more.py +0 -0
  66. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0033_host_operation.py +0 -0
  67. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0034_volume_max_size.py +0 -0
  68. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0035_container_log_driver_logdriveroption.py +0 -0
  69. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0036_alter_container_log_driver.py +0 -0
  70. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0037_alter_env_value.py +0 -0
  71. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/0038_container_cmd.py +0 -0
  72. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/1039_alter_port_public_port.py +0 -0
  73. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/1040_alter_container_log_driver.py +0 -0
  74. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/1041_sysctl.py +0 -0
  75. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/1042_registry_username_max_length.py +0 -0
  76. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/migrations/__init__.py +0 -0
  77. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/__init__.py +0 -0
  78. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/container.py +0 -0
  79. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/image.py +0 -0
  80. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/network.py +0 -0
  81. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/registry.py +0 -0
  82. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/models/volume.py +0 -0
  83. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/navigation.py +0 -0
  84. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/signals.py +0 -0
  85. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tables.py +0 -0
  86. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-exec.html +0 -0
  87. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-layout.html +0 -0
  88. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-logs.html +0 -0
  89. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container.html +0 -0
  90. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/host-graph.html +0 -0
  91. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/host.html +0 -0
  92. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/image.html +0 -0
  93. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/network.html +0 -0
  94. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/registry.html +0 -0
  95. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templates/netbox_docker_plugin/volume.html +0 -0
  96. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templatetags/__init__.py +0 -0
  97. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/templatetags/host.py +0 -0
  98. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/__init__.py +0 -0
  99. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/base.py +0 -0
  100. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/__init__.py +0 -0
  101. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/test_container_actions.py +0 -0
  102. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/test_container_api.py +0 -0
  103. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/test_container_api_exec.py +0 -0
  104. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/test_container_operation_view.py +0 -0
  105. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/test_container_validation.py +0 -0
  106. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/container/test_container_views.py +0 -0
  107. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/host/__init__.py +0 -0
  108. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/host/test_host_api.py +0 -0
  109. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/host/test_host_views.py +0 -0
  110. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/host/test_replace_password.py +0 -0
  111. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/image/__init__.py +0 -0
  112. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/image/test_image_api.py +0 -0
  113. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/image/test_image_views.py +0 -0
  114. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/network/__init__.py +0 -0
  115. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/network/test_network_api.py +0 -0
  116. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/network/test_network_views.py +0 -0
  117. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/registry/__init__.py +0 -0
  118. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/registry/test_registry_api.py +0 -0
  119. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/registry/test_registry_views.py +0 -0
  120. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/test_init.py +0 -0
  121. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/volume/__init__.py +0 -0
  122. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/volume/test_volume_api.py +0 -0
  123. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/tests/volume/test_volume_views.py +0 -0
  124. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/urls.py +0 -0
  125. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/__init__.py +0 -0
  126. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/bind.py +0 -0
  127. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/container.py +0 -0
  128. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/device.py +0 -0
  129. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/env.py +0 -0
  130. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/host.py +0 -0
  131. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/image.py +0 -0
  132. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/label.py +0 -0
  133. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/log_driver_option.py +0 -0
  134. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/mount.py +0 -0
  135. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/network.py +0 -0
  136. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/network_setting.py +0 -0
  137. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/port.py +0 -0
  138. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/registry.py +0 -0
  139. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/sysctl.py +0 -0
  140. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin/views/volume.py +0 -0
  141. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin.egg-info/dependency_links.txt +0 -0
  142. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/netbox_docker_plugin.egg-info/top_level.txt +0 -0
  143. {netbox_docker_plugin-4.12.0 → netbox_docker_plugin-5.0.0}/setup.cfg +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-docker-plugin
3
- Version: 4.12.0
3
+ Version: 5.0.0
4
4
  Summary: Manage Docker with Netbox & style.
5
5
  Author-email: Vincent Simonin <vincent@saashup.com>, David Delassus <david.jose.delassus@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/SaaShup/netbox-docker-plugin
7
7
  Project-URL: Bug Tracker, https://github.com/SaaShup/netbox-docker-plugin/issues
8
8
  Keywords: netbox,netbox-plugin,docker
9
9
  Classifier: Programming Language :: Python :: 3
10
- Requires-Python: >=3.11
10
+ Requires-Python: >=3.12
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Dynamic: license-file
@@ -44,7 +44,7 @@ Once the plugin and webhooks are installed, you can:
44
44
  4. Manage the container status, start, stop, restart.
45
45
 
46
46
 
47
- > [!NOTE]
47
+ > [!NOTE]
48
48
  > Adding a host with curl needs a specific `Origin` HTTP header to make it working. Example :
49
49
  >
50
50
  > ```bash
@@ -67,7 +67,8 @@ Below the compatibility list of the Netbox Docker PLugin and Netbox. Please chos
67
67
  | 4.1.\* | 3.\* |
68
68
  | 4.2.\* | 4.\* |
69
69
  | 4.3.\* | 4.\* |
70
- | >=4.3.7 | >=4.5.1 |
70
+ | >=4.3.7 <4.5.0 | >=4.5.1 <5.\* |
71
+ | >=4.5.0 | >=5.\* |
71
72
 
72
73
  You can follow [the official plugins installation
73
74
  instructions](https://docs.netbox.dev/en/stable/plugins/#installing-plugins).
@@ -30,7 +30,7 @@ Once the plugin and webhooks are installed, you can:
30
30
  4. Manage the container status, start, stop, restart.
31
31
 
32
32
 
33
- > [!NOTE]
33
+ > [!NOTE]
34
34
  > Adding a host with curl needs a specific `Origin` HTTP header to make it working. Example :
35
35
  >
36
36
  > ```bash
@@ -53,7 +53,8 @@ Below the compatibility list of the Netbox Docker PLugin and Netbox. Please chos
53
53
  | 4.1.\* | 3.\* |
54
54
  | 4.2.\* | 4.\* |
55
55
  | 4.3.\* | 4.\* |
56
- | >=4.3.7 | >=4.5.1 |
56
+ | >=4.3.7 <4.5.0 | >=4.5.1 <5.\* |
57
+ | >=4.5.0 | >=5.\* |
57
58
 
58
59
  You can follow [the official plugins installation
59
60
  instructions](https://docs.netbox.dev/en/stable/plugins/#installing-plugins).
@@ -11,9 +11,9 @@ class NetBoxDockerConfig(PluginConfig):
11
11
  name = "netbox_docker_plugin"
12
12
  verbose_name = " NetBox Docker Plugin"
13
13
  description = "Manage Docker"
14
- version = "4.12.0"
14
+ version = "5.0.0"
15
15
  base_url = "docker"
16
- min_version = "4.3.7"
16
+ min_version = "4.5.0"
17
17
  author = "Vincent Simonin <vincent@saashup.com>, David Delassus <david.jose.delassus@gmail.com>"
18
18
  author_email = "vincent@saashup.com, david.jose.delassus@gmail.com"
19
19
 
@@ -32,7 +32,16 @@ class NestedTokenSerializer(WritableNestedSerializer):
32
32
  """Nested Token Serializer Meta class"""
33
33
 
34
34
  model = Token
35
- fields = ["id", "url", "display_url", "display", "key", "write_enabled"]
35
+ fields = [
36
+ "id",
37
+ "url",
38
+ "display_url",
39
+ "display",
40
+ "key",
41
+ "token",
42
+ "version",
43
+ "write_enabled",
44
+ ]
36
45
 
37
46
 
38
47
  class NestedHostSerializer(WritableNestedSerializer):
@@ -4,6 +4,7 @@ from collections.abc import Sequence
4
4
  import json
5
5
  import requests
6
6
  from django.utils.html import escape
7
+ from django.core.serializers.json import DjangoJSONEncoder
7
8
  from rest_framework import status
8
9
  from rest_framework.renderers import JSONRenderer
9
10
  from rest_framework.decorators import action
@@ -103,7 +104,12 @@ class ImageViewSet(NetBoxModelViewSet):
103
104
  data = serializer.data
104
105
  data["force"] = True
105
106
 
106
- resp = requests.post(url, timeout=10, json={"data": data})
107
+ resp = requests.post(
108
+ url,
109
+ timeout=10,
110
+ data=json.dumps({"data": data}, cls=DjangoJSONEncoder),
111
+ headers={"Content-Type": "application/json"}
112
+ )
107
113
  resp.raise_for_status()
108
114
 
109
115
  except requests.HTTPError:
@@ -102,9 +102,7 @@ class Host(NetBoxModel):
102
102
 
103
103
  return super().delete(using, keep_parents)
104
104
 
105
- def save(
106
- self, *args, **kwargs
107
- ):
105
+ def save(self, *args, **kwargs):
108
106
  if self.operation == HostOperationChoices.OPERATION_REFRESH:
109
107
  self.state = HostStateChoices.STATE_REFRESHING
110
108
 
@@ -0,0 +1,103 @@
1
+ """Test force pull image with special custom fields."""
2
+
3
+ import datetime
4
+ import requests_mock
5
+ from django.urls import reverse
6
+ from core.models import ObjectType
7
+ from rest_framework import status
8
+ from users.models import ObjectPermission
9
+ from extras.models import CustomField
10
+ from netbox_docker_plugin.models.host import Host
11
+ from netbox_docker_plugin.models.image import Image
12
+ from netbox_docker_plugin.models.registry import Registry
13
+ from netbox_docker_plugin.tests.base import BaseAPITestCase
14
+
15
+ class ForcePullImageWithSpecialCFTestCase(BaseAPITestCase):
16
+ """Force Pull Image With Special Custom Fields Test Case Class """
17
+
18
+ model = Image
19
+
20
+ """Set up test data method."""
21
+ @classmethod
22
+ def setUpTestData(cls):
23
+ # --- Create a host ---
24
+ cls.host = Host.objects.create(endpoint="http://localhost:8080", name="host1")
25
+
26
+ # --- Create a registry ---
27
+ cls.registry = Registry.objects.filter(name="dockerhub")[0]
28
+
29
+ # --- Create custom fields for Image ---
30
+ ot = ObjectType.objects.get_for_model(Image)
31
+
32
+ cls.cf_date = CustomField.objects.create(
33
+ name="cf_date",
34
+ type="date",
35
+ )
36
+ cls.cf_date.object_types.set([ot])
37
+ cls.cf_date.save()
38
+
39
+ cls.cf_datetime = CustomField.objects.create(
40
+ name="cf_datetime",
41
+ type="datetime",
42
+ )
43
+ cls.cf_datetime.object_types.set([ot])
44
+ cls.cf_datetime.save()
45
+
46
+ # --- Create images ---
47
+ Image.objects.create(
48
+ host=cls.host,
49
+ name="image_date",
50
+ registry=cls.registry,
51
+ custom_field_data={"cf_date": datetime.date.today()}
52
+ )
53
+
54
+ Image.objects.create(
55
+ host=cls.host,
56
+ name="image_datetime",
57
+ registry=cls.registry,
58
+ custom_field_data={"cf_datetime": datetime.datetime.now()}
59
+ )
60
+
61
+ def _add_object_permission(self, image):
62
+ # --- Add object-level permission ---
63
+ obj_perm = ObjectPermission(
64
+ name="Test permission",
65
+ constraints={"pk": image.pk},
66
+ actions=["add"],
67
+ )
68
+ obj_perm.save()
69
+ # pylint: disable=E1101
70
+ obj_perm.users.add(self.user)
71
+ # pylint: disable=E1101
72
+ obj_perm.object_types.add(ObjectType.objects.get_for_model(self.model))
73
+
74
+ def _force_pull_image(self, image):
75
+ # --- Call add object-level permission ---
76
+ self._add_object_permission(image)
77
+ # --- Build image force pull API url ---
78
+ endpoint = reverse(
79
+ viewname=f"plugins-api:{self._get_view_namespace()}:image-force-pull",
80
+ kwargs={"pk": image.pk},
81
+ )
82
+ with requests_mock.Mocker() as m:
83
+ # --- Call API endpoint ---
84
+ m.post(
85
+ "http://localhost:8080/api/engine/images",
86
+ text="{}",
87
+ )
88
+ response = self.client.post(endpoint, **self.header)
89
+ return response
90
+
91
+ def test_force_pull_with_date_custom_field(self):
92
+ """Test force pull image with custom field of type Date."""
93
+ image_date = Image.objects.get(name="image_date")
94
+ response = self._force_pull_image(image_date)
95
+ self.assertHttpStatus(response, status.HTTP_200_OK)
96
+ self.assertEqual(response.data, {"success": True, "payload": {}})
97
+
98
+ def test_force_pull_with_datetime_custom_field(self):
99
+ """Test force pull image with custom field of type DateTime."""
100
+ image_datetime = Image.objects.get(name="image_datetime")
101
+ response = self._force_pull_image(image_datetime)
102
+ self.assertHttpStatus(response, status.HTTP_200_OK)
103
+ self.assertEqual(response.data, {"success": True, "payload": {}})
@@ -25,7 +25,7 @@ webhooks = [
25
25
  "type_job_start": False,
26
26
  "type_job_end": False,
27
27
  "http_method": "GET",
28
- "payload_url": "{{ data.endpoint }}/api/engine/endpoint?id={{ data.id }}&token={{ data.token.key }}&endpoint={{ data.endpoint }}&url={{ data.netbox_base_url }}",
28
+ "payload_url": "{{ data.endpoint }}/api/engine/endpoint?id={{ data.id }}&token=nbt_{{ data.token.key }}.{{ data.token.token }}&endpoint={{ data.endpoint }}&url={{ data.netbox_base_url }}",
29
29
  "ssl_verification": False,
30
30
  },
31
31
  {
@@ -235,6 +235,14 @@ def create_webhook(app_config, **kwargs):
235
235
  # pylint: disable=E1101
236
236
  eventrule.object_types.set([obj_content_type.pk])
237
237
  eventrule.save()
238
+ else:
239
+ if (
240
+ results[0].http_method != webhook["http_method"]
241
+ or results[0].payload_url != webhook["payload_url"]
242
+ ):
243
+ results[0].http_method = webhook["http_method"]
244
+ results[0].payload_url = webhook["payload_url"]
245
+ results[0].save()
238
246
 
239
247
  return
240
248
 
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-docker-plugin
3
- Version: 4.12.0
3
+ Version: 5.0.0
4
4
  Summary: Manage Docker with Netbox & style.
5
5
  Author-email: Vincent Simonin <vincent@saashup.com>, David Delassus <david.jose.delassus@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/SaaShup/netbox-docker-plugin
7
7
  Project-URL: Bug Tracker, https://github.com/SaaShup/netbox-docker-plugin/issues
8
8
  Keywords: netbox,netbox-plugin,docker
9
9
  Classifier: Programming Language :: Python :: 3
10
- Requires-Python: >=3.11
10
+ Requires-Python: >=3.12
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Dynamic: license-file
@@ -44,7 +44,7 @@ Once the plugin and webhooks are installed, you can:
44
44
  4. Manage the container status, start, stop, restart.
45
45
 
46
46
 
47
- > [!NOTE]
47
+ > [!NOTE]
48
48
  > Adding a host with curl needs a specific `Origin` HTTP header to make it working. Example :
49
49
  >
50
50
  > ```bash
@@ -67,7 +67,8 @@ Below the compatibility list of the Netbox Docker PLugin and Netbox. Please chos
67
67
  | 4.1.\* | 3.\* |
68
68
  | 4.2.\* | 4.\* |
69
69
  | 4.3.\* | 4.\* |
70
- | >=4.3.7 | >=4.5.1 |
70
+ | >=4.3.7 <4.5.0 | >=4.5.1 <5.\* |
71
+ | >=4.5.0 | >=5.\* |
71
72
 
72
73
  You can follow [the official plugins installation
73
74
  instructions](https://docs.netbox.dev/en/stable/plugins/#installing-plugins).
@@ -110,6 +110,7 @@ netbox_docker_plugin/tests/host/test_host_api.py
110
110
  netbox_docker_plugin/tests/host/test_host_views.py
111
111
  netbox_docker_plugin/tests/host/test_replace_password.py
112
112
  netbox_docker_plugin/tests/image/__init__.py
113
+ netbox_docker_plugin/tests/image/test_force_pull_image_with_special_cf.py
113
114
  netbox_docker_plugin/tests/image/test_image_api.py
114
115
  netbox_docker_plugin/tests/image/test_image_views.py
115
116
  netbox_docker_plugin/tests/network/__init__.py
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "netbox-docker-plugin"
7
- version = "4.12.0"
7
+ version = "5.0.0"
8
8
  authors = [
9
9
  { name="Vincent Simonin", email="vincent@saashup.com" },
10
10
  { name="David Delassus", email="david.jose.delassus@gmail.com" }
11
11
  ]
12
12
  description = "Manage Docker with Netbox & style."
13
13
  readme = "README.md"
14
- requires-python = ">=3.11"
14
+ requires-python = ">=3.12"
15
15
  classifiers = [
16
16
  "Programming Language :: Python :: 3",
17
17
  ]