From: Nikita Gerasimov <nikita.gerasimov@xxxxxxxxxx>
Oracle Linux Server is API/ABI compatible with RHEL/CentOS Linux distro.
Oracle VM Server is Xen based VM server. Which modern versions Dom0 is based on Oracle Linux 6
Signed-off-by: Nikita Gerasimov <nikita.gerasimov@xxxxxxxxxx>
---
src/ceph-detect-init/ceph_detect_init/__init__.py | 18 ++++++++++++++++--
.../ceph_detect_init/oraclevm/__init__.py | 11 +++++++++++
src/ceph-detect-init/tests/test_all.py | 8 ++++++++
3 files changed, 35 insertions(+), 2 deletions(-)
create mode 100644 src/ceph-detect-init/ceph_detect_init/oraclevm/__init__.py
diff --git a/src/ceph-detect-init/ceph_detect_init/__init__.py b/src/ceph-detect-init/ceph_detect_init/__init__.py
index aad3eee..c057409 100644
--- a/src/ceph-detect-init/ceph_detect_init/__init__.py
+++ b/src/ceph-detect-init/ceph_detect_init/__init__.py
@@ -24,6 +24,7 @@ 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 oraclevm
import os
import logging
import platform
@@ -44,7 +45,8 @@ def get(use_rhceph=False):
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()
@@ -64,6 +66,8 @@ def _get_distro(distro, use_rhceph=False):
'linuxmint': debian,
'centos': centos,
'scientific': centos,
+ 'oraclel': centos,
+ 'oraclevm': oraclevm,
'redhat': centos,
'fedora': fedora,
'suse': suse,
@@ -90,6 +94,10 @@ def _normalized_distro_name(distro):
return 'suse'
elif distro.startswith('centos'):
return 'centos'
+ elif distro.startswith('oracle linux'):
+ return 'oraclel'
+ elif distro.startswith('oracle vm'):
+ return 'oraclevm'
elif distro.startswith(('gentoo', 'funtoo', 'exherbo')):
return 'gentoo'
return distro
@@ -128,7 +136,8 @@ def platform_information():
raise exc.UnsupportedPlatform(platform.system(), '', '')
# this could be an empty string in Debian
- if not codename and 'debian' in distro.lower():
+ distro_lower = distro.lower()
+ if not codename and 'debian' in distro_lower:
debian_codenames = {
'8': 'jessie',
'7': 'wheezy',
@@ -136,6 +145,11 @@ def platform_information():
}
major_version = release.split('.')[0]
codename = debian_codenames.get(major_version, '')
+ # this is an empty string in Oracle
+ elif distro_lower.startswith('oracle linux'):
+ codename = 'OL' + release
+ elif distro_lower.startswith('oracle vm'):
+ codename = 'OVM' + release
# In order to support newer jessie/sid or wheezy/sid strings
# we test this if sid is buried in the minor, we should use
diff --git a/src/ceph-detect-init/ceph_detect_init/oraclevm/__init__.py b/src/ceph-detect-init/ceph_detect_init/oraclevm/__init__.py
new file mode 100644
index 0000000..f7bf85b
--- /dev/null
+++ b/src/ceph-detect-init/ceph_detect_init/oraclevm/__init__.py
@@ -0,0 +1,11 @@
+distro = None
+release = None
+codename = None
+
+
+def choose_init():
+ """Select a init system
+
+ Returns the name of a init system (upstart, sysvinit ...).
+ """
+ return 'sysvinit'