Kubernetes node role refactored.
[ta/config-manager.git] / cmdatahandlers / src / cmdatahandlers / caas / config.py
index ed5c236..12059c2 100644 (file)
@@ -29,7 +29,11 @@ BM_SOFT_EVICTION_THRESHOLD = "4Gi"
 VNF_EMBEDDED_HARD_EVICTION_THRESHOLD = "200Mi"
 BM_HARD_EVICTION_THRESHOLD = "2Gi"
 ADMIN_PWD_LENGTH = 20
-DEFAULT_CAAS_INFRA_LOG_TYPE = 'remote_syslog'
+DEFAULT_CAAS_INFRA_LOG_TYPE = 'elasticsearch'
+AUDIT_DISK_LIMIT = 0.87
+CAAS_AUDIT_DISK_RATIO = 0.25
+DEFAULT_VALUES_MAP = { "docker0_cidr": "127.17.0.1/16",
+                       "oam_cidr": "10.244.0.0/16" }
 
 
 class Config(config.Config):
@@ -54,6 +58,12 @@ class Config(config.Config):
             if 'caas_master' in hostsconf.get_service_profiles(host):
                 caas_masters.append(host)
         return "multi" if len(caas_masters) > 1 else "single"
+    def get_caas_max_audit_size(self):
+        if self.is_caas_deployment():
+            return self.get_audit_disk_limit()*self.get_audit_disk_ratio()
+        else:
+            return 0
 
     def set_dynamic_config(self):
         if utils.is_virtualized():
@@ -61,12 +71,19 @@ class Config(config.Config):
         user_conf = self.confman.get_users_config_handler()
         self.set_caas_parameter('helm_home', "/home/{}/.helm".format(user_conf.get_admin_user()))
         self.set_caas_parameter('flavour', self.flavour_set())
+        self.config[self.ROOT]['caas_max_audit_size'] = self.get_caas_max_audit_size()
+        admin_pwd = self.get_caas_parameter('admin_password')
+        self.config[self.ROOT]['admin_password'] = \
+                admin_pwd if admin_pwd != '' else self.generate_pwd(ADMIN_PWD_LENGTH)
         if not self.get_caas_parameter('dns_domain'):
             self.set_caas_parameter('dns_domain', DEFAULT_CAAS_DNS_DOMAIN)
         if not self.get_caas_parameter('infra_log_store'):
             self.set_caas_parameter('infra_log_store', DEFAULT_CAAS_INFRA_LOG_TYPE)
         if not self.get_caas_parameter('log_forwarding'):
             self.set_caas_parameter('log_forwarding', [])
+        hostsconf = self.confman.get_hosts_config_handler()
+        hostsconf.set_nodeindex()
+        hostsconf.set_noderole()
 
     def set_static_config(self):
         try:
@@ -90,6 +107,11 @@ class Config(config.Config):
                 password=self.generate_pwd(ADMIN_PWD_LENGTH)
             )
 
+    def set_default_values_to_optional_params(self):
+        for parameter_name, default_value in DEFAULT_VALUES_MAP.iteritems():
+            if self.config[self.ROOT].get(parameter_name, '') == '':
+                self.config[self.ROOT][parameter_name] = default_value
+
     @staticmethod
     def _template_config(template, base_config, initial_data):
         config_data = initial_data.copy()
@@ -108,6 +130,7 @@ class Config(config.Config):
             return
         self.set_dynamic_config()
         self.set_static_config()
+        self.set_default_values_to_optional_params()
         self.set_post_config()
 
     def is_vnf_embedded_deployment(self):
@@ -177,6 +200,9 @@ class Config(config.Config):
     def set_caas_parameter(self, parameter, value):
         self.config[self.ROOT][parameter] = value
 
+    def get_admin_password(self):
+        return self.config.get(self.ROOT, {}).get('admin_password')
+
     @staticmethod
     def generate_pwd(pwd_length):
         character_pool = string.ascii_letters + string.digits
@@ -197,3 +223,9 @@ class Config(config.Config):
             return VNF_EMBEDDED_HARD_EVICTION_THRESHOLD
         else:
             return BM_HARD_EVICTION_THRESHOLD
+
+    def get_audit_disk_ratio(self):
+        return CAAS_AUDIT_DISK_RATIO
+
+    def get_audit_disk_limit(self):
+        return AUDIT_DISK_LIMIT