summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipaserver/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipa-server/ipaserver/service.py')
-rw-r--r--ipa-server/ipaserver/service.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/ipa-server/ipaserver/service.py b/ipa-server/ipaserver/service.py
new file mode 100644
index 000000000..f0109488d
--- /dev/null
+++ b/ipa-server/ipaserver/service.py
@@ -0,0 +1,86 @@
+# Authors: Karl MacMillan <kmacmillan@mentalrootkit.com>
+#
+# Copyright (C) 2007 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 or later
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+from ipa.ipautil import *
+import logging, sys
+
+
+def stop(service_name):
+ run(["/sbin/service", service_name, "stop"])
+
+def start(service_name):
+ run(["/sbin/service", service_name, "start"])
+
+def restart(service_name):
+ run(["/sbin/service", service_name, "restart"])
+
+def chkconfig_on(service_name):
+ run(["/sbin/chkconfig", service_name, "on"])
+
+def chkconfig_off(service_name):
+ run(["/sbin/chkconfig", service_name, "off"])
+
+def print_msg(message, output_fd=sys.stdout):
+ logging.debug(message)
+ output_fd.write(message)
+ output_fd.write("\n")
+
+
+class Service:
+ def __init__(self, service_name):
+ self.service_name = service_name
+ self.num_steps = -1
+ self.current_step = -1
+ self.output_fd = sys.stdout
+
+ def set_output(self, fd):
+ self.output_fd = fd
+
+ def stop(self):
+ stop(self.service_name)
+
+ def start(self):
+ start(self.service_name)
+
+ def restart(self):
+ restart(self.service_name)
+
+ def chkconfig_on(self):
+ chkconfig_on(self.service_name)
+
+ def chkconfig_off(self):
+ chkconfig_off(self.service_name)
+
+ def print_msg(self, message):
+ print_msg(message, self.output_fd)
+
+ def start_creation(self, num_steps, message):
+ self.num_steps = num_steps
+ self.cur_step = 0
+ self.print_msg(message)
+
+ def step(self, message):
+ self.cur_step += 1
+ self.print_msg(" [%d/%d]: %s" % (self.cur_step, self.num_steps, message))
+
+ def done_creation(self):
+ self.cur_step = -1
+ self.num_steps = -1
+ self.print_msg("done configuring %s." % self.service_name)
+