From: John Mulligan Date: Thu, 27 Apr 2023 17:36:51 +0000 (-0400) Subject: cephadm: get cephadm version information from zipapp module X-Git-Tag: v19.0.0~1026^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cfa2d0de77b71a6b61b75cd0ea408065aa9fbd45;p=ceph.git cephadm: get cephadm version information from zipapp module Use the `_version.py` module that gets embedded into the zipapp at build time to print cephadm's own version information. The version string printed is basically copied from the one printed by the `ceph` command. Signed-off-by: John Mulligan --- diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index f23ab08326ad..81f829d767eb 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -4816,15 +4816,23 @@ def command_agent(ctx: CephadmContext) -> None: ################################## - -@infer_image def command_version(ctx): # type: (CephadmContext) -> int - c = CephContainer(ctx, ctx.image, 'ceph', ['--version']) - out, err, ret = call(ctx, c.run_cmd(), desc=c.entrypoint) - if not ret: - print(out.strip()) - return ret + import importlib + + try: + vmod = importlib.import_module('_version') + except ImportError: + print('cephadm version UNKNOWN') + return 1 + _unset = '' + print('cephadm version {0} ({1}) {2} ({3})'.format( + getattr(vmod, 'CEPH_GIT_NICE_VER', _unset), + getattr(vmod, 'CEPH_GIT_VER', _unset), + getattr(vmod, 'CEPH_RELEASE_NAME', _unset), + getattr(vmod, 'CEPH_RELEASE_TYPE', _unset), + )) + return 0 ################################## @@ -9369,7 +9377,7 @@ def _get_parser(): subparsers = parser.add_subparsers(help='sub-command') parser_version = subparsers.add_parser( - 'version', help='get ceph version from container') + 'version', help='get cephadm version') parser_version.set_defaults(func=command_version) parser_pull = subparsers.add_parser(