netbox-docker-plugin 5.0.1__tar.gz → 5.1.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 (144) hide show
  1. {netbox_docker_plugin-5.0.1/netbox_docker_plugin.egg-info → netbox_docker_plugin-5.1.0}/PKG-INFO +1 -1
  2. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/__init__.py +1 -1
  3. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/api/serializers.py +8 -0
  4. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/container.py +23 -0
  5. netbox_docker_plugin-5.1.0/netbox_docker_plugin/migrations/1043_container_cap_drop_container_extra_hosts_and_more.py +60 -0
  6. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/container.py +58 -0
  7. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/image.py +1 -1
  8. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tables.py +4 -0
  9. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container.html +16 -0
  10. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/test_container_api.py +18 -0
  11. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/test_container_views.py +5 -1
  12. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0/netbox_docker_plugin.egg-info}/PKG-INFO +1 -1
  13. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin.egg-info/SOURCES.txt +1 -0
  14. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/pyproject.toml +1 -1
  15. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/LICENSE +0 -0
  16. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/MANIFEST.in +0 -0
  17. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/README.md +0 -0
  18. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/api/__init__.py +0 -0
  19. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/api/renderers.py +0 -0
  20. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/api/urls.py +0 -0
  21. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/api/views.py +0 -0
  22. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/filtersets.py +0 -0
  23. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/__init__.py +0 -0
  24. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/bind.py +0 -0
  25. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/device.py +0 -0
  26. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/env.py +0 -0
  27. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/host.py +0 -0
  28. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/image.py +0 -0
  29. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/label.py +0 -0
  30. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/log_driver_option.py +0 -0
  31. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/mount.py +0 -0
  32. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/network.py +0 -0
  33. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/network_setting.py +0 -0
  34. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/port.py +0 -0
  35. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/registry.py +0 -0
  36. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/sysctl.py +0 -0
  37. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/forms/volume.py +0 -0
  38. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0001_initial.py +0 -0
  39. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0002_image.py +0 -0
  40. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0003_image_size.py +0 -0
  41. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0004_volume.py +0 -0
  42. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0005_network.py +0 -0
  43. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0006_container_port_mount_label_env_and_more.py +0 -0
  44. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0007_remove_container_netbox_docker_plugin_container_unique_name_host__and_more.py +0 -0
  45. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0008_alter_network_unique_together_network_networkid_and_more.py +0 -0
  46. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0009_remove_container_network_networksettings_and_more.py +0 -0
  47. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0010_container_containerid_and_more.py +0 -0
  48. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0011_host_token.py +0 -0
  49. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0012_host_state.py +0 -0
  50. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0013_host_netbox_url.py +0 -0
  51. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0014_container_operation.py +0 -0
  52. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0015_remove_mount_netbox_docker_plugin_mount_unique_volume_and_more.py +0 -0
  53. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0016_alter_env_value.py +0 -0
  54. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0017_network_state.py +0 -0
  55. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0018_alter_mount_volume_alter_networksetting_network.py +0 -0
  56. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0019_host_agent_version_host_docker_api_version.py +0 -0
  57. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0020_container_hostname.py +0 -0
  58. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0021_registry_and_more.py +0 -0
  59. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0022_bind_bind_netbox_docker_plugin_bind_unique_bind.py +0 -0
  60. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0023_delete_hosts.py +0 -0
  61. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0024_registry_host_alter_registry_name_and_more.py +0 -0
  62. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0025_alter_image_version.py +0 -0
  63. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0026_image_digest.py +0 -0
  64. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0027_container_restart_policy.py +0 -0
  65. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0028_mount_and_bind_read_only.py +0 -0
  66. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0029_alter_container_state.py +0 -0
  67. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0030_alter_container_containerid_alter_container_hostname_and_more.py +0 -0
  68. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0031_container_cap_add.py +0 -0
  69. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0032_device_and_more.py +0 -0
  70. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0033_host_operation.py +0 -0
  71. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0034_volume_max_size.py +0 -0
  72. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0035_container_log_driver_logdriveroption.py +0 -0
  73. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0036_alter_container_log_driver.py +0 -0
  74. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0037_alter_env_value.py +0 -0
  75. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/0038_container_cmd.py +0 -0
  76. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/1039_alter_port_public_port.py +0 -0
  77. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/1040_alter_container_log_driver.py +0 -0
  78. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/1041_sysctl.py +0 -0
  79. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/1042_registry_username_max_length.py +0 -0
  80. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/migrations/__init__.py +0 -0
  81. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/__init__.py +0 -0
  82. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/host.py +0 -0
  83. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/network.py +0 -0
  84. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/registry.py +0 -0
  85. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/models/volume.py +0 -0
  86. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/navigation.py +0 -0
  87. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/signals.py +0 -0
  88. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-exec.html +0 -0
  89. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-layout.html +0 -0
  90. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-logs.html +0 -0
  91. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/host-graph.html +0 -0
  92. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/host.html +0 -0
  93. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/image.html +0 -0
  94. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/network.html +0 -0
  95. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/registry.html +0 -0
  96. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templates/netbox_docker_plugin/volume.html +0 -0
  97. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templatetags/__init__.py +0 -0
  98. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/templatetags/host.py +0 -0
  99. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/__init__.py +0 -0
  100. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/base.py +0 -0
  101. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/__init__.py +0 -0
  102. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/test_container_actions.py +0 -0
  103. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/test_container_api_exec.py +0 -0
  104. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/test_container_operation_view.py +0 -0
  105. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/container/test_container_validation.py +0 -0
  106. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/host/__init__.py +0 -0
  107. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/host/test_host_api.py +0 -0
  108. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/host/test_host_views.py +0 -0
  109. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/host/test_replace_password.py +0 -0
  110. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/image/__init__.py +0 -0
  111. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/image/test_force_pull_image_with_special_cf.py +0 -0
  112. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/image/test_image_api.py +0 -0
  113. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/image/test_image_views.py +0 -0
  114. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/network/__init__.py +0 -0
  115. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/network/test_network_api.py +0 -0
  116. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/network/test_network_views.py +0 -0
  117. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/registry/__init__.py +0 -0
  118. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/registry/test_registry_api.py +0 -0
  119. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/registry/test_registry_views.py +0 -0
  120. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/test_init.py +0 -0
  121. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/volume/__init__.py +0 -0
  122. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/volume/test_volume_api.py +0 -0
  123. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/tests/volume/test_volume_views.py +0 -0
  124. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/urls.py +0 -0
  125. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/utilities/__init__.py +0 -0
  126. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/__init__.py +0 -0
  127. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/bind.py +0 -0
  128. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/container.py +0 -0
  129. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/device.py +0 -0
  130. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/env.py +0 -0
  131. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/host.py +0 -0
  132. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/image.py +0 -0
  133. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/label.py +0 -0
  134. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/log_driver_option.py +0 -0
  135. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/mount.py +0 -0
  136. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/network.py +0 -0
  137. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/network_setting.py +0 -0
  138. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/port.py +0 -0
  139. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/registry.py +0 -0
  140. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/sysctl.py +0 -0
  141. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin/views/volume.py +0 -0
  142. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin.egg-info/dependency_links.txt +0 -0
  143. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/netbox_docker_plugin.egg-info/top_level.txt +0 -0
  144. {netbox_docker_plugin-5.0.1 → netbox_docker_plugin-5.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-docker-plugin
3
- Version: 5.0.1
3
+ Version: 5.1.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
@@ -11,7 +11,7 @@ class NetBoxDockerConfig(PluginConfig):
11
11
  name = "netbox_docker_plugin"
12
12
  verbose_name = " NetBox Docker Plugin"
13
13
  description = "Manage Docker"
14
- version = "5.0.1"
14
+ version = "5.1.0"
15
15
  base_url = "docker"
16
16
  min_version = "4.5.0"
17
17
  author = "Vincent Simonin <vincent@saashup.com>, David Delassus <david.jose.delassus@gmail.com>"
@@ -175,7 +175,11 @@ class NestedContainerSerializer(WritableNestedSerializer):
175
175
  "operation",
176
176
  "hostname",
177
177
  "cap_add",
178
+ "cap_drop",
178
179
  "log_driver",
180
+ "secOpt",
181
+ "pid_mode",
182
+ "extra_hosts",
179
183
  "cmd",
180
184
  )
