remove helm options validation
[ta/cm-plugins.git] / validators / src / CaasValidation.py
index d5ba34e..9bb0b8c 100644 (file)
@@ -80,23 +80,18 @@ class CaasValidation(cmvalidator.CMValidator):
     DOCKER_SIZE_QOUTA = "docker_size_quota"
     DOCKER_SIZE_QOUTA_PATTERN = r"^\d*[G,M,K]$"
 
-    CHART_NAME = "chart_name"
-    CHART_NAME_PATTERN = r"[A-Za-z0-9\.-_]+"
-
-    CHART_VERSION = "chart_version"
-    CHART_VERSION_PATTERN = r"^\d+\.\d+\.\d+$"
-
     HELM_OP_TIMEOUT = "helm_operation_timeout"
 
     DOCKER0_CIDR = "docker0_cidr"
 
     INSTANTIATION_TIMEOUT = "instantiation_timeout"
 
-    HELM_PARAMETERS = "helm_parameters"
-
     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()
@@ -114,14 +109,12 @@ class CaasValidation(cmvalidator.CMValidator):
             return
         self.props_pre_check(props)
         self.validate_docker_size_quota()
-        self.validate_chart_name()
-        self.validate_chart_version()
         self.validate_helm_operation_timeout()
         self.validate_docker0_cidr(props)
         self.validate_instantiation_timeout()
-        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])
@@ -151,25 +144,6 @@ class CaasValidation(cmvalidator.CMValidator):
                 self.caas_conf[self.DOCKER_SIZE_QOUTA],
                 self.DOCKER_SIZE_QOUTA))
 
-    def validate_chart_name(self):
-        if not self.caas_utils.is_optional_param_present(self.CHART_NAME, self.caas_conf):
-            return
-        if not re.match(self.CHART_NAME_PATTERN, self.caas_conf[self.CHART_NAME]):
-            raise CaasValidationError('{} is not a valid {} !'.format(
-                self.caas_conf[self.CHART_NAME],
-                self.CHART_NAME))
-
-    def validate_chart_version(self):
-        if not self.caas_utils.is_optional_param_present(self.CHART_VERSION, self.caas_conf):
-            return
-        if not self.caas_conf[self.CHART_NAME]:
-            logging.warn('{} shall be set only, when {} is set.'.format(
-                self.CHART_VERSION, self.CHART_NAME))
-        if not re.match(self.CHART_VERSION_PATTERN, self.caas_conf[self.CHART_VERSION]):
-            raise CaasValidationError('{} is not a valid {} !'.format(
-                self.caas_conf[self.CHART_VERSION],
-                self.CHART_VERSION))
-
     def validate_helm_operation_timeout(self):
         if not self.caas_utils.is_optional_param_present(self.HELM_OP_TIMEOUT, self.caas_conf):
             return
@@ -210,13 +184,6 @@ class CaasValidation(cmvalidator.CMValidator):
                 self.INSTANTIATION_TIMEOUT,
                 self.caas_conf[self.INSTANTIATION_TIMEOUT]))
 
-    def validate_helm_parameters(self):
-        if not self.caas_utils.is_optional_param_present(self.HELM_PARAMETERS, self.caas_conf):
-            return
-        if not isinstance(self.caas_conf[self.HELM_PARAMETERS], dict):
-            raise CaasValidationError('The given input: {} is not a dictionary!'.format(
-                self.caas_conf[self.HELM_PARAMETERS]))
-
     def validate_encrypted_ca(self, enc_ca):
         self.caas_utils.check_key_in_dict(enc_ca, self.caas_conf)
         enc_ca_str = self.caas_conf[enc_ca][0]
@@ -226,3 +193,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))