restart_on_stop Ticket: [SOL-950]

- Added restart_on_stop decorator function which starts plumgrid service is it has been stopped in the function
- Added restart_on_change to config-changed hook so that any config changes result in plugrid restart
- ifc_list_gateway only removed when change in ifcs.conf
This commit is contained in:
Bilal Baqar 2016-03-28 11:50:55 -07:00
commit 769e214bdf
3 changed files with 18 additions and 10 deletions

View File

@ -14,8 +14,6 @@ from charmhelpers.core.hookenv import (
config,
)
from charmhelpers.core.host import service_running
from charmhelpers.fetch import (
apt_install,
configure_sources,
@ -24,7 +22,6 @@ from charmhelpers.fetch import (
from pg_gw_utils import (
register_configs,
ensure_files,
restart_pg,
restart_map,
stop_pg,
determine_packages,
@ -35,6 +32,7 @@ from pg_gw_utils import (
fabric_interface_changed,
load_iptables,
restart_on_change,
restart_on_stop,
director_cluster_ready
)
@ -71,6 +69,8 @@ def plumgrid_changed():
@hooks.hook('config-changed')
@restart_on_stop()
@restart_on_change(restart_map())
def config_changed():
'''
This hook is run when a config parameter is changed.
@ -83,10 +83,6 @@ def config_changed():
if charm_config.changed('fabric-interfaces'):
if not fabric_interface_changed():
log("Fabric interface already set")
else:
stop_pg()
if charm_config.changed('external-interfaces'):
stop_pg()
if (charm_config.changed('install_sources') or
charm_config.changed('plumgrid-build') or
charm_config.changed('install_keys') or
@ -100,8 +96,6 @@ def config_changed():
load_iovisor()
ensure_mtu()
CONFIGS.write_all()
if not service_running('plumgrid'):
restart_pg()
@hooks.hook('upgrade-charm')

View File

@ -393,6 +393,19 @@ def director_cluster_ready():
return True if dirs_count == 1 or dirs_count == 3 else False
def restart_on_stop():
"""
Starts plumgrid service if it is stopped
"""
def wrap(f):
def wrapped_f(*args, **kwargs):
f(*args, **kwargs)
if not service_running('plumgrid'):
restart_pg()
return wrapped_f
return wrap
def restart_on_change(restart_map):
"""
Restart services based on configuration files changing
@ -403,6 +416,8 @@ def restart_on_change(restart_map):
f(*args, **kwargs)
for path in restart_map:
if path_hash(path) != checksums[path]:
if path == PG_IFCS_CONF:
ensure_files()
restart_pg()
break
return wrapped_f

View File

@ -24,7 +24,6 @@ TO_PATCH = [
'configure_sources',
'ensure_files',
'stop_pg',
'restart_pg',
'load_iovisor',
'ensure_mtu',
'add_lcm_key',