From 420e95c08984354715fb0cbaf1baa7f9aadef01e Mon Sep 17 00:00:00 2001 From: plumgrid Date: Sun, 7 Aug 2016 13:42:00 -0400 Subject: [PATCH] Configuring analyst for OPSVM Ticket: [SOL-1144] Signed-off-by: plumgrid --- hooks/pg_dir_hooks.py | 4 +++- hooks/pg_dir_utils.py | 25 +++++++++++++++++++++++++ unit_tests/test_pg_dir_hooks.py | 3 ++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/hooks/pg_dir_hooks.py b/hooks/pg_dir_hooks.py index 2cf01ba..20d9f39 100755 --- a/hooks/pg_dir_hooks.py +++ b/hooks/pg_dir_hooks.py @@ -41,7 +41,8 @@ from pg_dir_utils import ( load_iptables, restart_on_change, director_cluster_ready, - configure_pg_sources + configure_pg_sources, + configure_analyst_opsvm ) hooks = Hooks() @@ -159,6 +160,7 @@ def start(): ''' This hook is run when the charm is started. ''' + configure_analyst_opsvm() if config('plumgrid-license-key') is not None: count = 0 while (count < 10): diff --git a/hooks/pg_dir_utils.py b/hooks/pg_dir_utils.py index 9e5ee5f..2be390a 100644 --- a/hooks/pg_dir_utils.py +++ b/hooks/pg_dir_utils.py @@ -103,6 +103,31 @@ def configure_pg_sources(): log('Unable to update /etc/apt/sources.list') +def configure_analyst_opsvm(): + ''' + Configures Anaylyst for OPSVM + ''' + if not service_running('plumgrid'): + restart_pg() + NS_ENTER = ('/opt/local/bin/nsenter -t $(ps ho pid --ppid ' + '$(cat /var/run/libvirt/lxc/plumgrid.pid)) -m -n -u -i -p ') + sigmund_stop = NS_ENTER + '/usr/bin/service plumgrid-sigmund stop' + sigmund_status = NS_ENTER \ + + '/usr/bin/service plumgrid-sigmund status' + sigmund_autoboot = NS_ENTER \ + + '/usr/bin/sigmund-configure --ip {0} --start --autoboot' \ + .format(config('opsvm-ip')) + try: + status = subprocess.check_output(sigmund_status, shell=True) + if 'start/running' in status: + if subprocess.call(sigmund_stop, shell=True): + log('plumgrid-sigmund couldn\'t be stopped!') + return + subprocess.check_call(sigmund_autoboot, shell=True) + except: + log('plumgrid-sigmund couldn\'t be started!') + + def determine_packages(): ''' Returns list of packages required by PLUMgrid director as specified diff --git a/unit_tests/test_pg_dir_hooks.py b/unit_tests/test_pg_dir_hooks.py index 7a0ad48..45146ed 100644 --- a/unit_tests/test_pg_dir_hooks.py +++ b/unit_tests/test_pg_dir_hooks.py @@ -32,7 +32,8 @@ TO_PATCH = [ 'post_pg_license', 'config', 'load_iptables', - 'status_set' + 'status_set', + 'configure_analyst_opsvm' ] NEUTRON_CONF_DIR = "/etc/neutron"