Skip to content

Commit b81f6a8

Browse files
authored
Merge pull request #190 from SaaShup/log_driver_fix
🐛 Fix default logging driver value
2 parents 790d036 + 84a5f10 commit b81f6a8

File tree

8 files changed

+54
-41
lines changed

8 files changed

+54
-41
lines changed

netbox_docker_plugin/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class NetBoxDockerConfig(PluginConfig):
1111
name = "netbox_docker_plugin"
1212
verbose_name = " NetBox Docker Plugin"
1313
description = "Manage Docker"
14-
version = "4.0.0"
14+
version = "4.0.1"
1515
base_url = "docker"
1616
min_version = "4.2.0"
1717
author = "Vincent Simonin <vincent@saashup.com>, David Delassus <david.jose.delassus@gmail.com>"

netbox_docker_plugin/api/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ class ContainerViewSet(NetBoxModelViewSet):
145145
"host",
146146
"ports",
147147
"labels",
148+
"log_driver_options",
148149
"tags",
149150
)
150151
filterset_class = filtersets.ContainerFilterSet

netbox_docker_plugin/forms/container.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
Container,
2020
ContainerRestartPolicyChoices,
2121
ContainerCapAddChoices,
22-
ContainerLogDriverChoices,
2322
)
2423
from ..models.image import Image
2524

@@ -122,7 +121,7 @@ class ContainerFilterForm(NetBoxModelFilterSetForm):
122121
label="Restart Policy", choices=ContainerRestartPolicyChoices, required=False
123122
)
124123
log_driver = forms.ChoiceField(
125-
label="Logging driver", choices=ContainerLogDriverChoices, required=False
124+
label="Logging driver", required=False
126125
)
127126
tag = TagFilterField(model)
128127

@@ -138,11 +137,10 @@ class ContainerImportForm(NetBoxModelImportForm):
138137
+ "`always`, `unless-stopped`.",
139138
)
140139

