Bug 2064 fixed 61/12161/3
authorPedro Escaleira <escaleira@av.it.pt>
Fri, 3 Jun 2022 18:48:46 +0000 (19:48 +0100)
committergarciadav <david.garcia@canonical.com>
Tue, 21 Jun 2022 08:11:53 +0000 (10:11 +0200)
Removed the unnecessary verification for if the repo_url exists in the
method get_scale_count of the Helm Base Connection class; The same
problem also applies for the scale method, so this verification was also
removed there;
Also did some fixes/additions to the description of some methods being called
in this verification block.

Change-Id: I710b8678b4b70c6f24c2150d44bb714e9e4c5b66
Signed-off-by: Pedro Escaleira <escaleira@av.it.pt>
n2vc/k8s_helm3_conn.py
n2vc/k8s_helm_base_conn.py

index 107f954..74a8947 100644 (file)
@@ -353,6 +353,19 @@ class K8sHelm3Connector(K8sHelmBaseConnector):
     def _get_inspect_command(
         self, inspect_command: str, kdu_model: str, repo_str: str, version: str
     ):
+        """Generates the command to obtain the information about an Helm Chart package
+            (´helm show ...´ command)
+
+        Args:
+            show_command: the second part of the command (`helm show <show_command>`)
+            kdu_model: The name or path of an Helm Chart
+            repo_url: Helm Chart repository url
+            version: constraint with specific version of the Chart to use
+
+        Returns:
+            str: the generated Helm Chart command
+        """
+
         inspect_command = "{} show {} {}{} {}".format(
             self._helm_command, inspect_command, kdu_model, repo_str, version
         )
index a4eab4b..ed3ea1c 100644 (file)
@@ -645,10 +645,6 @@ class K8sHelmBaseConnector(K8sConnector):
         kdu_model, version = self._split_version(kdu_model)
 
         repo_url = await self._find_repo(kdu_model, cluster_uuid)
-        if not repo_url:
-            raise K8sException(
-                "Repository not found for kdu_model {}".format(kdu_model)
-            )
 
         _, replica_str = await self._get_replica_count_url(
             kdu_model, repo_url, resource_name
@@ -735,7 +731,7 @@ class K8sHelmBaseConnector(K8sConnector):
             cluster_uuid: The UUID of the cluster
             resource_name: Resource name
             kdu_instance: KDU instance name
-            kdu_model: The name or path of a bundle
+            kdu_model: The name or path of an Helm Chart
             kwargs: Additional parameters
 
         Returns:
@@ -762,14 +758,11 @@ class K8sHelmBaseConnector(K8sConnector):
 
         # Get default value if scale count is not found from provided values
         if not replicas:
-            repo_url = await self._find_repo(kdu_model, cluster_uuid)
-            if not repo_url:
-                raise K8sException(
-                    "Repository not found for kdu_model {}".format(kdu_model)
-                )
-
+            repo_url = await self._find_repo(
+                kdu_model=kdu_model, cluster_uuid=cluster_uuid
+            )
             replicas, _ = await self._get_replica_count_url(
-                kdu_model, repo_url, resource_name
+                kdu_model=kdu_model, repo_url=repo_url, resource_name=resource_name
             )
 
         if not replicas:
@@ -1135,6 +1128,15 @@ class K8sHelmBaseConnector(K8sConnector):
         )
 
     async def values_kdu(self, kdu_model: str, repo_url: str = None) -> str:
+        """Method to obtain the Helm Chart package's values
+
+        Args:
+            kdu_model: The name or path of an Helm Chart
+            repo_url: Helm Chart repository url
+
+        Returns:
+            str: the values of the Helm Chart package
+        """
 
         self.log.debug(
             "inspect kdu_model values {} from (optional) repo: {}".format(
@@ -1355,8 +1357,17 @@ class K8sHelmBaseConnector(K8sConnector):
     def _get_inspect_command(
         self, show_command: str, kdu_model: str, repo_str: str, version: str
     ):
-        """
-        Obtain command to be executed to obtain information about the kdu
+        """Generates the command to obtain the information about an Helm Chart package
+            (´helm show ...´ command)
+
+        Args:
+            show_command: the second part of the command (`helm show <show_command>`)
+            kdu_model: The name or path of an Helm Chart
+            repo_url: Helm Chart repository url
+            version: constraint with specific version of the Chart to use
+
+        Returns:
+            str: the generated Helm Chart command
         """
 
     @abc.abstractmethod
@@ -1684,7 +1695,16 @@ class K8sHelmBaseConnector(K8sConnector):
     async def _exec_inspect_command(
         self, inspect_command: str, kdu_model: str, repo_url: str = None
     ):
-        """Obtains information about a kdu, no cluster (no env)."""
+        """Obtains information about an Helm Chart package (´helm show´ command)
+
+        Args:
+            inspect_command: the Helm sub command (`helm show <inspect_command> ...`)
+            kdu_model: The name or path of an Helm Chart
+            repo_url: Helm Chart repository url
+
+        Returns:
+            str: the requested info about the Helm Chart package
+        """
 
         repo_str = ""
         if repo_url:
@@ -1712,13 +1732,13 @@ class K8sHelmBaseConnector(K8sConnector):
     async def _get_replica_count_url(
         self,
         kdu_model: str,
-        repo_url: str,
+        repo_url: str = None,
         resource_name: str = None,
     ):
         """Get the replica count value in the Helm Chart Values.
 
         Args:
-            kdu_model: The name or path of a bundle
+            kdu_model: The name or path of an Helm Chart
             repo_url: Helm Chart repository url
             resource_name: Resource name
 
@@ -1727,7 +1747,8 @@ class K8sHelmBaseConnector(K8sConnector):
         """
 
         kdu_values = yaml.load(
-            await self.values_kdu(kdu_model, repo_url), Loader=yaml.SafeLoader
+            await self.values_kdu(kdu_model=kdu_model, repo_url=repo_url),
+            Loader=yaml.SafeLoader,
         )
 
         if not kdu_values:
@@ -1972,6 +1993,16 @@ class K8sHelmBaseConnector(K8sConnector):
         return repo_name
 
     async def _find_repo(self, kdu_model: str, cluster_uuid: str) -> str:
+        """Obtain the Helm repository for an Helm Chart
+
+        Args:
+            kdu_model (str): the KDU model associated with the Helm Chart instantiation
+            cluster_uuid (str): The cluster UUID associated with the Helm Chart instantiation
+
+        Returns:
+            str: the repository URL; if Helm Chart is a local one, the function returns None
+        """
+
         repo_url = None
         idx = kdu_model.find("/")
         if idx >= 0: