From 344131a6142cc3b52d8eec10f07ac21aefd4d5a0 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Thu, 17 Apr 2014 10:47:10 +0200 Subject: Service-legacy (non d-bus): - Add support for building service-legacy provider into cmake files (OFF by default) - Add service-legacy mof file (no indications, builds with older cmake) - Fix service enumeration (use chkconfig) --- CMakeLists.txt | 1 + mof/60_LMI_Service-legacy.mof | 71 +++++++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 4 +++ src/service/CMakeLists.txt | 2 +- src/service/util/servicedisc.sh | 5 +-- 5 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 mof/60_LMI_Service-legacy.mof diff --git a/CMakeLists.txt b/CMakeLists.txt index c5b0f4d..bcea097 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,7 @@ endif(NOT SYSCONF_INSTALL_DIR) option(WITH-FAN "Build fan provider" ON) option(WITH-POWER "Build power provider" ON) option(WITH-SERVICE "Build service provider" ON) +option(WITH-SERVICE-LEGACY "Build service-legacy provider" OFF) option(WITH-ACCOUNT "Build account provider" ON) option(WITH-HARDWARE "Build hardware provider" ON) option(WITH-LOGICALFILE "Build logical file provider" ON) diff --git a/mof/60_LMI_Service-legacy.mof b/mof/60_LMI_Service-legacy.mof new file mode 100644 index 0000000..d1717bb --- /dev/null +++ b/mof/60_LMI_Service-legacy.mof @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2012-2014 Red Hat, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Vitezslav Crhonek + */ + +[ Version("0.2.0"), + Description("Class representing Linux Service"), + Provider("cmpi:cmpiLMI_Service") ] +class LMI_Service: CIM_Service +{ + [ Override("StartService"), + Description("Start (activate) the service.") ] + uint32 StartService(); + + [ Override("StopService"), + Description("Stop (deactivate) the service.") ] + uint32 StopService(); + + [ Description("Reload configuration of the service.") ] + uint32 ReloadService(); + + [ Description("Restart the service. If the service is " + "not running yet, it will be started.") ] + uint32 RestartService(); + + [ Description("Restart the service if the service is running. " + "This does nothing if the service is not running.") ] + uint32 TryRestartService(); + + [ Description("Equivalent to the TryRestartService() method.") ] + uint32 CondRestartService(); + + [ Description("Reload the service if it supports it. If not, " + "restart the service instead. If the service is not " + "running yet, it will be started.") ] + uint32 ReloadOrRestartService(); + + [ Description("Reload the service if it supports it. If not, " + "restart the service instead. This does nothing if " + "the service is not running.") ] + uint32 ReloadOrTryRestartService(); + + [ Description("Enable the service persistently. The service will start " + "on the next boot of the system. Note that this method " + "does not have the effect of also starting the service " + "being enabled. If this is desired, a separate StartService " + "method call must be invoked for the service.") ] + uint32 TurnServiceOn(); + + [ Description("Disable the service. The service will not start on the " + "next boot of the system. Note that this method does not " + "implicitly stop the service that is being disabled. If " + "this is desired, an additional StopService method call " + "command should be executed afterwards.") ] + uint32 TurnServiceOff(); +}; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ed81b0e..abca02d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,6 +32,10 @@ if (WITH-SERVICE) add_subdirectory(service-dbus) endif (WITH-SERVICE) +if (WITH-SERVICE-LEGACY) + add_subdirectory(service) +endif (WITH-SERVICE-LEGACY) + if (WITH-ACCOUNT) add_subdirectory(account) endif (WITH-ACCOUNT) diff --git a/src/service/CMakeLists.txt b/src/service/CMakeLists.txt index 11ac5c8..6d75d38 100644 --- a/src/service/CMakeLists.txt +++ b/src/service/CMakeLists.txt @@ -1,7 +1,7 @@ set(PROVIDER_NAME Service) set(LIBRARY_NAME cmpiLMI_${PROVIDER_NAME}) -set(MOF 60_LMI_Service.mof) +set(MOF 60_LMI_Service-legacy.mof) set(CIMPROVAGT_SCRIPT cmpiLMI_${PROVIDER_NAME}-cimprovagt) set(provider_SRCS diff --git a/src/service/util/servicedisc.sh b/src/service/util/servicedisc.sh index f059200..f0964fa 100755 --- a/src/service/util/servicedisc.sh +++ b/src/service/util/servicedisc.sh @@ -37,10 +37,7 @@ then exit 0 elif [ -d $SYSV_SDIR ]; then - for i in $SYSV_SDIR/*; - do - echo ${i#$SYSV_SDIR/} - done + chkconfig --list | awk '{print $1}' exit 0 fi -- cgit