Strengthen attribute check for Tower configuration validations

This commit is contained in:
Aaron Tan 2017-07-07 11:44:56 -04:00
parent 9a4701fe30
commit 0138510936
3 changed files with 8 additions and 2 deletions

View File

@ -446,7 +446,9 @@ register(
def logging_validate(serializer, attrs):
if not serializer.instance:
if not serializer.instance or \
not hasattr(serializer.instance, 'LOG_AGGREGATOR_HOST') or \
not hasattr(serializer.instance, 'LOG_AGGREGATOR_TYPE'):
return attrs
errors = []
if attrs.get('LOG_AGGREGATOR_ENABLED', False):

View File

@ -1089,7 +1089,9 @@ register(
def tacacs_validate(serializer, attrs):
if not serializer.instance:
if not serializer.instance or \
not hasattr(serializer.instance, 'TACACSPLUS_HOST') or \
not hasattr(serializer.instance, 'TACACSPLUS_SECRET'):
return attrs
errors = []
host = serializer.instance.TACACSPLUS_HOST

View File

@ -108,3 +108,5 @@ register_validate("category_a", validate_a)
register_validate("category_b", validate_b)
...
```
It should be noted that each validation function will be invoked in two places: when updating the category it's responsible for and when updating the general category `all`. Always keep this fact in mind and test both situations when developing new validation functions.