[hopem,r=gnuoy]
Ensure duplicate resources not added to vip group Closes-Bug: 1476325
This commit is contained in:
@@ -523,6 +523,13 @@ def ha_joined(relation_id=None):
|
||||
|
||||
if iface is not None:
|
||||
vip_key = 'res_ks_{}_vip'.format(iface)
|
||||
if vip_key in vip_group:
|
||||
log("Resource '%s' (vip='%s') already exists in "
|
||||
"vip group - skipping" % (vip_key, vip),
|
||||
WARNING)
|
||||
continue
|
||||
|
||||
vip_group.append(vip_key)
|
||||
resources[vip_key] = res_ks_vip
|
||||
resource_params[vip_key] = (
|
||||
'params {ip}="{vip}" cidr_netmask="{netmask}"'
|
||||
@@ -531,7 +538,6 @@ def ha_joined(relation_id=None):
|
||||
iface=iface,
|
||||
netmask=netmask)
|
||||
)
|
||||
vip_group.append(vip_key)
|
||||
|
||||
if len(vip_group) >= 1:
|
||||
relation_set(relation_id=relation_id,
|
||||
|
@@ -658,6 +658,30 @@ class KeystoneRelationTests(CharmTestCase):
|
||||
}
|
||||
self.relation_set.assert_called_with(**args)
|
||||
|
||||
def test_ha_joined_duplicate_vip_key(self):
|
||||
self.get_hacluster_config.return_value = {
|
||||
'vip': '10.10.10.10 10.10.10.11',
|
||||
'ha-bindiface': 'em0',
|
||||
'ha-mcastport': '8080'
|
||||
}
|
||||
self.get_iface_for_address.return_value = 'em1'
|
||||
self.get_netmask_for_address.return_value = '255.255.255.0'
|
||||
hooks.ha_joined()
|
||||
args = {
|
||||
'relation_id': None,
|
||||
'corosync_bindiface': 'em0',
|
||||
'corosync_mcastport': '8080',
|
||||
'init_services': {'res_ks_haproxy': 'haproxy'},
|
||||
'resources': {'res_ks_em1_vip': 'ocf:heartbeat:IPaddr2',
|
||||
'res_ks_haproxy': 'lsb:haproxy'},
|
||||
'resource_params': {
|
||||
'res_ks_em1_vip': 'params ip="10.10.10.10"'
|
||||
' cidr_netmask="255.255.255.0" nic="em1"',
|
||||
'res_ks_haproxy': 'op monitor interval="5s"'},
|
||||
'clones': {'cl_ks_haproxy': 'res_ks_haproxy'}
|
||||
}
|
||||
self.relation_set.assert_called_with(**args)
|
||||
|
||||
def test_ha_joined_no_bound_ip(self):
|
||||
self.get_hacluster_config.return_value = {
|
||||
'vip': '10.10.10.10',
|
||||
|
Reference in New Issue
Block a user