181
185
 
@@ -481,6 +485,10 @@ class ContainerSerializer(NetBoxModelSerializer):
481
485
  "hostname",
482
486
  "restart_policy",
483
487
  "cap_add",
488
+ "cap_drop",
489
+ "secOpt",
490
+ "pid_mode",
491
+ "extra_hosts",
484
492
  "cmd",
485
493
  "ports",
486
494
  "env",
@@ -19,6 +19,7 @@ from ..models.container import (
19
19
  Container,
20
20
  ContainerRestartPolicyChoices,
21
21
  ContainerCapAddChoices,
22
+ ContainerCapDropChoices,
22
23
  )
23
24
  from ..models.image import Image
24
25
 
@@ -36,6 +37,9 @@ class ContainerForm(NetBoxModelForm):
36
37
  query_params={"host_id": "$host"},
37
38
  )
38
39
  cap_add = forms.MultipleChoiceField(choices=ContainerCapAddChoices, required=False)
40
+ cap_drop = forms.MultipleChoiceField(
41
+ choices=ContainerCapDropChoices, required=False
42
+ )
39
43
 
40
44
  class Meta:
41
45
  """Container form definition Meta class"""
@@ -48,6 +52,10 @@ class ContainerForm(NetBoxModelForm):
48
52
  "hostname",
