aboutsummaryrefslogtreecommitdiffstats
path: root/charms/trusty/keepalived/hooks/services.py
diff options
context:
space:
mode:
authorStuart Mackie <wsmackie@juniper.net>2016-10-07 12:24:58 -0700
committerStuart Mackie <wsmackie@juniper.net>2016-10-07 12:24:58 -0700
commit4faa7f927149a5c4ef7a03523f7bc14523cb9baa (patch)
tree0be55aa0809cc395e45baeae63db660b4e72fe83 /charms/trusty/keepalived/hooks/services.py
parent82f1a7eb5535b30a95b1e71ff18c315d40d1e6f0 (diff)
Charms for Contrail 3.1 with Mitaka
Change-Id: Id37f3b9743d1974e31fcd7cd9c54be41bb0c47fb Signed-off-by: Stuart Mackie <wsmackie@juniper.net>
Diffstat (limited to 'charms/trusty/keepalived/hooks/services.py')
-rw-r--r--charms/trusty/keepalived/hooks/services.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/charms/trusty/keepalived/hooks/services.py b/charms/trusty/keepalived/hooks/services.py
new file mode 100644
index 0000000..bc456aa
--- /dev/null
+++ b/charms/trusty/keepalived/hooks/services.py
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+
+import os
+
+from charmhelpers.core import host
+from charmhelpers.core import hookenv
+from charmhelpers.core.services.base import ServiceManager
+from charmhelpers.core.services import helpers
+
+import actions
+
+SYSCTL_FILE = os.path.join(os.sep, 'etc', 'sysctl.d', '50-keepalived.conf')
+KEEPALIVED_CONFIG_FILE = os.path.join(os.sep, 'etc', 'keepalived',
+ 'keepalived.conf')
+config = hookenv.config()
+
+
+def manage():
+ manager = ServiceManager([
+ {
+ 'service': 'keepalived',
+ 'required_data': [
+ helpers.RequiredConfig('virtual-ip',
+ 'router-id'),
+ {'is_leader': hookenv.is_leader()}
+ ],
+ 'data_ready': [
+ actions.log_start,
+ helpers.template(
+ source='keepalived.conf',
+ target=KEEPALIVED_CONFIG_FILE,
+ perms=0o644
+ )
+ ],
+ # keepalived has no "status" command
+ 'stop': [
+ lambda arg: host.service_stop('keepalived')
+ ],
+ 'start': [
+ lambda arg: host.service_restart('keepalived')
+ ],
+ },
+ {
+ 'service': 'procps',
+ 'required_data': [
+ {'sysctl': {'net.ipv4.ip_nonlocal_bind': 1}},
+ ],
+ 'data_ready': [
+ helpers.template(
+ source='50-keepalived.conf',
+ target=SYSCTL_FILE,
+ perms=0o644
+ )
+ ],
+ }
+ ])
+ manager.manage()