141-
log_driver = forms.ChoiceField(
140+
log_driver = forms.CharField(
142141
label="Logging driver",
143-
choices=ContainerLogDriverChoices,
144142
required=False,
145-
help_text="Logging driver. Can be `json-log`, `syslog`.",
143+
help_text="Logging driver. Can be `json-file`, `syslog`.",
146144
)
147145

148146
class Meta:
@@ -170,10 +168,9 @@ class ContainerBulkEditForm(NetBoxModelBulkEditForm):
170168
choices=ContainerRestartPolicyChoices,
171169
required=True,
172170
)
173-
log_driver = forms.ChoiceField(
171+
log_driver = forms.CharField(
174172
label="Logging driver",
175-
choices=ContainerLogDriverChoices,
176-
required=True,
173+
required=False,
177174
)
178175
hostname = forms.CharField(
179176
label="Hostname", max_length=256, min_length=1, required=False
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# pylint: disable=C0103
2+
"""Migration file"""
3+
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
"""Migration file"""
9+
10+
dependencies = [
11+
("netbox_docker_plugin", "0035_container_log_driver_logdriveroption"),
12+
]
13+
14+
operations = [
15+
migrations.RunSQL(
16+
"UPDATE netbox_docker_plugin_container "
17+
+ "SET log_driver='json-file' WHERE log_driver='json-log'"
18+
),
19+
migrations.AlterField(
20+
model_name="container",
21+
name="log_driver",
22+
field=models.CharField(default="json-file", max_length=32),
23+
),
24+
]

netbox_docker_plugin/models/container.py

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,6 @@ class ContainerRestartPolicyChoices(ChoiceSet):
7373
]
7474

7575

76-
class ContainerLogDriverChoices(ChoiceSet):
77-
"""Container log driver choices definition class"""
78-
79-
key = "Container.log_driver"
80-
81-
DEFAULT_VALUE = "json-log"
82-
83-
CHOICES = [
84-
("json-log", "json-log", "blue"),
85-
("syslog", "syslog", "blue"),
86-
]
87-
88-
8976
class PortTypeChoices(ChoiceSet):
9077
"""Port type choices definition class"""
9178

@@ -112,6 +99,8 @@ class ContainerCapAddChoices(ChoiceSet):
11299
class Container(NetBoxModel):
113100
"""Container definition class"""
114101

102+
DEFAULT_LOG_DRIVER = "json-file"
103+
115104
host = models.ForeignKey(Host, on_delete=models.CASCADE, related_name="containers")
116105
image = models.ForeignKey(
117106
Image, on_delete=models.RESTRICT, related_name="containers"
@@ -168,8 +157,7 @@ class Container(NetBoxModel):
168157
)
169158
log_driver = models.CharField(
170159
max_length=32,
171-
choices=ContainerLogDriverChoices,
172-
default=ContainerLogDriverChoices.DEFAULT_VALUE,
160+
default=DEFAULT_LOG_DRIVER,
173161
)
174162

175163
@property

netbox_docker_plugin/templates/netbox_docker_plugin/container.html

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,28 +51,14 @@ <h5 class="card-header">CONTAINER</h5>
5151
</tr>
5252
<tr>
5353
<th scope="row">Logging driver</th>
54-
<td>{{ object.get_log_driver_display }}</td>
54+
<td>{{ object.log_driver }}</td>
5555
</tr>
5656
</table>
5757
</div>
5858
</div>
5959
{% include 'inc/panels/custom_fields.html' %}
6060
{% include 'inc/panels/tags.html' %}
6161
{% plugin_left_page object %}
62-
<div class="card">
63-
<h5 class="card-header">LOG DRIVER OPTIONS</h5>
64-
<div class="card-body htmx-container table-responsive"
65-
hx-get="{% url 'plugins:netbox_docker_plugin:logdriveroption_list' %}?container_id={{ object.pk }}"
66-
hx-trigger="load"
67-
></div>
68-
{% if perms.netbox_docker_plugin.add_env %}
69-
<div class="card-footer text-end noprint">
70-
<a href="{% url 'plugins:netbox_docker_plugin:logdriveroption_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
71-
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Logging driver option
72-
</a>
73-
</div>
74-
{% endif %}
75-
</div>
7662
</div>
7763
<div class="col col-md-6">
7864
<div class="card">
@@ -202,5 +188,21 @@ <h5 class="card-header">DEVICES</h5>
202188
{% endif %}
203189
</div>
204190
</div>
191+
<div class="col col-md-6">
192+
<div class="card">
193+
<h5 class="card-header">LOG DRIVER OPTIONS</h5>
194+
<div class="card-body htmx-container table-responsive"
195+
hx-get="{% url 'plugins:netbox_docker_plugin:logdriveroption_list' %}?container_id={{ object.pk }}"
196+
hx-trigger="load"
197+
></div>
198+
{% if perms.netbox_docker_plugin.add_env %}
199+
<div class="card-footer text-end noprint">
200+
<a href="{% url 'plugins:netbox_docker_plugin:logdriveroption_add' %}?container={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
201+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a Logging driver option
202+
</a>
203+
</div>
204+
{% endif %}
205+
</div>
206+
</div>
205207
</div>
206208
{% endblock content %}

netbox_docker_plugin/tests/container/test_container_views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,5 +85,6 @@ def setUpTestData(cls):
8585
cls.csv_update_data = (
8686
"id,name,host,image,hostname,restart_policy,log_driver",
8787
f"{container1.pk},container1,{host1.pk},{image1.pk},,on-failure,syslog",
88-
f"{container2.pk},container2,{host1.pk},{image1.pk},container2,unless-stopped,json-log",
88+
f"{container2.pk},container2,{host1.pk}"
89+
+ f",{image1.pk},container2,unless-stopped,json-file",
8990
)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "netbox-docker-plugin"
7-
version = "4.0.0"
7+
version = "4.0.1"
88
authors = [
99
{ name="Vincent Simonin", email="vincent@saashup.com" },
1010
{ name="David Delassus", email="david.jose.delassus@gmail.com" }

0 commit comments

Comments
 (0)