X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fceph-detect-init%2Fceph_detect_init%2F__init__.py;fp=src%2Fceph%2Fsrc%2Fceph-detect-init%2Fceph_detect_init%2F__init__.py;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=fe0a2a787f4f9bc4746c640cc3e04359f1efc9d6;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/ceph-detect-init/ceph_detect_init/__init__.py b/src/ceph/src/ceph-detect-init/ceph_detect_init/__init__.py deleted file mode 100644 index fe0a2a7..0000000 --- a/src/ceph/src/ceph-detect-init/ceph_detect_init/__init__.py +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright (C) 2015 -# -# Author: Alfredo Deza -# Author: Loic Dachary -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library Public License for more details. -# -from ceph_detect_init import alpine -from ceph_detect_init import arch -from ceph_detect_init import centos -from ceph_detect_init import debian -from ceph_detect_init import exc -from ceph_detect_init import fedora -from ceph_detect_init import rhel -from ceph_detect_init import suse -from ceph_detect_init import gentoo -from ceph_detect_init import freebsd -from ceph_detect_init import docker -from ceph_detect_init import oraclevms -import os -import logging -import platform - - -def get(use_rhceph=False): - distro_name, release, codename = platform_information() - # Not all distributions have a concept that maps to codenames - # (or even releases really) - if not codename and not _get_distro(distro_name): - raise exc.UnsupportedPlatform( - distro=distro_name, - codename=codename, - release=release) - - module = _get_distro(distro_name, use_rhceph=use_rhceph) - module.name = distro_name - module.normalized_name = _normalized_distro_name(distro_name) - module.distro = module.normalized_name - module.is_el = module.normalized_name in ['redhat', 'centos', - 'fedora', 'scientific', - 'oraclel'] - module.release = release - module.codename = codename - module.init = module.choose_init() - return module - - -def _get_distro(distro, use_rhceph=False): - if not distro: - return - - distro = _normalized_distro_name(distro) - distributions = { - 'alpine': alpine, - 'arch': arch, - 'debian': debian, - 'ubuntu': debian, - 'linuxmint': debian, - 'centos': centos, - 'scientific': centos, - 'oraclel': centos, - 'oraclevms': oraclevms, - 'redhat': centos, - 'fedora': fedora, - 'suse': suse, - 'gentoo': gentoo, - 'funtoo': gentoo, - 'exherbo': gentoo, - 'freebsd': freebsd, - 'docker': docker, - 'virtuozzo': centos, - } - - if distro == 'redhat' and use_rhceph: - return rhel - else: - return distributions.get(distro) - - -def _normalized_distro_name(distro): - distro = distro.lower() - if distro.startswith(('redhat', 'red hat')): - return 'redhat' - elif distro.startswith(('scientific', 'scientific linux')): - return 'scientific' - elif distro.startswith(('suse', 'opensuse')): - return 'suse' - elif distro.startswith('centos'): - return 'centos' - elif distro.startswith('oracle linux'): - return 'oraclel' - elif distro.startswith('oracle vm'): - return 'oraclevms' - elif distro.startswith(('gentoo', 'funtoo', 'exherbo')): - return 'gentoo' - elif distro.startswith('virtuozzo'): - return 'virtuozzo' - return distro - - -def platform_information(): - """detect platform information from remote host.""" - try: - file_name = '/proc/self/cgroup' - with open(file_name, 'r') as f: - lines = f.readlines() - for line in lines: - if "docker" in line.split(':')[2]: - return ('docker', 'docker', 'docker') - except Exception as err: - logging.debug("platform_information: ", - "Error while opening %s : %s" % (file_name, err)) - - if os.path.isfile('/.dockerenv'): - return ('docker', 'docker', 'docker') - - if platform.system() == 'Linux': - linux_distro = platform.linux_distribution( - supported_dists=platform._supported_dists + ('alpine', 'arch')) - logging.debug('platform_information: linux_distribution = ' + - str(linux_distro)) - distro, release, codename = linux_distro - elif platform.system() == 'FreeBSD': - distro = 'freebsd' - release = platform.release() - codename = platform.version().split(' ')[3].split(':')[0] - logging.debug( - 'platform_information: release = {}, version = {}'.format( - platform.release(), platform.version())) - else: - raise exc.UnsupportedPlatform(platform.system(), '', '') - - distro_lower = distro.lower() - # this could be an empty string in Debian - if not codename and 'debian' in distro_lower: - pass - # this is an empty string in Oracle - elif distro_lower.startswith('oracle linux'): - codename = 'OL' + release - elif distro_lower.startswith('oracle vm'): - codename = 'OVS' + release - # this could be an empty string in Virtuozzo linux - elif distro_lower.startswith('virtuozzo linux'): - codename = 'virtuozzo' - - return ( - str(distro).rstrip(), - str(release).rstrip(), - str(codename).rstrip() - )