From: Adam King Date: Wed, 27 Sep 2023 18:34:42 +0000 (-0400) Subject: cephadm: move registry_login to container_engines.py X-Git-Tag: v19.0.0~383^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=419288649f10f9d761b7b004169d53eb4d28b8b2;p=ceph-ci.git cephadm: move registry_login to container_engines.py Signed-off-by: Adam King --- diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index a0ebf7e96b5..fa0bf73da57 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -100,6 +100,7 @@ from cephadmlib.container_engines import ( Podman, check_container_engine, find_container_engine, + registry_login, ) from cephadmlib.data_utils import ( dict_get, @@ -5298,20 +5299,6 @@ def command_registry_login(ctx: CephadmContext) -> int: return 0 -def registry_login(ctx: CephadmContext, url: Optional[str], username: Optional[str], password: Optional[str]) -> None: - try: - engine = ctx.container_engine - cmd = [engine.path, 'login', - '-u', username, '-p', password, - url] - if isinstance(engine, Podman): - cmd.append('--authfile=/etc/ceph/podman-auth.json') - out, _, _ = call_throws(ctx, cmd) - if isinstance(engine, Podman): - os.chmod('/etc/ceph/podman-auth.json', DEFAULT_MODE) - except Exception: - raise Error('Failed to login to custom registry @ %s as %s with given password' % (ctx.registry_url, ctx.registry_username)) - ################################## diff --git a/src/cephadm/cephadmlib/container_engines.py b/src/cephadm/cephadmlib/container_engines.py index 01b22bd80e8..9a3d5f7dbe9 100644 --- a/src/cephadm/cephadmlib/container_engines.py +++ b/src/cephadm/cephadmlib/container_engines.py @@ -1,12 +1,13 @@ # container_engines.py - container engine types and selection funcs +import os from typing import Tuple, List, Optional from .call_wrappers import call_throws, CallVerbosity from .context import CephadmContext from .container_engine_base import ContainerEngine -from .constants import MIN_PODMAN_VERSION +from .constants import DEFAULT_MODE, MIN_PODMAN_VERSION from .exceptions import Error @@ -86,3 +87,18 @@ def _parse_podman_version(version_str): return to_int(val[0:-1], org_e or e) return tuple(map(to_int, version_str.split('.'))) + + +def registry_login(ctx: CephadmContext, url: Optional[str], username: Optional[str], password: Optional[str]) -> None: + try: + engine = ctx.container_engine + cmd = [engine.path, 'login', + '-u', username, '-p', password, + url] + if isinstance(engine, Podman): + cmd.append('--authfile=/etc/ceph/podman-auth.json') + out, _, _ = call_throws(ctx, cmd) + if isinstance(engine, Podman): + os.chmod('/etc/ceph/podman-auth.json', DEFAULT_MODE) + except Exception: + raise Error('Failed to login to custom registry @ %s as %s with given password' % (ctx.registry_url, ctx.registry_username)) diff --git a/src/cephadm/tests/test_cephadm.py b/src/cephadm/tests/test_cephadm.py index 909185a5a4f..122292f6ea5 100644 --- a/src/cephadm/tests/test_cephadm.py +++ b/src/cephadm/tests/test_cephadm.py @@ -454,7 +454,7 @@ class TestCephAdm(object): with pytest.raises(FileNotFoundError): open(os.path.join(_cephadm.DATA_DIR, 'fsid', 'custom_config_files', 'mon.host1', 'no-content.conf'), 'r') - @mock.patch('cephadm.call_throws') + @mock.patch('cephadmlib.container_engines.call_throws') @mock.patch('cephadm.get_parm') @mock.patch('cephadm.logger') def test_registry_login(self, _logger, _get_parm, _call_throws):