Merge pull request #6928 from jangsutsr/6904_strengthen_attribute_check_for_tower_conf_validators

Strengthen attribute check for Tower configuration validations
This commit is contained in:
Aaron Tan
2017-07-12 13:30:44 -04:00
committed by GitHub
3 changed files with 8 additions and 2 deletions

View File

@@ -472,7 +472,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.