49
53
  "restart_policy",
50
54
  "cap_add",
55
+ "cap_drop",
56
+ "secOpt",
57
+ "pid_mode",
58
+ "extra_hosts",
51
59
  "log_driver",
52
60
  "cmd",
53
61
  "tags",
@@ -59,6 +67,10 @@ class ContainerForm(NetBoxModelForm):
59
67
  "hostname": "Hostname",
60
68
  "restart_policy": "Restart Policy",
61
69
  "cap_add": "Add Host capabilities",
70
+ "cap_drop": "Drop Host capabilities",
71
+ "secOpt": "Security options (separate by comma)",
72
+ "pid_mode": "PID mode",
73
+ "extra_hosts": "Extra hosts (separate by comma). Specified in the form hostname:IP",
62
74
  "log_driver": "Logging driver",
63
75
  "cmd": "Command",
64
76
  }
@@ -73,6 +85,9 @@ class ContainerEditForm(NetBoxModelForm):
73
85
  required=True,
74
86
  )
75
87
  cap_add = forms.MultipleChoiceField(choices=ContainerCapAddChoices, required=False)
88
+ cap_drop = forms.MultipleChoiceField(
89
+ choices=ContainerCapDropChoices, required=False
90
+ )
76
91
 
77
92
  class Meta:
78
93
  """Container form definition Meta class"""
@@ -84,6 +99,10 @@ class ContainerEditForm(NetBoxModelForm):
84
99
  "hostname",
85
100
  "restart_policy",
86
101
  "cap_add",
102
+ "cap_drop",
103
+ "secOpt",
104
+ "pid_mode",
105
+ "extra_hosts",
87
106
  "log_driver",
88
107
  "cmd",
89
108
  "tags",
@@ -94,6 +113,10 @@ class ContainerEditForm(NetBoxModelForm):
94
113
  "hostname": "Hostname",
95
114
  "restart_policy": "Restart Policy",
96
115
  "cap_add": "Add Host capabilities",
116
+ "cap_drop": "Drop Host capabilities",
117
+ "secOpt": "Security options (separate by comma)",
118
+ "pid_mode": "PID mode",
119
+ "extra_hosts": "Extra hosts (separate by comma). Specified in the form hostname:IP",
97
120
  "log_driver": "Logging driver",
98
121
  "cmd": "Command",
99
122
  }
