From: Alfredo Deza Date: Tue, 2 Feb 2016 12:31:51 +0000 (-0500) Subject: [BZ-1282484] create a utility to infer if a server uses upstart X-Git-Tag: v1.5.32~8^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fa507b5a7117d9790e64edbbc682a761fcc47e1c;p=ceph-deploy.git [BZ-1282484] create a utility to infer if a server uses upstart Signed-off-by: Alfredo Deza --- diff --git a/ceph_deploy/util/system.py b/ceph_deploy/util/system.py index a8a38bd..92e03c0 100644 --- a/ceph_deploy/util/system.py +++ b/ceph_deploy/util/system.py @@ -31,6 +31,36 @@ def is_systemd(conn): ) +def is_upstart(conn): + """ + This helper should only used as a fallback (last resort) as it is not + guaranteed that it will be absolutely correct. + """ + # it may be possible that we may be systemd and the caller never checked + # before so lets do that + if is_systemd(conn): + return False + + # get the initctl executable, if it doesn't exist we can't proceed so we + # are probably not upstart + initctl = conn.remote_module.which('initctl') + if not initctl: + return False + + # finally, try and get output from initctl that might hint this is an upstart + # system. On a Ubuntu 14.04.2 system this would look like: + # $ initctl version + # init (upstart 1.12.1) + stdout, stderr, _ = remoto.process.check( + conn, + [initctl, 'version'], + ) + result_string = ' '.join(stdout) + if 'upstart' in result_string: + return True + return False + + def enable_service(conn, service='ceph'): """ Enable a service on a remote host depending on the type of init system.