99e09f2952
Change-Id: I21ac0287b22e9ad125842e50205f45243d0a3b2d
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
|
|
|
|
import logging
|
|
import platform
|
|
import sys
|
|
|
|
import linux
|
|
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
def detect_init(*args, **kwargs):
|
|
"""Detect the service manager running on this box
|
|
args/kwargs match those of service.Service
|
|
:return: The appropriate Service object for this system
|
|
"""
|
|
detected_os = platform.system()
|
|
if detected_os == 'Linux':
|
|
supported_linux_flavors = ['ubuntu', 'debian', 'centos linux', 'red hat enterprise linux server']
|
|
flavor = platform.linux_distribution()[0]
|
|
if flavor.lower() not in supported_linux_flavors:
|
|
log.warn('{0} is not a support Linux distribution'.format(flavor))
|
|
return detect_linux_init(*args, **kwargs)
|
|
else:
|
|
print("{0} is not currently supported by the Monasca Agent".format(detected_os))
|
|
sys.exit(1)
|
|
|
|
# Service enable, includes setup of users/config directories so must be
|
|
# done before configuration
|
|
|
|
|
|
def detect_linux_init(*args, **kwargs):
|
|
"""Detect which of the linux inits is running
|
|
:return: Return a valid Linux service manager object
|
|
"""
|
|
with open('/proc/1/comm', 'r') as init_proc:
|
|
init = init_proc.readline().strip()
|
|
if init == 'systemd':
|
|
return linux.Systemd(*args, **kwargs)
|
|
else:
|
|
return linux.SysV(*args, **kwargs)
|