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 pkg_resources
import sys

from contego.i18n import _LE
from oslo_log import log as logging

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

loaded = False
LOG = logging.getLogger(__name__)

if sys.version_info[0] < 3:
    version_string = pkg_resources.get_distribution("tvault-contego").version
else:
    try:
        version_string = pkg_resources.get_distribution("python3-tvault-contego").version
    except Exception as ex:
        LOG.debug("{0}\n\npython3-tvault-contego not installed; fetching version from python3-tvault-contego-el9 package".format(ex))
        version_string = pkg_resources.get_distribution("python3-tvault-contego-el9").version
    

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_string
    else:
        return "%s-%s" % (version_string, package_string())