79
86
def test_associate_unassociated_floating_ip(self):
80
87
self._do_test_associate_floating_ip(None)
89
def _stub_migrate_instance_calls(self, method, multi_host, info):
90
fake_instance_type = {'rxtx_factor': 'fake_factor'}
91
fake_instance = {'uuid': 'fake_uuid',
92
'instance_type': fake_instance_type,
93
'project_id': 'fake_project_id'}
94
fake_migration = {'source_compute': 'fake_compute_source',
95
'dest_compute': 'fake_compute_dest'}
97
def fake_mig_inst_method(*args, **kwargs):
98
info['kwargs'] = kwargs
100
def fake_is_multi_host(*args, **kwargs):
103
def fake_get_floaters(*args, **kwargs):
104
return ['fake_float1', 'fake_float2']
106
self.stubs.Set(network_rpcapi.NetworkAPI, method,
107
fake_mig_inst_method)
108
self.stubs.Set(self.network_api, '_is_multi_host',
110
self.stubs.Set(self.network_api, '_get_floating_ip_addresses',
113
expected = {'instance_uuid': 'fake_uuid',
114
'source_compute': 'fake_compute_source',
115
'dest_compute': 'fake_compute_dest',
116
'rxtx_factor': 'fake_factor',
117
'project_id': 'fake_project_id',
118
'floating_addresses': None}
120
expected['floating_addresses'] = ['fake_float1', 'fake_float2']
121
return fake_instance, fake_migration, expected
123
def test_migrate_instance_start_with_multhost(self):
124
info = {'kwargs': {}}
125
arg1, arg2, expected = self._stub_migrate_instance_calls(
126
'migrate_instance_start', True, info)
127
expected['host'] = 'fake_compute_source'
128
self.network_api.migrate_instance_start(self.context, arg1, arg2)
129
self.assertEqual(info['kwargs'], expected)
131
def test_migrate_instance_start_without_multhost(self):
132
info = {'kwargs': {}}
133
arg1, arg2, expected = self._stub_migrate_instance_calls(
134
'migrate_instance_start', False, info)
135
self.network_api.migrate_instance_start(self.context, arg1, arg2)
136
self.assertEqual(info['kwargs'], expected)
138
def test_migrate_instance_finish_with_multhost(self):
139
info = {'kwargs': {}}
140
arg1, arg2, expected = self._stub_migrate_instance_calls(
141
'migrate_instance_finish', True, info)
142
expected['host'] = 'fake_compute_dest'
143
self.network_api.migrate_instance_finish(self.context, arg1, arg2)
144
self.assertEqual(info['kwargs'], expected)
146
def test_migrate_instance_finish_without_multhost(self):
147
info = {'kwargs': {}}
148
arg1, arg2, expected = self._stub_migrate_instance_calls(
149
'migrate_instance_finish', False, info)
150
self.network_api.migrate_instance_finish(self.context, arg1, arg2)
151
self.assertEqual(info['kwargs'], expected)
153
def test_is_multi_host_instance_has_no_fixed_ip(self):
154
def fake_fixed_ip_get_by_instance(ctxt, uuid):
155
raise exception.FixedIpNotFoundForInstance
156
self.stubs.Set(self.network_api.db, 'fixed_ip_get_by_instance',
157
fake_fixed_ip_get_by_instance)
158
instance = {'uuid': FAKE_UUID}
159
self.assertFalse(self.network_api._is_multi_host(self.context,
162
def test_is_multi_host_network_has_no_project_id(self):
163
is_multi_host = random.choice([True, False])
164
network = {'project_id': None,
165
'multi_host': is_multi_host, }
166
network_ref = self.network_api.db.network_create_safe(
167
self.context.elevated(),
170
def fake_fixed_ip_get_by_instance(ctxt, uuid):
171
fixed_ip = [{'network_id': network_ref['id'],
172
'instance_uuid': FAKE_UUID, }]
175
self.stubs.Set(self.network_api.db, 'fixed_ip_get_by_instance',
176
fake_fixed_ip_get_by_instance)
178
instance = {'uuid': FAKE_UUID}
179
result = self.network_api._is_multi_host(self.context, instance)
180
self.assertEqual(is_multi_host, result)
182
def test_is_multi_host_network_has_project_id(self):
183
is_multi_host = random.choice([True, False])
184
network = {'project_id': self.context.project_id,
185
'multi_host': is_multi_host, }
186
network_ref = self.network_api.db.network_create_safe(
187
self.context.elevated(),
190
def fake_fixed_ip_get_by_instance(ctxt, uuid):
191
fixed_ip = [{'network_id': network_ref['id'],
192
'instance_uuid': FAKE_UUID, }]
195
self.stubs.Set(self.network_api.db, 'fixed_ip_get_by_instance',
196
fake_fixed_ip_get_by_instance)
198
instance = {'uuid': FAKE_UUID}
199
result = self.network_api._is_multi_host(self.context, instance)
200
self.assertEqual(is_multi_host, result)
202
def test_get_backdoor_port(self):
203
backdoor_port = 59697
205
def fake_get_backdoor_port(ctxt):
208
self.stubs.Set(self.network_api.network_rpcapi, 'get_backdoor_port',
209
fake_get_backdoor_port)
211
port = self.network_api.get_backdoor_port(self.context)
212
self.assertEqual(port, backdoor_port)