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
module.normalized_name = _normalized_distro_name(distro_name)
module.distro = module.normalized_name
module.is_el = module.normalized_name in ['redhat', 'centos',
- 'fedora', 'scientific']
+ 'fedora', 'scientific',
+ 'oraclel']
module.release = release
module.codename = codename
module.init = module.choose_init()
'linuxmint': debian,
'centos': centos,
'scientific': centos,
+ 'oraclel': centos,
+ 'oraclevms': oraclevms,
'redhat': centos,
'fedora': fedora,
'suse': suse,
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'
return distro
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():
+ if not codename and 'debian' in distro_lower:
debian_codenames = {
'8': 'jessie',
'7': 'wheezy',
codename = minor
else:
codename = major
+ # 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
return (
str(distro).rstrip(),
from ceph_detect_init import gentoo
from ceph_detect_init import freebsd
from ceph_detect_init import docker
+from ceph_detect_init import oraclevms
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
level=logging.DEBUG)
def test_docker(self):
self.assertEqual('none', docker.choose_init())
+ def test_oraclevms(self):
+ self.assertEqual('sysvinit', oraclevms.choose_init())
+
def test_centos(self):
with mock.patch('ceph_detect_init.centos.release',
'7.0'):
self.assertEqual(debian, g('ubuntu'))
self.assertEqual(centos, g('centos'))
self.assertEqual(centos, g('scientific'))
+ self.assertEqual(centos, g('Oracle Linux Server'))
+ self.assertEqual(oraclevms, g('Oracle VM server'))
self.assertEqual(fedora, g('fedora'))
self.assertEqual(suse, g('suse'))
self.assertEqual(rhel, g('redhat', use_rhceph=True))
self.assertEqual('scientific', n('Scientific'))
self.assertEqual('scientific', n('Scientific Linux'))
self.assertEqual('scientific', n('scientific linux'))
+ self.assertEqual('oraclel', n('Oracle Linux Server'))
+ self.assertEqual('oraclevms', n('Oracle VM server'))
self.assertEqual('suse', n('SUSE'))
self.assertEqual('suse', n('suse'))
self.assertEqual('suse', n('openSUSE'))
self.assertEqual(('debian', 'sid/jessie', 'sid'),
ceph_detect_init.platform_information())
+ with mock.patch('platform.linux_distribution',
+ lambda **kwargs: (('Oracle Linux Server', '7.3', ''))):
+ self.assertEqual(('Oracle Linux Server', '7.3', 'OL7.3'),
+ ceph_detect_init.platform_information())
+
+ with mock.patch('platform.linux_distribution',
+ lambda **kwargs: (('Oracle VM server', '3.4.2', ''))):
+ self.assertEqual(('Oracle VM server', '3.4.2', 'OVS3.4.2'),
+ ceph_detect_init.platform_information())
+
@mock.patch('platform.linux_distribution')
def test_platform_information_container(self, mock_linux_dist):
import sys