Use vca_config and loop options in K8sJujuConnector
[osm/LCM.git] / osm_lcm / ns.py
index 5b06c18..a83495a 100644 (file)
@@ -148,7 +148,9 @@ class NsLcm(LcmBase):
             fs=self.fs,
             log=self.logger,
             db=self.db,
+            loop=self.loop,
             on_update_db=None,
+            vca_config=self.vca_config,
         )
 
         self.k8scluster_map = {
@@ -3521,8 +3523,7 @@ class NsLcm(LcmBase):
             self._write_op_status(nslcmop_id, stage)
         return error_detail_list
 
-    @staticmethod
-    def _map_primitive_params(primitive_desc, params, instantiation_params):
+    def _map_primitive_params(self, primitive_desc, params, instantiation_params):
         """
         Generates the params to be provided to charm before executing primitive. If user does not provide a parameter,
         The default-value is used. If it is between < > it look for a value at instantiation_params
@@ -3557,11 +3558,20 @@ class NsLcm(LcmBase):
                                                                width=256)
             elif isinstance(calculated_params[param_name], str) and calculated_params[param_name].startswith("!!yaml "):
                 calculated_params[param_name] = calculated_params[param_name][7:]
+            if parameter.get("data-type") == "INTEGER":
+                try:
+                    calculated_params[param_name] = int(calculated_params[param_name])
+                except ValueError:  # error converting string to int
+                    raise LcmException(
+                        "Parameter {} of primitive {} must be integer".format(param_name, primitive_desc["name"]))
+            elif parameter.get("data-type") == "BOOLEAN":
+                calculated_params[param_name] = not ((str(calculated_params[param_name])).lower() == 'false')
 
         # add always ns_config_info if primitive name is config
         if primitive_desc["name"] == "config":
             if "ns_config_info" in instantiation_params:
                 calculated_params["ns_config_info"] = instantiation_params["ns_config_info"]
+            calculated_params["VCA"] = self.vca_config
         return calculated_params
 
     def _look_for_deployed_vca(self, deployed_vca, member_vnf_index, vdu_id, vdu_count_index, kdu_name=None,