[hopem,r=gnuoy]

Ensure duplicate resources not added to vip group

Closes-Bug: 1476325
This commit is contained in:
Liam Young
2015-09-30 08:01:00 +01:00
2 changed files with 31 additions and 1 deletions

View File

@@ -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,

View File

@@ -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',