From 7a4e0e1222f4dcadb0d2f556c5b3f76184ba604d Mon Sep 17 00:00:00 2001 From: Liam Young Date: Mon, 2 Mar 2015 14:56:11 +0000 Subject: [PATCH] Purge pkgs when not in dvr mode --- hooks/neutron_ovs_hooks.py | 13 +++++++++---- hooks/neutron_ovs_utils.py | 14 ++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/hooks/neutron_ovs_hooks.py b/hooks/neutron_ovs_hooks.py index c7ed9a02..c5201352 100755 --- a/hooks/neutron_ovs_hooks.py +++ b/hooks/neutron_ovs_hooks.py @@ -16,16 +16,18 @@ from charmhelpers.core.host import ( ) from charmhelpers.fetch import ( - apt_install, apt_update + apt_install, apt_update, apt_purge ) from neutron_ovs_utils import ( + DVR_PACKAGES, configure_ovs, determine_packages, determine_dvr_packages, get_shared_secret, register_configs, restart_map, + use_dvr, ) hooks = Hooks() @@ -55,9 +57,11 @@ def config_changed(): @hooks.hook('neutron-plugin-api-relation-changed') @restart_on_change(restart_map()) def neutron_plugin_api_changed(): - if determine_dvr_packages(): + if use_dvr(): apt_update() - apt_install(determine_dvr_packages(), fatal=True) + apt_install(DVR_PACKAGES, fatal=True) + else: + apt_purge(DVR_PACKAGES, fatal=True) configure_ovs() CONFIGS.write_all() # If dvr setting has changed, need to pass that on @@ -67,8 +71,9 @@ def neutron_plugin_api_changed(): @hooks.hook('neutron-plugin-relation-joined') def neutron_plugin_joined(relation_id=None): + secret = get_shared_secret() if use_dvr() else None rel_data = { - 'metadata-shared-secret': get_shared_secret() + 'metadata-shared-secret': secret, } relation_set(relation_id=relation_id, **rel_data) diff --git a/hooks/neutron_ovs_utils.py b/hooks/neutron_ovs_utils.py index f64d58ff..55a8c8d7 100644 --- a/hooks/neutron_ovs_utils.py +++ b/hooks/neutron_ovs_utils.py @@ -21,7 +21,7 @@ NEUTRON_FWAAS_CONF = "/etc/neutron/fwaas_driver.ini" ML2_CONF = '%s/plugins/ml2/ml2_conf.ini' % NEUTRON_CONF_DIR EXT_PORT_CONF = '/etc/init/ext-port.conf' NEUTRON_METADATA_AGENT_CONF = "/etc/neutron/metadata_agent.ini" - +DVR_PACKAGES = ['neutron-vpn-agent'] BASE_RESOURCE_MAP = OrderedDict([ (NEUTRON_CONF, { @@ -60,10 +60,9 @@ DATA_BRIDGE = 'br-data' def determine_dvr_packages(): - pkgs = [] - if neutron_ovs_context.use_dvr(): - pkgs = ['neutron-vpn-agent'] - return pkgs + if use_dvr(): + return DVR_PACKAGES + return [] def determine_packages(): @@ -87,7 +86,7 @@ def resource_map(): hook execution. ''' resource_map = deepcopy(BASE_RESOURCE_MAP) - if neutron_ovs_context.use_dvr(): + if use_dvr(): resource_map.update(DVR_RESOURCE_MAP) dvr_services = ['neutron-metadata-agent', 'neutron-vpn-agent'] resource_map[NEUTRON_CONF]['services'] += dvr_services @@ -116,3 +115,6 @@ def get_shared_secret(): ctxt = neutron_ovs_context.DVRSharedSecretContext()() if 'shared_secret' in ctxt: return ctxt['shared_secret'] + +def use_dvr(): + return neutron_ovs_context.use_dvr()