X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=validators%2Fsrc%2FCaasValidation.py;h=a42ef6778d9bcca0c278819adb8f6bf2e3dc8327;hb=refs%2Fchanges%2F77%2F977%2F1;hp=d5ba34ecc8a7e2a953f4a3a54f16fe0ec1de4cf6;hpb=a7a7b7b7429a60e9ee34459857862e7e64e8d306;p=ta%2Fcm-plugins.git 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))