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, cache_env_data,
get_dns_host, get_dns_host,
get_external_agent_f, get_external_agent_f,
update_legacy_ha_files update_legacy_ha_files,
remove_legacy_ha_files,
delete_legacy_resources
) )
hooks = Hooks() hooks = Hooks()
@ -232,23 +234,23 @@ def ha_relation_joined():
cluster_config = get_hacluster_config(excludes_key=['vip']) cluster_config = get_hacluster_config(excludes_key=['vip'])
resources = { resources = {
'res_PingCheck': 'ocf:pacemaker:ping',
'res_ClusterMon': 'ocf:pacemaker:ClusterMon', 'res_ClusterMon': 'ocf:pacemaker:ClusterMon',
'res_PingCheck': 'ocf:pacemaker:ping',
} }
resource_params = { 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" ' 'res_PingCheck': 'params host_list="{host}" dampen="5s" '
'debug={debug} multiplier="1000" ' 'debug={debug} multiplier="1000" '
'op monitor on-fail="restart" interval="10s" ' 'op monitor on-fail="restart" interval="10s" '
'timeout="60s" '.format(host=dns_hosts, 'timeout="60s" '.format(host=dns_hosts,
debug=debug), 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 = { clones = {
'cl_ClusterMon': 'res_ClusterMon meta interleave="true"',
'cl_PingCheck': 'res_PingCheck 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'], relation_set(corosync_bindiface=cluster_config['ha-bindiface'],
@ -258,6 +260,13 @@ def ha_relation_joined():
clones=clones) 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__': if __name__ == '__main__':
try: try:
hooks.execute(sys.argv) hooks.execute(sys.argv)

View File

@ -713,3 +713,14 @@ def cache_env_data():
with open(envrc_f, 'w') as f: with open(envrc_f, 'w') as f:
for k, v in env.items(): for k, v in env.items():
f.write(''.join([k, '=', v, '\n'])) 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')