Skip to content

Commit 5c55a5e

Browse files
committed
fix api models
1 parent 5f5959f commit 5c55a5e

File tree

8 files changed

+181
-85
lines changed

8 files changed

+181
-85
lines changed

development/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG NAUTOBOT_VER="1.4.2"
1+
ARG NAUTOBOT_VER="1.4.3"
22
ARG PYTHON_VER=3.8
33
FROM ghcr.io/nautobot/nautobot-dev:${NAUTOBOT_VER}-py${PYTHON_VER}
44

invoke.mysql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
lb_models:
33
project_name: "lb_models"
4-
nautobot_ver: "1.4.2"
4+
nautobot_ver: "1.4.3"
55
local: false
66
python_ver: "3.7"
77
compose_dir: "development"

lb_models/api/serializers.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ class VIPPoolMemberSerializer(ValidatedModelSerializer):
3838
class Meta:
3939
"""Meta attributes."""
4040

41-
model = "__all__"
41+
model = models.VIPPoolMember
42+
fields = "__all__"
4243

4344

4445
class VIPPoolSerializer(ValidatedModelSerializer):
@@ -50,7 +51,8 @@ class VIPPoolSerializer(ValidatedModelSerializer):
5051
class Meta:
5152
"""Meta attributes."""
5253

53-
model = "__all__"
54+
model = models.VIPPool
55+
fields = "__all__"
5456

5557

5658
class VIPSerializer(ValidatedModelSerializer):

lb_models/api/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
router = OrderedDefaultRouter()
88
router.register("vipcertificate", views.VIPCertificateViewSet)
99
router.register("viphealthmonitor", views.VIPHealthMonitorViewSet)
10-
router.register("vippool", views.VIPPoolViewSet)
1110
router.register("vippoolmember", views.VIPPoolMemberViewSet)
11+
router.register("vippool", views.VIPPoolViewSet)
1212
router.register("vip", views.VIPViewSet)
1313

1414

lb_models/api/views.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,6 @@ class VIPHealthMonitorViewSet(ModelViewSet): # pylint: disable=too-many-ancesto
2121
queryset = models.VIPHealthMonitor.objects.all()
2222

2323

24-
class VIPPoolViewSet(ModelViewSet): # pylint: disable=too-many-ancestors
25-
"""VIP Pool viewset."""
26-
27-
serializer_class = serializers.VIPPoolSerializer
28-
filterset_class = filters.VIPPoolFilterSet
29-
queryset = models.VIPPool.objects.all()
30-
31-
3224
class VIPPoolMemberViewSet(ModelViewSet): # pylint: disable=too-many-ancestors
3325
"""VIP Pool Member viewset."""
3426

@@ -37,6 +29,14 @@ class VIPPoolMemberViewSet(ModelViewSet): # pylint: disable=too-many-ancestors
3729
queryset = models.VIPPoolMember.objects.all()
3830

3931

32+
class VIPPoolViewSet(ModelViewSet): # pylint: disable=too-many-ancestors
33+
"""VIP Pool viewset."""
34+
35+
serializer_class = serializers.VIPPoolSerializer
36+
filterset_class = filters.VIPPoolFilterSet
37+
queryset = models.VIPPool.objects.all()
38+
39+
4040
class VIPViewSet(ModelViewSet): # pylint: disable=too-many-ancestors
4141
"""VIP viewset."""
4242

Lines changed: 163 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated by Django 3.2.18 on 2023-02-17 19:53
1+
# Generated by Django 3.2.18 on 2023-02-17 20:13
22

33
import django.core.validators
44
from django.db import migrations, models
@@ -12,105 +12,199 @@ class Migration(migrations.Migration):
1212
initial = True
1313

1414
dependencies = [
15-
('dcim', '0014_location_status_data_migration'),
16-
('ipam', '0008_prefix_vlan_vlangroup_location'),
15+
("ipam", "0008_prefix_vlan_vlangroup_location"),
16+
("dcim", "0014_location_status_data_migration"),
1717
]
1818

