netbox-docker-plugin 4.5.0__tar.gz → 4.6.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.
- {netbox_docker_plugin-4.5.0/netbox_docker_plugin.egg-info → netbox_docker_plugin-4.6.0}/PKG-INFO +14 -5
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/README.md +13 -4
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/__init__.py +2 -2
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-logs.html +1 -1
- netbox_docker_plugin-4.6.0/netbox_docker_plugin/templates/netbox_docker_plugin/container.html +199 -0
- netbox_docker_plugin-4.6.0/netbox_docker_plugin/templates/netbox_docker_plugin/host.html +144 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templates/netbox_docker_plugin/image.html +36 -41
- netbox_docker_plugin-4.6.0/netbox_docker_plugin/templates/netbox_docker_plugin/network.html +44 -0
- netbox_docker_plugin-4.6.0/netbox_docker_plugin/templates/netbox_docker_plugin/registry.html +61 -0
- netbox_docker_plugin-4.6.0/netbox_docker_plugin/templates/netbox_docker_plugin/volume.html +46 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/host.py +8 -26
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/registry.py +8 -9
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0/netbox_docker_plugin.egg-info}/PKG-INFO +14 -5
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/pyproject.toml +1 -1
- netbox_docker_plugin-4.5.0/netbox_docker_plugin/templates/netbox_docker_plugin/container.html +0 -212
- netbox_docker_plugin-4.5.0/netbox_docker_plugin/templates/netbox_docker_plugin/host.html +0 -142
- netbox_docker_plugin-4.5.0/netbox_docker_plugin/templates/netbox_docker_plugin/network.html +0 -49
- netbox_docker_plugin-4.5.0/netbox_docker_plugin/templates/netbox_docker_plugin/registry.html +0 -64
- netbox_docker_plugin-4.5.0/netbox_docker_plugin/templates/netbox_docker_plugin/volume.html +0 -51
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/LICENSE +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/MANIFEST.in +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/api/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/api/renderers.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/api/serializers.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/api/urls.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/api/views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/filtersets.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/bind.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/container.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/device.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/env.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/host.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/image.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/label.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/log_driver_option.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/mount.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/network.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/network_setting.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/port.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/registry.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/forms/volume.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0001_initial.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0002_image.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0003_image_size.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0004_volume.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0005_network.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0006_container_port_mount_label_env_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0007_remove_container_netbox_docker_plugin_container_unique_name_host__and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0008_alter_network_unique_together_network_networkid_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0009_remove_container_network_networksettings_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0010_container_containerid_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0011_host_token.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0012_host_state.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0013_host_netbox_url.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0014_container_operation.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0015_remove_mount_netbox_docker_plugin_mount_unique_volume_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0016_alter_env_value.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0017_network_state.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0018_alter_mount_volume_alter_networksetting_network.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0019_host_agent_version_host_docker_api_version.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0020_container_hostname.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0021_registry_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0022_bind_bind_netbox_docker_plugin_bind_unique_bind.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0023_delete_hosts.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0024_registry_host_alter_registry_name_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0025_alter_image_version.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0026_image_digest.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0027_container_restart_policy.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0028_mount_and_bind_read_only.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0029_alter_container_state.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0030_alter_container_containerid_alter_container_hostname_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0031_container_cap_add.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0032_device_and_more.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0033_host_operation.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0034_volume_max_size.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0035_container_log_driver_logdriveroption.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0036_alter_container_log_driver.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0037_alter_env_value.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/0038_container_cmd.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/1039_alter_port_public_port.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/1040_alter_container_log_driver.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/migrations/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/container.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/host.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/image.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/network.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/registry.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/models/volume.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/navigation.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/signals.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tables.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-exec.html +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templates/netbox_docker_plugin/container-layout.html +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templates/netbox_docker_plugin/host-graph.html +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templatetags/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/templatetags/host.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/base.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/test_container_actions.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/test_container_api.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/test_container_api_exec.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/test_container_operation_view.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/test_container_validation.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/container/test_container_views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/host/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/host/test_host_api.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/host/test_host_views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/host/test_replace_password.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/image/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/image/test_image_api.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/image/test_image_views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/network/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/network/test_network_api.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/network/test_network_views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/registry/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/registry/test_registry_api.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/registry/test_registry_views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/test_init.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/volume/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/volume/test_volume_api.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/tests/volume/test_volume_views.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/urls.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/utilities/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/__init__.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/bind.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/container.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/device.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/env.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/image.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/label.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/log_driver_option.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/mount.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/network.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/network_setting.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/port.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin/views/volume.py +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin.egg-info/SOURCES.txt +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin.egg-info/dependency_links.txt +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/netbox_docker_plugin.egg-info/top_level.txt +0 -0
- {netbox_docker_plugin-4.5.0 → netbox_docker_plugin-4.6.0}/setup.cfg +0 -0
{netbox_docker_plugin-4.5.0/netbox_docker_plugin.egg-info → netbox_docker_plugin-4.6.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: netbox-docker-plugin
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.6.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
|
|
@@ -43,10 +43,18 @@ Once the plugin and webhooks are installed, you can:
|
|
|
43
43
|
labels, mount volumes, set networks.
|
|
44
44
|
4. Manage the container status, start, stop, restart.
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
|
|
47
|
+
> [!NOTE]
|
|
48
|
+
> Adding a host with curl needs a specific `Origin` HTTP header to make it working. Example :
|
|
49
|
+
>
|
|
50
|
+
> ```bash
|
|
51
|
+
> curl \
|
|
52
|
+
> -H "Authorization: Token YOUR-NETBOX-APIKEY" \
|
|
53
|
+
> -H "Content-Type: application/json" \
|
|
54
|
+
> -H "Origin: https://YOUR-NETBOX-HOST" \
|
|
55
|
+
> -X POST https://YOUR-NETBOX-HOST/api/plugins/docker/hosts/ \
|
|
56
|
+
> -d '{"name": "YOUR-AGENT-NAME", "endpoint": "https://AGENT-USER:PASSWORD@YOUR-AGENT-HOST:PORT"}'
|
|
57
|
+
> ```
|
|
50
58
|
|
|
51
59
|
## Installation
|
|
52
60
|
|
|
@@ -59,6 +67,7 @@ Below the compatibility list of the Netbox Docker PLugin and Netbox. Please chos
|
|
|
59
67
|
| 4.1.\* | 3.\* |
|
|
60
68
|
| 4.2.\* | 4.\* |
|
|
61
69
|
| 4.3.\* | 4.\* |
|
|
70
|
+
| >=4.3.7 | >=4.5.1 |
|
|
62
71
|
|
|
63
72
|
You can follow [the official plugins installation
|
|
64
73
|
instructions](https://docs.netbox.dev/en/stable/plugins/#installing-plugins).
|
|
@@ -29,10 +29,18 @@ Once the plugin and webhooks are installed, you can:
|
|
|
29
29
|
labels, mount volumes, set networks.
|
|
30
30
|
4. Manage the container status, start, stop, restart.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
|
|
33
|
+
> [!NOTE]
|
|
34
|
+
> Adding a host with curl needs a specific `Origin` HTTP header to make it working. Example :
|
|
35
|
+
>
|
|
36
|
+
> ```bash
|
|
37
|
+
> curl \
|
|
38
|
+
> -H "Authorization: Token YOUR-NETBOX-APIKEY" \
|
|
39
|
+
> -H "Content-Type: application/json" \
|
|
40
|
+
> -H "Origin: https://YOUR-NETBOX-HOST" \
|
|
41
|
+
> -X POST https://YOUR-NETBOX-HOST/api/plugins/docker/hosts/ \
|
|
42
|
+
> -d '{"name": "YOUR-AGENT-NAME", "endpoint": "https://AGENT-USER:PASSWORD@YOUR-AGENT-HOST:PORT"}'
|
|
43
|
+
> ```
|
|
36
44
|
|
|
37
45
|
## Installation
|
|
38
46
|
|
|
@@ -45,6 +53,7 @@ Below the compatibility list of the Netbox Docker PLugin and Netbox. Please chos
|
|
|
45
53
|
| 4.1.\* | 3.\* |
|
|
46
54
|
| 4.2.\* | 4.\* |
|
|
47
55
|
| 4.3.\* | 4.\* |
|
|
56
|
+
| >=4.3.7 | >=4.5.1 |
|
|
48
57
|
|
|
49
58
|
You can follow [the official plugins installation
|
|
50
59
|
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.
|
|
14
|
+
version = "4.6.0"
|
|
15
15
|
base_url = "docker"
|
|
16
|
-
min_version = "4.
|
|
16
|
+
min_version = "4.3.7"
|
|
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
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<div class="col col-md-12">
|
|
8
8
|
<div class="card">
|
|
9
9
|
<div class="card-header d-flex">
|
|
10
|
-
<
|
|
10
|
+
<h2 class="flex-grow-1">Logs</h2>
|
|
11
11
|
<div>
|
|
12
12
|
<button id="container-logs-button" type="button" class="btn btn-primary">
|
|
13
13
|
<i id="container-logs-cb" class="mdi mdi-checkbox-marked"></i> Follow logs
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
{% extends "netbox_docker_plugin/container-layout.html" %}
|
|
2
|
+
|
|
3
|
+
{% load plugins %}
|
|
4
|
+
|
|
5
|
+
{% block content %}
|
|
6
|
+
<div class="row mb-3">
|
|
7
|
+
<div class="col col-md-6">
|
|
8
|
+
<div class="card">
|
|
9
|
+
<h2 class="card-header">Container</h2>
|
|
10
|
+
<table class="table table-hover attr-table">
|
|
11
|
+
<tr>
|
|
12
|
+
<th scope="row">Host</th>
|
|
13
|
+
<td><a href="{{ object.host.get_absolute_url }}">{{ object.host }}</a></td>
|
|
14
|
+
</tr>
|
|
15
|
+
<tr>
|
|
16
|
+
<th scope="row">Image</th>
|
|
17
|
+
<td><a href="{{ object.image.get_absolute_url }}">{{ object.image }}</a></td>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<th scope="row">Name</th>
|
|
21
|
+
<td>{{ object.name }}</td>
|
|
22
|
+
</tr>
|
|
23
|
+
<tr>
|
|
24
|
+
<th scope="row">ContainerID</th>
|
|
25
|
+
<td>{{ object.ContainerID|placeholder }}</td>
|
|
26
|
+
</tr>
|
|
27
|
+
<tr>
|
|
28
|
+
<th scope="row">Hostname</th>
|
|
29
|
+
<td>{{ object.hostname|placeholder }}</td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<th scope="row">State</th>
|
|
33
|
+
<td>{{ object.get_state_display }}</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<tr>
|
|
36
|
+
<th scope="row">Restart Policy</th>
|
|
37
|
+
<td>{{ object.get_restart_policy_display }}</td>
|
|
38
|
+
</tr>
|
|
39
|
+
<tr>
|
|
40
|
+
<th scope="row">Host Capacities added</th>
|
|
41
|
+
<td>{{ object.cap_add }}</td>
|
|
42
|
+
</tr>
|
|
43
|
+
<tr>
|
|
44
|
+
<th scope="row">Status</th>
|
|
45
|
+
<td>{{ object.status|placeholder }}</td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<th scope="row">Operation</th>
|
|
49
|
+
<td>{{ object.get_operation_display }}</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr>
|
|
52
|
+
<th scope="row">Logging driver</th>
|
|
53
|
+
<td>{{ object.log_driver }}</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr>
|
|
56
|
+
<th scope="row">Command</th>
|
|
57
|
+
<td>{{ object.cmd }}</td>
|
|
58
|
+
</tr>
|
|
59
|
+
</table>
|
|
60
|
+
</div>
|
|
61
|
+
{% include 'inc/panels/custom_fields.html' %}
|
|
62
|
+
{% include 'inc/panels/tags.html' %}
|
|
63
|
+
{% plugin_left_page object %}
|
|
64
|
+
</div>
|
|
65
|
+
<div class="col col-md-6">
|
|
66
|
+
<div class="card">
|
|
67
|
+
<h2 class="card-header">
|
|
68
|
+
Label
|
|
69
|
+
{% if perms.netbox_docker_plugin.add_env %}
|
|
70
|
+
<div class="card-actions">
|
|
71
|
+
<a href="{% url 'plugins:netbox_docker_plugin:label_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
72
|
+
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Add a Label
|
|
73
|
+
</a>
|
|
74
|
+
</div>
|
|
75
|
+
{% endif %}
|
|
76
|
+
</h2>
|
|
77
|
+
{% htmx_table 'plugins:netbox_docker_plugin:label_list' container_id=object.pk %}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div class="row mb-3">
|
|
83
|
+
<div class="col col-md-6">
|
|
84
|
+
<div class="card">
|
|
85
|
+
<h2 class="card-header">
|
|
86
|
+
Environment Variables
|
|
87
|
+
{% if perms.netbox_docker_plugin.add_env %}
|
|
88
|
+
<div class="card-actions">
|
|
89
|
+
<a href="{% url 'plugins:netbox_docker_plugin:env_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
90
|
+
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Add an Env Variable
|
|
91
|
+
</a>
|
|
92
|
+
</div>
|
|
93
|
+
{% endif %}
|
|
94
|
+
</h2>
|
|
95
|
+
{% htmx_table 'plugins:netbox_docker_plugin:env_list' container_id=object.pk %}
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div class="row mb-3">
|
|
101
|
+
<div class="col col-md-6">
|
|
102
|
+
<div class="card">
|
|
103
|
+
<h2 class="card-header">
|
|
104
|
+
Port Mappings
|
|
105
|
+
{% if perms.netbox_docker_plugin.add_env %}
|
|
106
|
+
<div class="card-actions">
|
|
107
|
+
<a href="{% url 'plugins:netbox_docker_plugin:port_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
108
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Port Mapping
|
|
109
|
+
</a>
|
|
110
|
+
</div>
|
|
111
|
+
{% endif %}
|
|
112
|
+
</h2>
|
|
113
|
+
{% htmx_table 'plugins:netbox_docker_plugin:port_list' container_id=object.pk %}
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<div class="col col-md-6">
|
|
118
|
+
<div class="card">
|
|
119
|
+
<h2 class="card-header">
|
|
120
|
+
Network Settings
|
|
121
|
+
{% if perms.netbox_docker_plugin.add_network_setting %}
|
|
122
|
+
<div class="card-actions">
|
|
123
|
+
<a href="{% url 'plugins:netbox_docker_plugin:networksetting_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
124
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> New Network Setting
|
|
125
|
+
</a>
|
|
126
|
+
</div>
|
|
127
|
+
{% endif %}
|
|
128
|
+
</h2>
|
|
129
|
+
{% htmx_table 'plugins:netbox_docker_plugin:networksetting_list' container_id=object.pk %}
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<div class="row mb-3">
|
|
135
|
+
<div class="col col-md-6">
|
|
136
|
+
<div class="card">
|
|
137
|
+
<h2 class="card-header">
|
|
138
|
+
Mount
|
|
139
|
+
{% if perms.netbox_docker_plugin.add_env %}
|
|
140
|
+
<div class="card-actions">
|
|
141
|
+
<a href="{% url 'plugins:netbox_docker_plugin:mount_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
142
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> New Mount
|
|
143
|
+
</a>
|
|
144
|
+
</div>
|
|
145
|
+
{% endif %}
|
|
146
|
+
</h2>
|
|
147
|
+
{% htmx_table 'plugins:netbox_docker_plugin:mount_list' container_id=object.pk %}
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
<div class="col col-md-6">
|
|
151
|
+
<div class="card">
|
|
152
|
+
<h2 class="card-header">
|
|
153
|
+
Binds
|
|
154
|
+
{% if perms.netbox_docker_plugin.add_env %}
|
|
155
|
+
<div class="card-actions">
|
|
156
|
+
<a href="{% url 'plugins:netbox_docker_plugin:bind_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
157
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> New Bind
|
|
158
|
+
</a>
|
|
159
|
+
</div>
|
|
160
|
+
{% endif %}
|
|
161
|
+
</h2>
|
|
162
|
+
{% htmx_table 'plugins:netbox_docker_plugin:bind_list' container_id=object.pk %}
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<div class="row mb-3">
|
|
168
|
+
<div class="col col-md-6">
|
|
169
|
+
<div class="card">
|
|
170
|
+
<h2 class="card-header">
|
|
171
|
+
Devices
|
|
172
|
+
{% if perms.netbox_docker_plugin.add_device %}
|
|
173
|
+
<div class="card-actions">
|
|
174
|
+
<a href="{% url 'plugins:netbox_docker_plugin:device_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
175
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> New Device
|
|
176
|
+
</a>
|
|
177
|
+
</div>
|
|
178
|
+
{% endif %}
|
|
179
|
+
</h2>
|
|
180
|
+
{% htmx_table 'plugins:netbox_docker_plugin:device_list' container_id=object.pk %}
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
<div class="col col-md-6">
|
|
184
|
+
<div class="card">
|
|
185
|
+
<h2 class="card-header">
|
|
186
|
+
Log Driver Options
|
|
187
|
+
{% if perms.netbox_docker_plugin.add_env %}
|
|
188
|
+
<div class="card-actions">
|
|
189
|
+
<a href="{% url 'plugins:netbox_docker_plugin:logdriveroption_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
190
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Logging driver option
|
|
191
|
+
</a>
|
|
192
|
+
</div>
|
|
193
|
+
{% endif %}
|
|
194
|
+
</h2>
|
|
195
|
+
{% htmx_table 'plugins:netbox_docker_plugin:logdriveroption_list' container_id=object.pk %}
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
{% endblock content %}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{% extends 'generic/object.html' %}
|
|
2
|
+
|
|
3
|
+
{% load plugins %}
|
|
4
|
+
{% load host %}
|
|
5
|
+
|
|
6
|
+
{% block extra_controls %}
|
|
7
|
+
<form action="{% url 'plugins:netbox_docker_plugin:host_operation' pk=object.id operation='refresh' %}" method="post">
|
|
8
|
+
{% csrf_token %}
|
|
9
|
+
<input type="hidden" name="operation" value="refresh">
|
|
10
|
+
<button type="submit" class="btn btn-warning">
|
|
11
|
+
<i class="mdi mdi-cog-refresh"></i> Refresh
|
|
12
|
+
</button>
|
|
13
|
+
</form>
|
|
14
|
+
{% endblock extra_controls %}
|
|
15
|
+
|
|
16
|
+
{% block content %}
|
|
17
|
+
<div class="row mb-3">
|
|
18
|
+
<div class="col col-md-6">
|
|
19
|
+
<div class="card">
|
|
20
|
+
<h2 class="card-header">Host</h2>
|
|
21
|
+
<table class="table table-hover attr-table">
|
|
22
|
+
<tr>
|
|
23
|
+
<th scope="row">Name</th>
|
|
24
|
+
<td>{{ object.name }}</td>
|
|
25
|
+
</tr>
|
|
26
|
+
<tr>
|
|
27
|
+
<th scope="row">Endpoint</th>
|
|
28
|
+
<td>{{ object.endpoint|remove_password }}</td>
|
|
29
|
+
</tr>
|
|
30
|
+
<tr>
|
|
31
|
+
<th scope="row">State</th>
|
|
32
|
+
<td>{{ object.get_state_display }}</td>
|
|
33
|
+
</tr>
|
|
34
|
+
<tr>
|
|
35
|
+
<th scope="row">Agent Version</th>
|
|
36
|
+
<td>{{ object.agent_version|placeholder }}</td>
|
|
37
|
+
</tr>
|
|
38
|
+
<tr>
|
|
39
|
+
<th scope="row">Docker API Version</th>
|
|
40
|
+
<td>{{ object.docker_api_version|placeholder }}</td>
|
|
41
|
+
</tr>
|
|
42
|
+
<tr>
|
|
43
|
+
<th scope="row">Operation</th>
|
|
44
|
+
<td>{{ object.get_operation_display }}</td>
|
|
45
|
+
</tr>
|
|
46
|
+
</table>
|
|
47
|
+
</div>
|
|
48
|
+
{% include 'inc/panels/custom_fields.html' %}
|
|
49
|
+
{% include 'inc/panels/tags.html' %}
|
|
50
|
+
{% plugin_left_page object %}
|
|
51
|
+
</div>
|
|
52
|
+
<div class="col col-md-6">
|
|
53
|
+
{% include 'inc/panels/related_objects.html' with filter_name='host_id' %}
|
|
54
|
+
{% plugin_right_page object %}
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="row">
|
|
58
|
+
<div class="col col-md-12">
|
|
59
|
+
<div class="card">
|
|
60
|
+
<h2 class="card-header">
|
|
61
|
+
Registry
|
|
62
|
+
{% if perms.netbox_docker_plugin.add_container %}
|
|
63
|
+
<div class="card-actions">
|
|
64
|
+
<a href="{% url 'plugins:netbox_docker_plugin:registry_add' %}?host={{ object.pk }}&return_url={{ object.get_absolute_url }}"
|
|
65
|
+
class="btn btn-ghost-primary btn-sm">
|
|
66
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Registry
|
|
67
|
+
</a>
|
|
68
|
+
</div>
|
|
69
|
+
{% endif %}
|
|
70
|
+
</h2>
|
|
71
|
+
{% htmx_table 'plugins:netbox_docker_plugin:registry_list' host_id=object.pk %}
|
|
72
|
+
</div>
|
|
73
|
+
{% plugin_full_width_page object %}
|
|
74
|
+
</div>
|
|
75
|
+
<div class="col col-md-12">
|
|
76
|
+
<div class="card">
|
|
77
|
+
<h2 class="card-header">
|
|
78
|
+
Container
|
|
79
|
+
{% if perms.netbox_docker_plugin.add_container %}
|
|
80
|
+
<div class="card-actions">
|
|
81
|
+
<a href="{% url 'plugins:netbox_docker_plugin:container_add' %}?host={{ object.pk }}&return_url={{ object.get_absolute_url }}"
|
|
82
|
+
class="btn btn-ghost-primary btn-sm">
|
|
83
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Container
|
|
84
|
+
</a>
|
|
85
|
+
</div>
|
|
86
|
+
{% endif %}
|
|
87
|
+
</h2>
|
|
88
|
+
{% htmx_table 'plugins:netbox_docker_plugin:container_list' host_id=object.pk %}
|
|
89
|
+
</div>
|
|
90
|
+
{% plugin_full_width_page object %}
|
|
91
|
+
</div>
|
|
92
|
+
<div class="col col-md-12">
|
|
93
|
+
<div class="card">
|
|
94
|
+
<h2 class="card-header">
|
|
95
|
+
Images
|
|
96
|
+
{% if perms.netbox_docker_plugin.add_image %}
|
|
97
|
+
<div class="card-actions">
|
|
98
|
+
<a href="{% url 'plugins:netbox_docker_plugin:image_add' %}?host={{ object.pk }}&return_url={{ object.get_absolute_url }}"
|
|
99
|
+
class="btn btn-ghost-primary btn-sm">
|
|
100
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add an Image
|
|
101
|
+
</a>
|
|
102
|
+
</div>
|
|
103
|
+
{% endif %}
|
|
104
|
+
</h2>
|
|
105
|
+
{% htmx_table 'plugins:netbox_docker_plugin:image_list' host_id=object.pk %}
|
|
106
|
+
</div>
|
|
107
|
+
{% plugin_full_width_page object %}
|
|
108
|
+
</div>
|
|
109
|
+
<div class="col col-md-12">
|
|
110
|
+
<div class="card">
|
|
111
|
+
<h2 class="card-header">
|
|
112
|
+
Volumes
|
|
113
|
+
{% if perms.netbox_docker_plugin.add_volume %}
|
|
114
|
+
<div class="card-actions">
|
|
115
|
+
<a href="{% url 'plugins:netbox_docker_plugin:volume_add' %}?host={{ object.pk }}&return_url={{ object.get_absolute_url }}"
|
|
116
|
+
class="btn btn-ghost-primary btn-sm">
|
|
117
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Volume
|
|
118
|
+
</a>
|
|
119
|
+
</div>
|
|
120
|
+
{% endif %}
|
|
121
|
+
</h2>
|
|
122
|
+
{% htmx_table 'plugins:netbox_docker_plugin:volume_list' host_id=object.pk %}
|
|
123
|
+
</div>
|
|
124
|
+
{% plugin_full_width_page object %}
|
|
125
|
+
</div>
|
|
126
|
+
<div class="col col-md-12">
|
|
127
|
+
<div class="card">
|
|
128
|
+
<h2 class="card-header">
|
|
129
|
+
Networks
|
|
130
|
+
{% if perms.netbox_docker_plugin.add_network %}
|
|
131
|
+
<div class="card-actions">
|
|
132
|
+
<a href="{% url 'plugins:netbox_docker_plugin:network_add' %}?host={{ object.pk }}&return_url={{ object.get_absolute_url }}"
|
|
133
|
+
class="btn btn-ghost-primary btn-sm">
|
|
134
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Network
|
|
135
|
+
</a>
|
|
136
|
+
</div>
|
|
137
|
+
{% endif %}
|
|
138
|
+
</h2>
|
|
139
|
+
{% htmx_table 'plugins:netbox_docker_plugin:network_list' host_id=object.pk %}
|
|
140
|
+
</div>
|
|
141
|
+
{% plugin_full_width_page object %}
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
{% endblock content %}
|
|
@@ -69,53 +69,48 @@
|
|
|
69
69
|
<div class="row mb-3">
|
|
70
70
|
<div class="col col-md-6">
|
|
71
71
|
<div class="card">
|
|
72
|
-
<
|
|
73
|
-
<
|
|
74
|
-
<
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
<
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
<
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
<
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
<
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
{
|
|
99
|
-
|
|
100
|
-
{
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
</table>
|
|
106
|
-
</div>
|
|
72
|
+
<h2 class="card-header">Image</h2>
|
|
73
|
+
<table class="table table-hover attr-table">
|
|
74
|
+
<tr>
|
|
75
|
+
<th scope="row">Host</th>
|
|
76
|
+
<td><a href="{{ object.host.get_absolute_url }}">{{ object.host }}</a></td>
|
|
77
|
+
</tr>
|
|
78
|
+
<tr>
|
|
79
|
+
<th scope="row">Name & Version</th>
|
|
80
|
+
<td>{{ object.name }}:{{ object.version }}</td>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<th scope="row">Registry</th>
|
|
84
|
+
<td><a href="{{ object.registry.get_absolute_url }}">{{ object.registry }}</a></td>
|
|
85
|
+
</tr>
|
|
86
|
+
<tr>
|
|
87
|
+
<th scope="row">Size</th>
|
|
88
|
+
<td>{{ object.size }} MByte</td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<th scope="row">ImageID</th>
|
|
92
|
+
<td>{{ object.ImageID|placeholder }}</td>
|
|
93
|
+
</tr>
|
|
94
|
+
<tr>
|
|
95
|
+
<th scope="row">Digest</th>
|
|
96
|
+
<td>
|
|
97
|
+
{% if object.Digest is None %}
|
|
98
|
+
{{ object.Digest|placeholder }}
|
|
99
|
+
{% else %}
|
|
100
|
+
{{ object.Digest|truncatechars:32 }}
|
|
101
|
+
{% endif %}
|
|
102
|
+
</td>
|
|
103
|
+
</tr>
|
|
104
|
+
</table>
|
|
107
105
|
</div>
|
|
108
106
|
{% include 'inc/panels/custom_fields.html' %}
|
|
109
107
|
{% include 'inc/panels/tags.html' %}
|
|
110
108
|
{% plugin_left_page object %}
|
|
111
109
|
</div>
|
|
112
|
-
<div class="col col-md-
|
|
110
|
+
<div class="col col-md-12">
|
|
113
111
|
<div class="card">
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
hx-get="{% url 'plugins:netbox_docker_plugin:container_list' %}?image_id={{ object.pk }}"
|
|
117
|
-
hx-trigger="load"
|
|
118
|
-
></div>
|
|
112
|
+
<h2 class="card-header">Used By</h2>
|
|
113
|
+
{% htmx_table 'plugins:netbox_docker_plugin:container_list' image_id=object.pk %}
|
|
119
114
|
</div>
|
|
120
115
|
</div>
|
|
121
116
|
</div>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{% extends 'generic/object.html' %}
|
|
2
|
+
|
|
3
|
+
{% load plugins %}
|
|
4
|
+
|
|
5
|
+
{% block content %}
|
|
6
|
+
<div class="row mb-3">
|
|
7
|
+
<div class="col col-md-6">
|
|
8
|
+
<div class="card">
|
|
9
|
+
<h2 class="card-header">Network</h2>
|
|
10
|
+
<table class="table table-hover attr-table">
|
|
11
|
+
<tr>
|
|
12
|
+
<th scope="row">Host</th>
|
|
13
|
+
<td><a href="{{ object.host.get_absolute_url }}">{{ object.host }}</a></td>
|
|
14
|
+
</tr>
|
|
15
|
+
<tr>
|
|
16
|
+
<th scope="row">Name</th>
|
|
17
|
+
<td>{{ object.name }}</td>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<th scope="row">Driver</th>
|
|
21
|
+
<td>{{ object.get_driver_display }}</td>
|
|
22
|
+
</tr>
|
|
23
|
+
<tr>
|
|
24
|
+
<th scope="row">NetworkID</th>
|
|
25
|
+
<td>{{ object.NetworkID|placeholder }}</td>
|
|
26
|
+
</tr>
|
|
27
|
+
<tr>
|
|
28
|
+
<th scope="row">State</th>
|
|
29
|
+
<td>{{ object.get_state_display }}</td>
|
|
30
|
+
</tr>
|
|
31
|
+
</table>
|
|
32
|
+
</div>
|
|
33
|
+
{% include 'inc/panels/custom_fields.html' %}
|
|
34
|
+
{% include 'inc/panels/tags.html' %}
|
|
35
|
+
{% plugin_left_page object %}
|
|
36
|
+
</div>
|
|
37
|
+
<div class="col col-md-12">
|
|
38
|
+
<div class="card">
|
|
39
|
+
<h2 class="card-header">Used By</h2>
|
|
40
|
+
{% htmx_table 'plugins:netbox_docker_plugin:networksetting_list' image_id=object.pk %}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
{% endblock content %}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{% extends 'generic/object.html' %}
|
|
2
|
+
|
|
3
|
+
{% load plugins %}
|
|
4
|
+
{% load host %}
|
|
5
|
+
|
|
6
|
+
{% block content %}
|
|
7
|
+
<div class="row mb-3">
|
|
8
|
+
<div class="col col-md-6">
|
|
9
|
+
<div class="card">
|
|
10
|
+
<h2 class="card-header">Registry</h2>
|
|
11
|
+
<table class="table table-hover attr-table">
|
|
12
|
+
<tr>
|
|
13
|
+
<th scope="row">Host</th>
|
|
14
|
+
<td><a href="{{ object.host.get_absolute_url }}">{{ object.host }}</a></td>
|
|
15
|
+
</tr>
|
|
16
|
+
<tr>
|
|
17
|
+
<th scope="row">Name</th>
|
|
18
|
+
<td>{{ object.name }}</td>
|
|
19
|
+
</tr>
|
|
20
|
+
<tr>
|
|
21
|
+
<th scope="row">Server Address</th>
|
|
22
|
+
<td>{{ object.serveraddress }}</td>
|
|
23
|
+
</tr>
|
|
24
|
+
<tr>
|
|
25
|
+
<th scope="row">username</th>
|
|
26
|
+
<td>{{ object.username|placeholder }}</td>
|
|
27
|
+
</tr>
|
|
28
|
+
<tr>
|
|
29
|
+
<th scope="row">email</th>
|
|
30
|
+
<td>{{ object.email|placeholder }}</td>
|
|
31
|
+
</tr>
|
|
32
|
+
</table>
|
|
33
|
+
</div>
|
|
34
|
+
{% include 'inc/panels/custom_fields.html' %}
|
|
35
|
+
{% include 'inc/panels/tags.html' %}
|
|
36
|
+
{% plugin_left_page object %}
|
|
37
|
+
</div>
|
|
38
|
+
<div class="col col-md-6">
|
|
39
|
+
{% include 'inc/panels/related_objects.html' with filter_name='registry_id' %}
|
|
40
|
+
{% plugin_right_page object %}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="row">
|
|
44
|
+
<div class="col col-md-12">
|
|
45
|
+
<div class="card">
|
|
46
|
+
<h2 class="card-header">
|
|
47
|
+
Images
|
|
48
|
+
{% if perms.netbox_docker_plugin.add_image %}
|
|
49
|
+
<div class="card-actions">
|
|
50
|
+
<a href="{% url 'plugins:netbox_docker_plugin:image_add' %}?registry={{ object.pk }}&host={{ object.host_id }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
|
|
51
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add an Image
|
|
52
|
+
</a>
|
|
53
|
+
</div>
|
|
54
|
+
{% endif %}
|
|
55
|
+
</h2>
|
|
56
|
+
{% htmx_table 'plugins:netbox_docker_plugin:image_list' registry_id=object.pk %}
|
|
57
|
+
</div>
|
|
58
|
+
{% plugin_full_width_page object %}
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
{% endblock content %}
|