@@ -0,0 +1,60 @@
1
+ # pylint: disable=C0103
2
+ """Migration file"""
3
+
4
+ import django.contrib.postgres.fields
5
+ import django.core.validators
6
+ from django.db import migrations, models
7
+
8
+
9
+ class Migration(migrations.Migration):
10
+ """Migration file"""
11
+
12
+ dependencies = [
13
+ ("netbox_docker_plugin", "1042_registry_username_max_length"),
14
+ ]
15
+
16
+ operations = [
17
+ migrations.AddField(
18
+ model_name="container",
19
+ name="cap_drop",
20
+ field=django.contrib.postgres.fields.ArrayField(
21
+ base_field=models.CharField(blank=True, max_length=32, null=True),
22
+ blank=True,
23
+ null=True,
24
+ ),
25
+ ),
26
+ migrations.AddField(
27
+ model_name="container",
28
+ name="extra_hosts",
29
+ field=django.contrib.postgres.fields.ArrayField(
30
+ base_field=models.CharField(blank=True, max_length=512, null=True),
31
+ blank=True,
32
+ null=True,
33
+ ),
34
+ ),
35
+ migrations.AddField(
36
+ model_name="container",
37
+ name="pid_mode",
38
+ field=models.CharField(blank=True, max_length=512, null=True),
39
+ ),
40
+ migrations.AddField(
41
+ model_name="container",
42
+ name="secOpt",
43
+ field=django.contrib.postgres.fields.ArrayField(
44
+ base_field=models.CharField(blank=True, max_length=512, null=True),
45
+ blank=True,
46
+ null=True,
47
+ ),
48
+ ),
49
+ migrations.AlterField(
50
+ model_name="image",
51
+ name="size",
52
+ field=models.IntegerField(
53
+ default=0,
54
+ validators=[
55
+ django.core.validators.MinValueValidator(limit_value=0),
56
+ django.core.validators.MaxValueValidator(limit_value=8192),
57
+ ],
58
+ ),
59
+ ),
60
+ ]
@@ -110,6 +110,41 @@ class ContainerCapAddChoices(ChoiceSet):
110
110
  ("SYS_PTRACE", "SYS_PTRACE"),
111
111
  ("SYS_RESOURCE", "SYS_RESOURCE"),
112
112
  ("SYS_NICE", "SYS_NICE"),
113
+ ("ALL", "ALL"),
114
+ ]
115
+
116
+
117
+ class ContainerCapDropChoices(ChoiceSet):
118
+ """cap-drop choices definition class"""
119
+
120
+ key = "Container.cap_drop"
121
+
122
+ CHOICES = [
123
+ ("AUDIT_WRITE", "AUDIT_WRITE"),
124
+ ("CHOWN", "CHOWN"),
125
+ ("DAC_OVERRIDE", "DAC_OVERRIDE"),
126
+ ("FOWNER", "FOWNER"),
127
+ ("FSETID", "FSETID"),
128
+ ("KILL", "KILL"),
129
+ ("MKNOD", "MKNOD"),
130
+ ("NET_BIND_SERVICE", "NET_BIND_SERVICE"),
131
+ ("NET_RAW", "NET_RAW"),
132
+ ("SETFCAP", "SETFCAP"),
133
+ ("SETGID", "SETGID"),
134
+ ("SETPCAP", "SETPCAP"),
135
+ ("SETUID", "SETUID"),
136
+ ("SYS_CHROOT", "SYS_CHROOT"),
137
+ ("ALL", "ALL"),
138
+ ]
139
+
140
+
141
+ class PidModeChoices(ChoiceSet):
142
+ """Pid mode choices definition class"""
143
+
144
+ key = "Container.pid_mode"
145
+
146
+ CHOICES = [
147
+ ("host", "host"),
113
148
  ]
114
149
 
115
150
 
@@ -170,11 +205,34 @@ class Container(NetBoxModel):
170
205
  null=True,
171
206
  blank=True,
172
207
  )
208
+ cap_drop = ArrayField(
209
+ models.CharField(
210
+ max_length=32, blank=True, null=True, choices=ContainerCapDropChoices
211
+ ),
212
+ null=True,
213
+ blank=True,
214
+ )
173
215
  log_driver = models.CharField(
174
216
  max_length=32,
175
217
  null=True,
176
218
  blank=True,
177
219
  )
220
+ secOpt = ArrayField(
221
+ models.CharField(max_length=512, blank=True, null=True),
222
+ null=True,
223
+ blank=True,
224
+ )
225
+ pid_mode = models.CharField(
226
+ max_length=512,
227
+ choices=PidModeChoices,
228
+ null=True,
229
+ blank=True,
230
+ )
231
+ extra_hosts = ArrayField(
232
+ models.CharField(max_length=512, blank=True, null=True),
233
+ null=True,
234
+ blank=True,
235
+ )
178
236
  cmd = ArrayField(
179
237
  models.CharField(max_length=1024, blank=True, null=True),
180
238
  null=True,
@@ -41,7 +41,7 @@ class Image(NetBoxModel):
41
41
  default=0,
42
42
  validators=[
43
43
  MinValueValidator(limit_value=0),
44
- MaxValueValidator(limit_value=4096),
44
+ MaxValueValidator(limit_value=8192),
45
45
  ],
46
46
  )
