diff options
author | Magnus Granberg <zorry@gentoo.org> | 2020-04-05 00:34:22 +0200 |
---|---|---|
committer | Magnus Granberg <zorry@gentoo.org> | 2020-04-05 00:44:59 +0200 |
commit | be80f7418991180567f0882902ca4151a635e42d (patch) | |
tree | c0ddd3545ed6c9c3c0fb6241ba43ee3a7755f252 /gosbs/version.py | |
parent | use perform_checksum for checksum on files (diff) | |
download | tinderbox-cluster-be80f7418991180567f0882902ca4151a635e42d.tar.gz tinderbox-cluster-be80f7418991180567f0882902ca4151a635e42d.tar.bz2 tinderbox-cluster-be80f7418991180567f0882902ca4151a635e42d.zip |
Redone the code to use OpenStack's libs
We use Openstack's libs and Nova code as a base for the POC
Most of the code to populate the db is done.
Signed-off-by: Magnus Granberg <zorry@gentoo.org>
Diffstat (limited to 'gosbs/version.py')
-rw-r--r-- | gosbs/version.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/gosbs/version.py b/gosbs/version.py new file mode 100644 index 0000000..268086c --- /dev/null +++ b/gosbs/version.py @@ -0,0 +1,90 @@ +# Copyright 2011 OpenStack Foundation +# +# 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. + +# Origin https://github.com/openstack/nova/blob/master/nova/version.py + +import pbr.version + +from gosbs.i18n import _LE + +NOVA_VENDOR = "Gentoo Foundation Inc" +NOVA_PRODUCT = "OpenStack Gosbs" +NOVA_PACKAGE = None # OS distro package version suffix + +loaded = False +version_info = pbr.version.VersionInfo('gosbs') +version_string = version_info.version_string + + +def _load_config(): + # Don't load in global context, since we can't assume + # these modules are accessible when distutils uses + # this module + from six.moves import configparser + + from oslo_config import cfg + + from oslo_log import log as logging + + global loaded, NOVA_VENDOR, NOVA_PRODUCT, NOVA_PACKAGE + if loaded: + return + + loaded = True + + cfgfile = cfg.CONF.find_file("release") + if cfgfile is None: + return + + try: + cfg = configparser.RawConfigParser() + cfg.read(cfgfile) + + if cfg.has_option("Gosbs", "vendor"): + NOVA_VENDOR = cfg.get("Gosbs", "vendor") + + if cfg.has_option("Gobs", "product"): + NOVA_PRODUCT = cfg.get("Gosbs", "product") + + if cfg.has_option("Gosbs", "package"): + NOVA_PACKAGE = cfg.get("Gosbs", "package") + except Exception as ex: + LOG = logging.getLogger(__name__) + LOG.error(_LE("Failed to load %(cfgfile)s: %(ex)s"), + {'cfgfile': cfgfile, 'ex': ex}) + + +def vendor_string(): + _load_config() + + return NOVA_VENDOR + + +def product_string(): + _load_config() + + return NOVA_PRODUCT + + +def package_string(): + _load_config() + + return NOVA_PACKAGE + + +def version_string_with_package(): + if package_string() is None: + return version_info.version_string() + else: + return "%s-%s" % (version_info.version_string(), package_string()) |