diff --git a/heatclient/__init__.py b/heatclient/__init__.py index 09d0195e..e589bb4b 100644 --- a/heatclient/__init__.py +++ b/heatclient/__init__.py @@ -9,23 +9,8 @@ # 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 inspect -import os +import pbr.version -def _get_heatclient_version(): - """Read version from versioninfo file.""" - mod_abspath = inspect.getabsfile(inspect.currentframe()) - heatclient_path = os.path.dirname(mod_abspath) - version_path = os.path.join(heatclient_path, 'versioninfo') - if os.path.exists(version_path): - version = open(version_path).read().strip() - else: - version = "Unknown, couldn't find versioninfo file at %s"\ - % version_path - - return version - - -__version__ = _get_heatclient_version() +__version__ = pbr.version.VersionInfo('python-heatclient').version_string() diff --git a/heatclient/shell.py b/heatclient/shell.py index 429b28ef..3aa0e1a1 100644 --- a/heatclient/shell.py +++ b/heatclient/shell.py @@ -21,7 +21,8 @@ from keystoneclient.v2_0 import client as ksclient -from heatclient import client as heatclient +import heatclient +from heatclient import client as heat_client from heatclient.common import utils from heatclient import exc @@ -45,6 +46,11 @@ def get_base_parser(self): action='store_true', help=argparse.SUPPRESS) + parser.add_argument('--version', + action='version', + version=heatclient.__version__, + help="Shows the client version and exits") + parser.add_argument('-d', '--debug', default=bool(utils.env('HEATCLIENT_DEBUG')), action='store_true', @@ -328,7 +334,7 @@ def main(self, argv): if not endpoint: endpoint = self._get_endpoint(_ksclient, **kwargs) - client = heatclient.Client(api_version, endpoint, **kwargs) + client = heat_client.Client(api_version, endpoint, **kwargs) args.func(client, args)