47
47
  ImageID = models.CharField(
@@ -385,6 +385,10 @@ class ContainerTable(NetBoxTable):
385
385
  "hostname",
386
386
  "restart_policy",
387
387
  "cap_add",
388
+ "cap_drop",
389
+ "secOpt",
390
+ "pid_mode",
391
+ "extra_hosts",
388
392
  "cmd",
389
393
  "port_count",
390
394
  "mount_count",
@@ -40,6 +40,22 @@
40
40
  <th scope="row">Host Capacities added</th>
41
41
  <td>{{ object.cap_add }}</td>
42
42
  </tr>
43
+ <tr>
44
+ <th scope="row">Host Capacities dropped</th>
45
+ <td>{{ object.cap_drop }}</td>
46
+ </tr>
47
+ <tr>
48
+ <th scope="row">Security options</th>
49
+ <td>{{ object.secOpt }}</td>
50
+ </tr>
51
+ <tr>
52
+ <th scope="row">PID mode</th>
53
+ <td>{{ object.pid_mode|placeholder }}</td>
54
+ </tr>
55
+ <tr>
56
+ <th scope="row">Extra hosts added</th>
57
+ <td>{{ object.extra_hosts }}</td>
58
+ </tr>
43
59
  <tr>
44
60
  <th scope="row">Status</th>
45
61
  <td>{{ object.status|placeholder }}</td>
@@ -30,14 +30,18 @@ class ContainerApiTestCase(
30
30
  brief_fields = [
31
31
  "ContainerID",
32
32
  "cap_add",
33
+ "cap_drop",
33
34
  "cmd",
34
35
  "display",
36
+ "extra_hosts",
35
37
  "hostname",
36
38
  "id",
37
39
  "log_driver",
38
40
  "name",
39
41
  "operation",
42
+ "pid_mode",
40
43
  "restart_policy",
44
+ "secOpt",
41
45
  "state",
42
46
  "status",
43
47
  "url",
@@ -195,6 +199,20 @@ class ContainerApiTestCase(
195
199
  "cap_add": ["NET_ADMIN"],
196
200
  "cmd": ["cat", "/etc/hosts"],
197
201
  },
202
+ {
203
+ "host": host2.pk,
204
+ "image": image2.pk,
205
+ "name": "container11",
206
+ "ports": [],
207
+ "env": [],
208
+ "labels": [],
209
+ "sysctls": [],
210
+ "cap_add": [],
211
+ "cap_drop": ["FSETID", "MKNOD"],
212
+ "pid_mode": "host",
213
+ "extra_hosts": ["test1:192.168.1.2", "test2:192.168.1.3"],
214
+ "secOpt": ["apparmor:unconfined"],
215
+ },
198
216
  ]
199
217
 
200
218
  def test_that_patch_overwrites_data_only_when_explicitly_set(self):
@@ -67,8 +67,12 @@ class ContainerViewsTestCase(
67
67
  "image": image1.pk,
68
68
  "restart_policy": "unless-stopped",
69
69
  "cap_add": ["NET_ADMIN"],
70
+ "cap_drop": ["FSETID", "MKNOD"],
71
+ "pid_mode": "host",
72
+ "extra_hosts": "test1:192.168.1.2,test2:192.168.1.3",
73
+ "secOpt": "apparmor:unconfined",
70
74
  "log_driver": "syslog",
71
- "cmd": "ls,-al"
75
+ "cmd": "ls,-al",
72
76
  }
73
77
 
74
78
  cls.csv_data = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-docker-plugin
3
- Version: 5.0.1
3
+ Version: 5.1.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
@@ -75,6 +75,7 @@ netbox_docker_plugin/migrations/1039_alter_port_public_port.py
75
75
  netbox_docker_plugin/migrations/1040_alter_container_log_driver.py
76
76
  netbox_docker_plugin/migrations/1041_sysctl.py
77
77
  netbox_docker_plugin/migrations/1042_registry_username_max_length.py
78
+ netbox_docker_plugin/migrations/1043_container_cap_drop_container_extra_hosts_and_more.py
78
79
  netbox_docker_plugin/migrations/__init__.py
79
80
  netbox_docker_plugin/models/__init__.py
80
81
  netbox_docker_plugin/models/container.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "netbox-docker-plugin"
7
- version = "5.0.1"
7
+ version = "5.1.0"
8
8
  authors = [
9
9
  { name="Vincent Simonin", email="vincent@saashup.com" },
10
10
  { name="David Delassus", email="david.jose.delassus@gmail.com" }