From e1b9e7fe3b1fa6b6e829f7eb5787b67d9894cfd1 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 2 May 2014 17:28:38 +0200 Subject: pkg_services: Check if a service is actually installed So far we returned the full list from pkg_services. This is o.k. for many to one mappings like apache but not for one to many like openjdk. To avoid to print out services that aren't installed check that beforehand. --- whatmaps/debiandistro.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'whatmaps/debiandistro.py') diff --git a/whatmaps/debiandistro.py b/whatmaps/debiandistro.py index 4a3d0db..3a47d50 100644 --- a/whatmaps/debiandistro.py +++ b/whatmaps/debiandistro.py @@ -26,7 +26,7 @@ except ImportError: lsb_release = None import logging -import string +import os import subprocess import sys @@ -35,7 +35,7 @@ from . debianpkg import DebianPkg from . pkg import PkgError class DebianDistro(Distro): - "Debian (dpkg) based distribution""" + "Debian (dpkg) based distribution" id = 'Debian' _pkg_services = { 'apache2-mpm-worker': [ 'apache2' ], @@ -73,8 +73,14 @@ class DebianDistro(Distro): @classmethod def restart_service_cmd(klass, name): + """The command that should be used to start a service""" return ['invoke-rc.d', name, 'restart'] + @classmethod + def is_service_installed(klass, name): + """Whether the system has this service""" + return os.path.exists('/etc/init.d/%s' % name) + @classmethod def has_apt(klass): return True -- cgit v1.2.3