From e0b417623d501c69666492ceefade20b136d24ae Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Wed, 7 Nov 2018 16:04:05 +1100 Subject: [PATCH] Add a __main__ handler, version command Recently I've been querying what versions of openstacksdk are installed in various environments, it would be handy to have a quick way to see what's installed. This adds a __main__ handler and a single command "version" to print the full version (with git reference). Change-Id: I690f2987740c804735879985d19752c31490c7c9 --- doc/source/user/index.rst | 4 ++ openstack/__main__.py | 40 +++++++++++++++++++ .../version-command-70c37dd7f880e9ae.yaml | 4 ++ 3 files changed, 48 insertions(+) create mode 100644 openstack/__main__.py create mode 100644 releasenotes/notes/version-command-70c37dd7f880e9ae.yaml diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index 8e66c897b..0dcbb3a50 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -13,6 +13,10 @@ The OpenStack SDK is available on $ pip install openstacksdk +To check the installed version you can call the module with :: + + $ python -m openstack version + .. _user_guides: User Guides diff --git a/openstack/__main__.py b/openstack/__main__.py new file mode 100644 index 000000000..30d775de9 --- /dev/null +++ b/openstack/__main__.py @@ -0,0 +1,40 @@ +# Copyright (c) 2018 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import sys + +import pbr.version + + +def show_version(args): + print("OpenstackSDK Version %s" % + pbr.version.VersionInfo('openstacksdk').version_string_with_vcs()) + + +parser = argparse.ArgumentParser(description="Openstack SDK") +subparsers = parser.add_subparsers(title='commands', + dest='command') + +cmd_version = subparsers.add_parser('version', + help='show Openstack SDK version') +cmd_version.set_defaults(func=show_version) + +args = parser.parse_args() + +if not args.command: + parser.print_help() + sys.exit(1) + +args.func(args) diff --git a/releasenotes/notes/version-command-70c37dd7f880e9ae.yaml b/releasenotes/notes/version-command-70c37dd7f880e9ae.yaml new file mode 100644 index 000000000..db9b5d672 --- /dev/null +++ b/releasenotes/notes/version-command-70c37dd7f880e9ae.yaml @@ -0,0 +1,4 @@ +--- +features: + - The installed version can now be quickly checked with ``python -m + openstack version``.