Add ha-relation-departed.
This commit is contained in:
parent
eb4f261b09
commit
287ed6028c
@ -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)
|
||||||
|
@ -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')
|
||||||
|
Loading…
Reference in New Issue
Block a user