From a2f332c01b54a5503333fb36fd6750cef035186d Mon Sep 17 00:00:00 2001 From: Krisztian Lengyel Date: Fri, 10 May 2019 16:18:44 -0400 Subject: [PATCH] Add validation for CaaS DNS domain Change-Id: I0f56861995c9994de32d6f2bcd726465d2fe3c47 --- validators/src/CaasValidation.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/validators/src/CaasValidation.py b/validators/src/CaasValidation.py index d5ba34e..a42ef67 100644 --- a/validators/src/CaasValidation.py +++ b/validators/src/CaasValidation.py @@ -97,6 +97,9 @@ class CaasValidation(cmvalidator.CMValidator): ENCRYPTED_CA = "encrypted_ca" ENCRYPTED_CA_KEY = "encrypted_ca_key" + DOMAIN_NAME = "dns_domain" + DOMAIN_NAME_PATTERN = "^[a-z0-9]([a-z0-9-\.]{0,253}[a-z0-9])?$" + def __init__(self): cmvalidator.CMValidator.__init__(self) self.validation_utils = validation.ValidationUtils() @@ -122,6 +125,7 @@ class CaasValidation(cmvalidator.CMValidator): self.validate_helm_parameters() self.validate_encrypted_ca(self.ENCRYPTED_CA) self.validate_encrypted_ca(self.ENCRYPTED_CA_KEY) + self.validate_dns_domain() def is_caas_mandatory(self, props): hosts_conf = json.loads(props[self.HOSTS_DOMAIN]) @@ -226,3 +230,12 @@ class CaasValidation(cmvalidator.CMValidator): base64.b64decode(enc_ca_str) except TypeError as exc: raise CaasValidationError('Invalid {}: {}'.format(enc_ca, exc)) + + def validate_dns_domain(self): + domain = self.caas_conf[self.DOMAIN_NAME] + if not self.caas_utils.is_optional_param_present(self.DOMAIN_NAME, self.caas_conf): + return + if not re.match(self.DOMAIN_NAME_PATTERN, domain): + raise CaasValidationError('{} is not a valid {} !'.format( + domain, + self.DOMAIN_NAME)) -- 2.16.6