From: Krisztian Lengyel Date: Fri, 10 May 2019 20:18:44 +0000 (-0400) Subject: Add validation for CaaS DNS domain X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fcm-plugins.git;a=commitdiff_plain;h=a2f332c01b54a5503333fb36fd6750cef035186d Add validation for CaaS DNS domain Change-Id: I0f56861995c9994de32d6f2bcd726465d2fe3c47 --- 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))