Purge pkgs when not in dvr mode

This commit is contained in:
Liam Young 2015-03-02 14:56:11 +00:00
parent 8b5d14e345
commit 7a4e0e1222
2 changed files with 17 additions and 10 deletions

View File

@ -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)

View File

@ -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()