Bug 2104 fixed
[osm/N2VC.git] / n2vc / k8s_helm3_conn.py
index 0a8f7e0..d828da2 100644 (file)
@@ -496,25 +496,24 @@ class K8sHelm3Connector(K8sHelmBaseConnector):
         resource_name: str,
         kubeconfig: str,
     ) -> str:
+        """Generates the command to scale a Helm Chart release
 
-        timeout_str = ""
-        if timeout:
-            timeout_str = "--timeout {}s".format(timeout)
-
-        # atomic
-        atomic_str = ""
-        if atomic:
-            atomic_str = "--atomic"
-
-        # version
-        version_str = ""
-        if version:
-            version_str = "--version {}".format(version)
+        Args:
+            kdu_model (str): Kdu model name, corresponding to the Helm local location or repository
+            kdu_instance (str): KDU instance, corresponding to the Helm Chart release in question
+            namespace (str): Namespace where this KDU instance is deployed
+            scale (int): Scale count
+            version (str): Constraint with specific version of the Chart to use
+            atomic (bool): If set, upgrade process rolls back changes made in case of failed upgrade.
+                The --wait flag will be set automatically if --atomic is used
+            replica_str (str): The key under resource_name key where the scale count is stored
+            timeout (float): The time, in seconds, to wait
+            resource_name (str): The KDU's resource to scale
+            kubeconfig (str): Kubeconfig file path
 
-        # namespace
-        namespace_str = ""
-        if namespace:
-            namespace_str = "--namespace {}".format(namespace)
+        Returns:
+            str: command to scale a Helm Chart release
+        """
 
         # scale
         if resource_name:
@@ -524,21 +523,16 @@ class K8sHelm3Connector(K8sHelmBaseConnector):
 
         scale_str = self._params_to_set_option(scale_dict)
 
-        command = (
-            "env KUBECONFIG={kubeconfig} {helm} upgrade {name} {model} {namespace} {atomic} --output yaml {scale} "
-            "{timeout} {ver}"
-        ).format(
-            helm=self._helm_command,
-            name=kdu_instance,
-            namespace=namespace_str,
-            atomic=atomic_str,
-            scale=scale_str,
-            timeout=timeout_str,
-            model=kdu_model,
-            ver=version_str,
+        return self._get_upgrade_command(
+            kdu_model=kdu_model,
+            kdu_instance=kdu_instance,
+            namespace=namespace,
+            params_str=scale_str,
+            version=version,
+            atomic=atomic,
+            timeout=timeout,
             kubeconfig=kubeconfig,
         )
-        return command
 
     def _get_upgrade_command(
         self,
@@ -551,6 +545,22 @@ class K8sHelm3Connector(K8sHelmBaseConnector):
         timeout: float,
         kubeconfig: str,
     ) -> str:
+        """Generates the command to upgrade a Helm Chart release
+
+        Args:
+            kdu_model (str): Kdu model name, corresponding to the Helm local location or repository
+            kdu_instance (str): KDU instance, corresponding to the Helm Chart release in question
+            namespace (str): Namespace where this KDU instance is deployed
+            params_str (str): Params used to upgrade the Helm Chart release
+            version (str): Constraint with specific version of the Chart to use
+            atomic (bool): If set, upgrade process rolls back changes made in case of failed upgrade.
+                The --wait flag will be set automatically if --atomic is used
+            timeout (float): The time, in seconds, to wait
+            kubeconfig (str): Kubeconfig file path
+
+        Returns:
+            str: command to upgrade a Helm Chart release
+        """
 
         timeout_str = ""
         if timeout:
@@ -573,7 +583,7 @@ class K8sHelm3Connector(K8sHelmBaseConnector):
 
         command = (
             "env KUBECONFIG={kubeconfig} {helm} upgrade {name} {model} {namespace} {atomic} "
-            "--output yaml {params} {timeout} {ver}"
+            "--output yaml {params} {timeout} --reuse-values {ver}"
         ).format(
             kubeconfig=kubeconfig,
             helm=self._helm_command,