Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
# Copyright 2020 TrilioData Inc.
# All Rights Reserved.

import pbr.version
import sys

from contego.i18n import _LE

CONTEGO_VENDOR = "Trilio Data, Inc"
CONTEGO_PRODUCT = "TrilioVault"
CONTEGO_PACKAGE = None  # OS distro package version suffix

loaded = False

if sys.version_info[0] < 3:
    version_info = pbr.version.VersionInfo('tvault-contego')
else:
    version_info = pbr.version.VersionInfo('python3-tvault-contego')

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, CONTEGO_VENDOR, CONTEGO_PRODUCT, CONTEGO_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("Contego", "vendor"):
            CONTEGO_VENDOR = cfg.get("Contego", "vendor")

        if cfg.has_option("Contego", "product"):
            CONTEGO_PRODUCT = cfg.get("Contego", "product")

        if cfg.has_option("Contego", "package"):
            CONTEGO_PACKAGE = cfg.get("Contego", "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 CONTEGO_VENDOR


def product_string():
    _load_config()

    return CONTEGO_PRODUCT


def package_string():
    _load_config()

    return CONTEGO_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())