Add ha-relation-departed.

This commit is contained in:
Hui Xiang 2014-12-22 20:48:25 +08:00
parent eb4f261b09
commit 287ed6028c
2 changed files with 27 additions and 7 deletions

View File

@ -50,7 +50,9 @@ from quantum_utils import (
cache_env_data,
get_dns_host,
get_external_agent_f,
update_legacy_ha_files
update_legacy_ha_files,
remove_legacy_ha_files,
delete_legacy_resources
)
hooks = Hooks()
@ -232,23 +234,23 @@ def ha_relation_joined():
cluster_config = get_hacluster_config(excludes_key=['vip'])
resources = {
'res_PingCheck': 'ocf:pacemaker:ping',
'res_ClusterMon': 'ocf:pacemaker:ClusterMon',
'res_PingCheck': 'ocf:pacemaker:ping',
}
resource_params = {
'res_ClusterMon': 'params user="root" update="30" '
'extra_options="-E {external_agent}" '
'op monitor on-fail="restart" interval="10s"'
.format(external_agent=external_agent),
'res_PingCheck': 'params host_list="{host}" dampen="5s" '
'debug={debug} multiplier="1000" '
'op monitor on-fail="restart" interval="10s" '
'timeout="60s" '.format(host=dns_hosts,
debug=debug),
'res_ClusterMon': 'params user="root" update="30" '
'extra_options="-E {external_agent}" '
'op monitor on-fail="restart" interval="10s"'
.format(external_agent=external_agent),
}
clones = {
'cl_ClusterMon': 'res_ClusterMon meta interleave="true"',
'cl_PingCheck': 'res_PingCheck meta interleave="true"',
'cl_ClusterMon': 'res_ClusterMon meta interleave="true"'
}
relation_set(corosync_bindiface=cluster_config['ha-bindiface'],
@ -258,6 +260,13 @@ def ha_relation_joined():
clones=clones)
@hooks.hook('ha-relation-departed')
def ha_relation_destroyed():
if config('ha-legacy-mode'):
delete_legacy_resources()
remove_legacy_ha_files()
if __name__ == '__main__':
try:
hooks.execute(sys.argv)

View File

@ -713,3 +713,14 @@ def cache_env_data():
with open(envrc_f, 'w') as f:
for k, v in env.items():
f.write(''.join([k, '=', v, '\n']))
def delete_legacy_resources():
def crm_op(op, res):
cmd = 'crm -w -F %s %s' % (op, res)
subprocess.call(cmd.split())
crm_op('resource stop', 'res_PingCheck')
crm_op('resource stop', 'res_ClusterMon')
crm_op('configure delete', 'res_PingCheck')
crm_op('configure delete', 'res_ClusterMon')