From 4faa7f927149a5c4ef7a03523f7bc14523cb9baa Mon Sep 17 00:00:00 2001 From: Stuart Mackie Date: Fri, 7 Oct 2016 12:24:58 -0700 Subject: Charms for Contrail 3.1 with Mitaka Change-Id: Id37f3b9743d1974e31fcd7cd9c54be41bb0c47fb Signed-off-by: Stuart Mackie --- charms/trusty/keepalived/hooks/services.py | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 charms/trusty/keepalived/hooks/services.py (limited to 'charms/trusty/keepalived/hooks/services.py') 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() -- cgit 1.2.3-korg