Skip to content
Snippets Groups Projects
Commit b46c7c6b authored by garciadeblas's avatar garciadeblas
Browse files

Feature 10997: add oci flag as new property in helm-chart repos


Change-Id: Ic0a826fc10709b210704d5615295364e66ac455c
Signed-off-by: default avatargarciadeblas <gerardo.garciadeblas@telefonica.com>
parent 84fdd949
No related branches found
No related tags found
No related merge requests found
Pipeline #13958 passed with warnings with stage
in 3 minutes and 3 seconds
......@@ -29,9 +29,9 @@ logger = logging.getLogger("osmclient")
@click.argument("uri")
@click.option(
"--type",
type=click.Choice(["helm-chart", "juju-bundle", "osm"]),
type=click.Choice(["osm", "helm-chart", "juju-bundle"]),
default="osm",
help="type of repo (helm-chart for Helm Charts, juju-bundle for Juju Bundles, osm for OSM Repositories)",
help="type of repo (osm for OSM repositories, helm-chart for Helm Charts, juju-bundle for Juju Bundles)",
)
@click.option("--description", default=None, help="human readable description")
@click.option(
......@@ -42,6 +42,11 @@ logger = logging.getLogger("osmclient")
default=None,
help="OSM repository: The password of the OSM repository",
)
@click.option(
"--oci",
is_flag=True,
help="enable OCI (only for helm-chart repos, default: false, automatically set to true for oci:// URI)",
)
@click.pass_context
def repo_add(ctx, **kwargs):
"""adds a repo to OSM
......@@ -52,6 +57,8 @@ def repo_add(ctx, **kwargs):
kwargs = {k: v for k, v in kwargs.items() if v is not None}
repo = kwargs
repo["url"] = repo.pop("uri")
if repo["url"].startswith("oci://"):
repo["oci"] = True
if repo["type"] in ["helm-chart", "juju-bundle"]:
ctx.obj.repo.create(repo["name"], repo)
else:
......@@ -63,8 +70,13 @@ def repo_add(ctx, **kwargs):
@click.option("--newname", help="New name for the repo")
@click.option("--uri", help="URI of the repo")
@click.option("--description", help="human readable description")
@click.option(
"--oci",
is_flag=True,
help="enable OCI (only for helm-chart repos, default: false, automatically set to true for oci:// URI)",
)
@click.pass_context
def repo_update(ctx, name, newname, uri, description):
def repo_update(ctx, name, newname, uri, description, oci):
"""updates a repo in OSM
NAME: name of the repo
......@@ -74,9 +86,13 @@ def repo_update(ctx, name, newname, uri, description):
if newname:
repo["name"] = newname
if uri:
repo["uri"] = uri
repo["url"] = uri
if uri.startswith("oci://"):
repo["oci"] = True
if description:
repo["description"] = description
if oci:
repo["oci"] = oci
try:
ctx.obj.repo.update(name, repo)
except NotFound:
......
......@@ -33,7 +33,12 @@ class Repo(object):
self._apiName, self._apiVersion, self._apiResource
)
def check_oci(self, repo):
if repo["oci"] and repo["type"] != "helm-chart":
raise ClientException("OCI can only be enabled in helm-chart repos")
def create(self, name, repo):
self.check_oci(repo)
self._client.get_token()
http_code, resp = self._http.post_cmd(
endpoint=self._apiBase, postfields_dict=repo
......@@ -56,6 +61,7 @@ class Repo(object):
# raise ClientException("failed to add repo {} - {}".format(name, msg))
def update(self, name, repo):
self.check_oci(repo)
self._client.get_token()
repo_dict = self.get(name)
http_code, resp = self._http.put_cmd(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment