Commit 75e766c1 authored by Nicolas Wavrant's avatar Nicolas Wavrant

addresiliency: now possible to register a hook to run after takeover

parent fb8912e8
......@@ -54,6 +54,7 @@ class Recipe(GenericSlapRecipe):
'software': slap_connection['software-release-url'],
'namebase': self.parameter_dict['namebase'],
'takeover_triggered_file_path': self.options['takeover-triggered-file-path'],
'post_takeover_hook': self.options.get('post-takeover-hook', ''),
})
path_list.append(takeover_wrapper)
......
......@@ -2,6 +2,7 @@
import logging
import time
import traceback
import subprocess
import slapos
from slapos.slap.slap import NotFoundError
......@@ -11,8 +12,8 @@ logging.basicConfig(level=logging.DEBUG)
def takeover(server_url, key_file, cert_file, computer_guid,
partition_id, software_release, namebase,
winner_instance_suffix = None,
takeover_triggered_file_path=None):
winner_instance_suffix=None, takeover_triggered_file_path=None,
post_takeover_hook=None):
"""
This function does
......@@ -78,6 +79,12 @@ def takeover(server_url, key_file, cert_file, computer_guid,
# Create "lock" file preventing equeue to run import scripts
# XXX hardcoded
open(takeover_triggered_file_path, 'w').write('')
# Run post takeover hook
if post_takeover_hook:
log.debug('Running post-takeover hook')
subprocess.call(post_takeover_hook.split(' '))
def run(args):
slapos.recipe.addresiliency.takeover.takeover(server_url = args.pop('server_url'),
......@@ -87,5 +94,6 @@ def run(args):
partition_id = args.pop('partition_id'),
software_release = args.pop('software'),
namebase = args.pop('namebase'),
takeover_triggered_file_path = args.pop('takeover_triggered_file_path'))
takeover_triggered_file_path = args.pop('takeover_triggered_file_path'),
post_takeover_hook = args.pop('post_takeover_hook'))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment