Skip to content

Commit 63c3f60

Browse files
committed
feat(rootfs/api): add validation and changes.
implement validation for serializer and add termination grace period to the list changes
1 parent 581bead commit 63c3f60

2 files changed

Lines changed: 25 additions & 16 deletions

File tree

rootfs/api/models/release.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ def save(self, *args, **kwargs): # noqa
427427
changes = 'changed limits for '+', '.join(changes)
428428
self.summary += "{} {}".format(self.config.owner, changes)
429429

430+
<<<<<<< HEAD
430431
# if the lifecycle_post_start hooks changed, log the dict diff
431432
changes = []
432433
old_lifecycle_post_start = old_config.lifecycle_post_start if old_config else {}
@@ -459,6 +460,15 @@ def save(self, *args, **kwargs): # noqa
459460
if changes:
460461
if self.summary:
461462
self.summary += ' and '
463+
464+
# if the timeouts changed, log the dict diff
465+
changes = []
466+
old_timeout = old_config.termination_grace_period if old_config else {}
467+
diff = dict_diff(self.config.termination_grace_period, old_timeout)
468+
if diff.get('added') or diff.get('changed') or diff.get('deleted'):
469+
changes.append('termination_grace_period')
470+
if changes:
471+
changes = 'changed timeouts for '+', '.join(changes)
462472
self.summary += "{} {}".format(self.config.owner, changes)
463473

464474
# if the tags changed, log the dict diff

rootfs/api/serializers.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,21 @@ def validate_cpu(self, data):
301301

302302
return data
303303

304+
def validate_termination_grace_period(self, data):
305+
for key, value in data.items():
306+
if value is None: # use NoneType to unset an item
307+
continue
308+
309+
if not re.match(PROCTYPE_MATCH, key):
310+
raise serializers.ValidationError(PROCTYPE_MISMATCH_MSG)
311+
312+
timeout = re.match(TERMINATION_GRACE_PERIOD_MATCH, value)
313+
if not timeout:
314+
raise serializers.ValidationError(
315+
"Termination Grace Period format: <value>, where value must be a numeric")
316+
317+
return data
318+
304319
def validate_tags(self, data):
305320
for key, value in data.items():
306321
if value is None: # use NoneType to unset an item
@@ -374,22 +389,6 @@ def validate_healthcheck(self, data):
374389

375390
return data
376391

377-
def validate_termination_grace_period(self, data):
378-
for key, value in data.items():
379-
if value is None: # use NoneType to unset an item
380-
continue
381-
382-
if not re.match(PROCTYPE_MATCH, key):
383-
raise serializers.ValidationError(PROCTYPE_MISMATCH_MSG)
384-
385-
timeout = re.match(TERMINATION_GRACE_PERIOD_MATCH, value)
386-
if not timeout:
387-
raise serializers.ValidationError(
388-
"Termination Grace Period format: <value>, where value must be a numeric")
389-
390-
return data
391-
392-
393392
class ReleaseSerializer(serializers.ModelSerializer):
394393
"""Serialize a :class:`~api.models.Release` model."""
395394

0 commit comments

Comments
 (0)