32
34
setattr(self, m, self._patch(m))
33
35
self.test_config = TestConfig()
34
36
self.config.side_effect = self.test_config.get
37
self.network_get_primary_address.side_effect = NotImplementedError
36
39
def _patch(self, method):
37
40
_m = patch('charmhelpers.contrib.openstack.ip.' + method)
48
51
calls = [call('os-public-network'),
49
52
call('prefer-ipv6')]
50
53
self.config.assert_has_calls(calls)
51
self.get_address_in_network.assert_called_with(None, 'unit1')
53
55
def test_resolve_address_default_internal(self):
54
56
self.is_clustered.return_value = False
59
61
calls = [call('os-internal-network'),
60
62
call('prefer-ipv6')]
61
63
self.config.assert_has_calls(calls)
62
self.get_address_in_network.assert_called_with(None, 'unit1')
64
65
def test_resolve_address_public_not_clustered(self):
65
66
self.is_clustered.return_value = False
111
112
def test_resolve_address_ipv6_fallback(self):
112
113
self.test_config.set('prefer-ipv6', True)
113
114
self.is_clustered.return_value = False
115
self.get_address_in_network.assert_called_with(None, '::1')
115
self.assertEqual(ip.resolve_address(), '::1')
117
117
@patch.object(ip, 'resolve_address')
118
118
def test_canonical_url_http(self, resolve_address):
135
135
def test_canonical_url_ipv6(self, resolve_address):
136
136
resolve_address.return_value = 'unit1'
137
137
self.assertTrue(ip.canonical_url(None), 'http://[unit1]')
139
def test_resolve_address_network_get(self):
140
self.is_clustered.return_value = False
141
self.unit_get.return_value = 'unit1'
142
self.network_get_primary_address.side_effect = None
143
self.network_get_primary_address.return_value = '10.5.60.1'
144
self.assertEqual(ip.resolve_address(), '10.5.60.1')
145
self.unit_get.assert_called_with('public-address')
146
calls = [call('os-public-network'),
148
self.config.assert_has_calls(calls)
149
self.network_get_primary_address.assert_called_with('public')
151
def test_resolve_address_network_get_clustered(self):
152
self.is_clustered.return_value = True
153
self.test_config.set('vip', '10.5.60.20 192.168.1.20')
154
self.network_get_primary_address.side_effect = None
155
self.network_get_primary_address.return_value = '10.5.60.1'
156
self.resolve_network_cidr.return_value = '10.5.60.1/24'
157
self.assertEqual(ip.resolve_address(), '10.5.60.20')
158
calls = [call('os-public-hostname'),
160
call('os-public-network')]
161
self.config.assert_has_calls(calls)
162
self.network_get_primary_address.assert_called_with('public')