X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=n2vc%2Fk8s_helm_base_conn.py;h=a3632234e77a8c0bac2d1a966f26c1e3a0ba306c;hb=e4297625bc5013fbaf40d1315e0991443472b06a;hp=d627859d90ffe5793ea2705adc3d4e4bf874ade1;hpb=5d542b5a382558bd5f83a8b173840ea2c953aaa5;p=osm%2FN2VC.git diff --git a/n2vc/k8s_helm_base_conn.py b/n2vc/k8s_helm_base_conn.py index d627859..a363223 100644 --- a/n2vc/k8s_helm_base_conn.py +++ b/n2vc/k8s_helm_base_conn.py @@ -404,7 +404,7 @@ class K8sHelmBaseConnector(K8sConnector): # version kdu_model, version = self._split_version(kdu_model) - repo = self._split_repo(kdu_model) + _, repo = self._split_repo(kdu_model) if repo: await self.repo_update(cluster_id, repo) @@ -508,7 +508,7 @@ class K8sHelmBaseConnector(K8sConnector): # version kdu_model, version = self._split_version(kdu_model) - repo = self._split_repo(kdu_model) + _, repo = self._split_repo(kdu_model) if repo: await self.repo_update(cluster_uuid, repo) @@ -1750,10 +1750,8 @@ class K8sHelmBaseConnector(K8sConnector): if repo_url: repo_str = " --repo {}".format(repo_url) - idx = kdu_model.find("/") - if idx >= 0: - idx += 1 - kdu_model = kdu_model[idx:] + # Obtain the Chart's name and store it in the var kdu_model + kdu_model, _ = self._split_repo(kdu_model=kdu_model) kdu_model, version = self._split_version(kdu_model) if version: @@ -1762,10 +1760,13 @@ class K8sHelmBaseConnector(K8sConnector): version_str = "" full_command = self._get_inspect_command( - inspect_command, kdu_model, repo_str, version_str + show_command=inspect_command, + kdu_model=kdu_model, + repo_str=repo_str, + version=version_str, ) - output, _rc = await self._local_async_exec(command=full_command) + output, _ = await self._local_async_exec(command=full_command) return output @@ -2038,12 +2039,27 @@ class K8sHelmBaseConnector(K8sConnector): kdu_model = parts[0] return kdu_model, version - def _split_repo(self, kdu_model: str) -> str: + def _split_repo(self, kdu_model: str) -> (str, str): + """Obtain the Helm Chart's repository and Chart's names from the KDU model + + Args: + kdu_model (str): Associated KDU model + + Returns: + (str, str): Tuple with the Chart name in index 0, and the repo name + in index 2; if there was a problem finding them, return None + for both + """ + + chart_name = None repo_name = None + idx = kdu_model.find("/") if idx >= 0: + chart_name = kdu_model[idx + 1 :] repo_name = kdu_model[:idx] - return repo_name + + return chart_name, repo_name async def _find_repo(self, kdu_model: str, cluster_uuid: str) -> str: """Obtain the Helm repository for an Helm Chart @@ -2056,12 +2072,15 @@ class K8sHelmBaseConnector(K8sConnector): str: the repository URL; if Helm Chart is a local one, the function returns None """ + _, repo_name = self._split_repo(kdu_model=kdu_model) + repo_url = None - idx = kdu_model.find("/") - if idx >= 0: - repo_name = kdu_model[:idx] + if repo_name: # Find repository link local_repo_list = await self.repo_list(cluster_uuid) for repo in local_repo_list: - repo_url = repo["url"] if repo["name"] == repo_name else None + if repo["name"] == repo_name: + repo_url = repo["url"] + break # it is not necessary to continue the loop if the repo link was found... + return repo_url