diff options
author | Stuart Mackie <wsmackie@juniper.net> | 2016-10-07 12:24:58 -0700 |
---|---|---|
committer | Stuart Mackie <wsmackie@juniper.net> | 2016-10-07 12:24:58 -0700 |
commit | 4faa7f927149a5c4ef7a03523f7bc14523cb9baa (patch) | |
tree | 0be55aa0809cc395e45baeae63db660b4e72fe83 /charms/trusty/keepalived/hooks/services.py | |
parent | 82f1a7eb5535b30a95b1e71ff18c315d40d1e6f0 (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.py | 57 |
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() |