1919
operations = [
2020
migrations.CreateModel(
21-
name='VIPCertificate',
21+
name="VIPCertificate",
2222
fields=[
23-
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
24-
('slug', nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from='serial_number', unique=True)),
25-
('issuer', models.CharField(max_length=50)),
26-
('version_number', models.CharField(max_length=50)),
27-
('serial_number', models.CharField(max_length=30, unique=True)),
28-
('signature', models.CharField(max_length=50, unique=True)),
29-
('signature_algorithm', models.CharField(max_length=20)),
30-
('signature_algorithm_id', models.CharField(max_length=30, unique=True)),
31-
('start_date', models.DateField()),
32-
('end_date', models.DateField()),
33-
('subject_name', models.CharField(max_length=50)),
34-
('subject_pub_key', models.CharField(max_length=100)),
35-
('subject_pub_key_algorithm', models.CharField(max_length=20)),
23+
(
24+
"id",
25+
models.UUIDField(
26+
default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
27+
),
28+
),
29+
(
30+
"slug",
31+
nautobot.core.fields.AutoSlugField(
32+
blank=True, max_length=100, populate_from="serial_number", unique=True
33+
),
34+
),
35+
("issuer", models.CharField(max_length=50)),
36+
("version_number", models.CharField(max_length=50)),
37+
("serial_number", models.CharField(max_length=30, unique=True)),
38+
("signature", models.CharField(max_length=50, unique=True)),
39+
("signature_algorithm", models.CharField(max_length=20)),
40+
("signature_algorithm_id", models.CharField(max_length=30, unique=True)),
41+
("start_date", models.DateField()),
42+
("end_date", models.DateField()),
43+
("subject_name", models.CharField(max_length=50)),
44+
("subject_pub_key", models.CharField(max_length=100)),
45+
("subject_pub_key_algorithm", models.CharField(max_length=20)),
3646
],
3747
options={
38-
'abstract': False,
48+
"abstract": False,
3949
},
4050
),
4151
migrations.CreateModel(
42-
name='VIPHealthMonitor',
52+
name="VIPHealthMonitor",
4353
fields=[
44-
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
45-
('slug', nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from='name', unique=True)),
46-
('name', models.CharField(max_length=50, unique=True)),
47-
('description', models.CharField(blank=True, max_length=100, null=True)),
48-
('type', models.CharField(max_length=50, null=True)),
49-
('url', models.URLField(max_length=50, null=True)),
50-
('send', models.CharField(max_length=50, null=True)),
51-
('string', models.CharField(max_length=100, null=True)),
52-
('code', models.SmallIntegerField(null=True)),
53-
('receive', models.CharField(max_length=50, null=True)),
54+
(
55+
"id",
56+
models.UUIDField(
57+
default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
58+
),
59+
),
60+
(
61+
"slug",
62+
nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from="name", unique=True),
63+
),
64+
("name", models.CharField(max_length=50, unique=True)),
65+
("description", models.CharField(blank=True, max_length=100, null=True)),
66+
("type", models.CharField(max_length=50, null=True)),
67+
("url", models.URLField(max_length=50, null=True)),
68+
("send", models.CharField(max_length=50, null=True)),
69+
("string", models.CharField(max_length=100, null=True)),
70+
("code", models.SmallIntegerField(null=True)),
71+
("receive", models.CharField(max_length=50, null=True)),
5472
],
5573
options={
56-
'abstract': False,
74+
"abstract": False,
5775
},
5876
),
5977
migrations.CreateModel(
60-
name='VIPPoolMember',
78+
name="VIPPoolMember",
6179
fields=[
62-
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
63-
('slug', nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from='name', unique=True)),
64-
('name', models.CharField(max_length=50, unique=True)),
65-
('description', models.CharField(max_length=100)),
66-
('protocol', models.CharField(max_length=20)),
67-
('port', models.PositiveIntegerField(blank=True, null=True, validators=[django.core.validators.MaxValueValidator(65535), django.core.validators.MinValueValidator(1)])),
68-
('fqdn', models.CharField(max_length=200)),
69-
('member_args', models.JSONField(blank=True, null=True)),
70-
('address', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ipam.ipaddress')),
71-
('monitor', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='lb_models.viphealthmonitor')),
80+
(
81+
"id",
82+
models.UUIDField(
83+
default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
84+
),
85+
),
86+
(
87+
"slug",
88+
nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from="name", unique=True),
89+
),
90+
("name", models.CharField(max_length=50, unique=True)),
91+
("description", models.CharField(max_length=100)),
92+
("protocol", models.CharField(max_length=20)),
93+
(
94+
"port",
95+
models.PositiveIntegerField(
96+
blank=True,
97+
null=True,
98+
validators=[
99+
django.core.validators.MaxValueValidator(65535),
100+
django.core.validators.MinValueValidator(1),
101+
],
102+
),
103+
),
104+
("fqdn", models.CharField(max_length=200)),
105+
("member_args", models.JSONField(blank=True, null=True)),
106+
(
107+
"address",
108+
models.ForeignKey(
109+
blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to="ipam.ipaddress"
110+
),
111+
),
112+
(
113+
"monitor",
114+
models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="lb_models.viphealthmonitor"),
115+
),
72116
],
73117
options={
74-
'abstract': False,
118+
"abstract": False,
75119
},
76120
),
77121
migrations.CreateModel(
78-
name='VIPPool',
122+
name="VIPPool",
79123
fields=[
80-
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
81-
('slug', nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from='name', unique=True)),
82-
('name', models.CharField(max_length=50)),
83-
('description', models.CharField(max_length=50)),
84-
('member', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='lb_models.vippoolmember')),
85-
('monitor', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='lb_models.viphealthmonitor')),
124+
(
125+
"id",
126+
models.UUIDField(
127+
default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
128+
),
129+
),
130+
(
131+
"slug",
132+
nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from="name", unique=True),
133+
),
134+
("name", models.CharField(max_length=50)),
135+
("description", models.CharField(max_length=50)),
136+
(
137+
"member",
138+
models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="lb_models.vippoolmember"),
139+
),
140+
(
141+
"monitor",
142+
models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="lb_models.viphealthmonitor"),
143+
),
86144
],
87145
options={
88-
'abstract': False,
146+
"abstract": False,
89147
},
90148
),
91149
migrations.CreateModel(
92-
name='VIP',
150+
name="VIP",
93151
fields=[
94-
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
95-
('slug', nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from='name', unique=True)),
96-
('name', models.CharField(max_length=50)),
97-
('description', models.CharField(max_length=50)),
98-
('fqdn', models.CharField(max_length=200)),
99-
('protocol', models.CharField(max_length=20)),
100-
('port', models.SmallIntegerField(null=True)),
101-
('method', models.CharField(max_length=50)),
102-
('owner', models.CharField(max_length=50)),
103-
('vip_args', models.JSONField(blank=True, null=True)),
104-
('address', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ipam.ipaddress')),
105-
('certificate', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='lb_models.vipcertificate')),
106-
('device', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='dcim.device')),
107-
('interface', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='dcim.interface')),
108-
('pool', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='lb_models.vippool')),
109-
('vlan', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='ipam.vlan')),
110-
('vrf', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='ipam.vrf')),
152+
(
153+
"id",
154+
models.UUIDField(
155+
default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True
156+
),
157+
),
158+
(
159+
"slug",
160+
nautobot.core.fields.AutoSlugField(blank=True, max_length=100, populate_from="name", unique=True),
161+
),
162+
("name", models.CharField(max_length=50)),
163+
("description", models.CharField(max_length=50)),
164+
("fqdn", models.CharField(max_length=200)),
165+
("protocol", models.CharField(max_length=20)),
166+
("port", models.SmallIntegerField(null=True)),
167+
("method", models.CharField(max_length=50)),
168+
("owner", models.CharField(max_length=50)),
169+
("vip_args", models.JSONField(blank=True, null=True)),
170+
(
171+
"address",
172+
models.ForeignKey(
173+
blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to="ipam.ipaddress"
174+
),
175+
),
176+
(
177+
"certificate",
178+
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="lb_models.vipcertificate"),
179+
),
180+
(
181+
"device",
182+
models.ForeignKey(
183+
null=True, on_delete=django.db.models.deletion.PROTECT, related_name="+", to="dcim.device"
184+
),
185+
),
186+
(
187+
"interface",
188+
models.ForeignKey(
189+
null=True, on_delete=django.db.models.deletion.PROTECT, related_name="+", to="dcim.interface"
190+
),
191+
),
192+
("pool", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="lb_models.vippool")),
193+
(
194+
"vlan",
195+
models.ForeignKey(
196+
null=True, on_delete=django.db.models.deletion.PROTECT, related_name="+", to="ipam.vlan"
197+
),
198+
),
199+
(
200+
"vrf",
201+
models.ForeignKey(
202+
null=True, on_delete=django.db.models.deletion.PROTECT, related_name="+", to="ipam.vrf"
203+
),
204+
),
111205
],
112206
options={
113-
'abstract': False,
207+
"abstract": False,
114208
},
115209
),
116210
]

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "lb_models"
3-
version = "0.0.5"
3+
version = "0.1.0"
44
description = "lb_models"
55
authors = ["Network to Code, LLC <info@networktocode.com>"]
66
license = "Apache-2.0"
@@ -21,7 +21,7 @@ python = "^3.7"
2121
# Required for Python 3.7 for now. See: https://stackoverflow.com/a/73932581/194311
2222
importlib-metadata = "4.13.0"
2323
# Used for local development
24-
nautobot = "1.4.2"
24+
nautobot = "1.4.3"
2525

2626
[tool.poetry.dev-dependencies]
2727
bandit = "*"

tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def is_truthy(arg):
3939
namespace.configure(
4040
{
4141
"lb_models": {
42-
"nautobot_ver": "1.4.2",
42+
"nautobot_ver": "1.4.3",
4343
"project_name": "lb_models",
4444
"python_ver": "3.7",
4545
"local": False,

0 commit comments

Comments
 (0)