Skip to content

Commit 677a310

Browse files
committed
chore(controller): use JSONField replace ArrayField
1 parent 7e7ef67 commit 677a310

4 files changed

Lines changed: 5 additions & 7 deletions

File tree

rootfs/api/migrations/0001_initial.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class Migration(migrations.Migration):
6767
('certificate', models.TextField(validators=[api.models.certificate.validate_certificate])),
6868
('key', models.TextField(validators=[api.models.certificate.validate_private_key])),
6969
('common_name', models.TextField(editable=False, null=True)),
70-
('san', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=253), null=True, size=None)),
70+
('san', models.JSONField(default=None, null=True)),
7171
('fingerprint', models.CharField(editable=False, max_length=96)),
7272
('expires', models.DateTimeField(editable=False)),
7373
('starts', models.DateTimeField(editable=False)),
@@ -236,7 +236,7 @@ class Migration(migrations.Migration):
236236
('created', models.DateTimeField(auto_now_add=True)),
237237
('updated', models.DateTimeField(auto_now=True)),
238238
('routable', models.BooleanField(null=True)),
239-
('allowlist', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=50), default=None, size=None)),
239+
('allowlist', models.JSONField(default=None, null=True)),
240240
('autoscale', models.JSONField(blank=True, default=dict)),
241241
('label', models.JSONField(blank=True, default=dict)),
242242
('app', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.app')),

rootfs/api/models/appsettings.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from django.db import models
33
from django.db import transaction
44

5-
from django.contrib.postgres.fields import ArrayField
65
from rest_framework.exceptions import NotFound
76
from django.contrib.auth import get_user_model
87
from api.utils import dict_diff
@@ -22,7 +21,7 @@ class AppSettings(UuidAuditedModel):
2221
routable = models.BooleanField(null=True)
2322
# the default values is None to differentiate from user sending an empty allowlist
2423
# and user just updating other fields meaning the values needs to be copied from prev release
25-
allowlist = ArrayField(models.CharField(max_length=50), default=None)
24+
allowlist = models.JSONField(default=None, null=True)
2625
autoscale = models.JSONField(default=dict, blank=True)
2726
label = models.JSONField(default=dict, blank=True)
2827

rootfs/api/models/certificate.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from django.shortcuts import get_object_or_404
1111
from django.db import models
1212
from django.core.exceptions import SuspiciousOperation
13-
from django.contrib.postgres.fields import ArrayField
1413
from django.contrib.auth import get_user_model
1514
from rest_framework.exceptions import ValidationError
1615
from api.models import AuditedModel, validate_label, AlreadyExists, ServiceUnavailable
@@ -89,7 +88,7 @@ class Certificate(AuditedModel):
8988
# X.509 certificates allow any string of information as the common name.
9089
common_name = models.TextField(editable=False, unique=False, null=True)
9190
# A list of DNS records if certificate has SubjectAltName
92-
san = ArrayField(models.CharField(max_length=253), null=True)
91+
san = models.JSONField(default=None, null=True)
9392
# SHA256 fingerprint
9493
fingerprint = models.CharField(max_length=96, editable=False)
9594
# Expires and Start time of cert

rootfs/api/tests/test_app_settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ def test_settings_allowlist(self, mock_requests):
9797
self.assertEqual(set(response.data['addresses']),
9898
set(app.appsettings_set.latest().allowlist), response.data)
9999
self.assertEqual(set(response.data['addresses']), set(addresses), response.data)
100-
101100
# add exisitng addresses to allowlist
102101
response = self.client.post(
103102
'/v2/apps/{app_id}/allowlist'.format(**locals()),
@@ -109,6 +108,7 @@ def test_settings_allowlist(self, mock_requests):
109108
'/v2/apps/{app_id}/allowlist'.format(**locals()),
110109
allowlist)
111110
self.assertEqual(response.status_code, 422)
111+
112112
# pass invalid address
113113
allowlist = {'addresses': ["2.3.4.6.7"]}
114114
response = self.client.post(

0 commit comments

Comments
 (0)