59
64
expected_msg['args']['host'] = host_param
60
65
elif 'host' in expected_msg['args']:
61
66
del expected_msg['args']['host']
62
if 'instance' in expected_msg['args']:
63
instance = expected_msg['args']['instance']
64
del expected_msg['args']['instance']
65
if method in ['rollback_live_migration_at_destination',
66
'pre_live_migration', 'remove_volume_connection',
67
'post_live_migration_at_destination']:
68
expected_msg['args']['instance_id'] = instance['id']
69
elif method == 'get_instance_disk_info':
70
expected_msg['args']['instance_name'] = instance['name']
72
expected_msg['args']['instance_uuid'] = instance['uuid']
73
expected_msg['version'] = rpcapi.RPC_API_VERSION
67
if 'destination' in expected_msg['args']:
68
del expected_msg['args']['destination']
69
expected_msg['version'] = expected_version
75
71
cast_and_call = ['confirm_resize', 'stop_instance']
76
72
if rpc_method == 'call' and method in cast_and_call:
77
73
kwargs['cast'] = False
78
74
if 'host' in kwargs:
79
75
host = kwargs['host']
76
elif 'destination' in kwargs:
77
host = kwargs['destination']
81
79
host = kwargs['instance']['host']
82
80
expected_topic = '%s.%s' % (FLAGS.compute_topic, host)
106
104
def test_add_fixed_ip_to_instance(self):
107
105
self._test_compute_api('add_fixed_ip_to_instance', 'cast',
108
instance=self.fake_instance, network_id='id')
106
instance=self.fake_instance, network_id='id', version='1.8')
110
108
def test_attach_volume(self):
111
109
self._test_compute_api('attach_volume', 'cast',
112
instance=self.fake_instance, volume_id='id', mountpoint='mp')
114
def test_check_shared_storage_test_file(self):
115
self._test_compute_api('check_shared_storage_test_file', 'call',
116
filename='fn', host='host')
118
def test_cleanup_shared_storage_test_file(self):
119
self._test_compute_api('cleanup_shared_storage_test_file', 'cast',
120
filename='fn', host='host')
122
def test_compare_cpu(self):
123
self._test_compute_api('compare_cpu', 'call', cpu_info='info',
110
instance=self.fake_instance, volume_id='id', mountpoint='mp',
113
def test_change_instance_metadata(self):
114
self._test_compute_api('change_instance_metadata', 'cast',
115
instance=self.fake_instance, diff={},
118
def test_check_can_live_migrate_destination(self):
119
self._test_compute_api('check_can_live_migrate_destination', 'call',
120
version='1.10', instance=self.fake_instance,
121
destination='dest', block_migration=True,
122
disk_over_commit=True)
124
def test_check_can_live_migrate_source(self):
125
self._test_compute_api('check_can_live_migrate_source', 'call',
126
version='1.11', instance=self.fake_instance,
127
dest_check_data={"test": "data"})
126
129
def test_confirm_resize_cast(self):
127
130
self._test_compute_api('confirm_resize', 'cast',
128
instance=self.fake_instance, migration_id='id', host='host')
131
instance=self.fake_instance, migration_id='id', host='host',
132
reservations=list('fake_res'), version='1.42')
130
134
def test_confirm_resize_call(self):
131
135
self._test_compute_api('confirm_resize', 'call',
132
instance=self.fake_instance, migration_id='id', host='host')
134
def test_create_shared_storage_test_file(self):
135
self._test_compute_api('create_shared_storage_test_file', 'call',
136
instance=self.fake_instance, migration_id='id', host='host',
137
reservations=list('fake_res'), version='1.42')
138
139
def test_detach_volume(self):
139
140
self._test_compute_api('detach_volume', 'cast',
140
instance=self.fake_instance, volume_id='id')
141
instance=self.fake_instance, volume_id='id', version='1.13')
142
143
def test_finish_resize(self):
143
144
self._test_compute_api('finish_resize', 'cast',
144
145
instance=self.fake_instance, migration_id='id',
145
image='image', disk_info='disk_info', host='host')
146
image='image', disk_info='disk_info', host='host',
147
reservations=list('fake_res'), version='1.42')
147
149
def test_finish_revert_resize(self):
148
150
self._test_compute_api('finish_revert_resize', 'cast',
149
instance=self.fake_instance, migration_id='id', host='host')
151
instance=self.fake_instance, migration_id='id', host='host',
152
reservations=list('fake_res'), version='1.42')
151
154
def test_get_console_output(self):
152
155
self._test_compute_api('get_console_output', 'call',
153
instance=self.fake_instance, tail_length='tl')
156
instance=self.fake_instance, tail_length='tl', version='1.7')
155
158
def test_get_console_pool_info(self):
156
159
self._test_compute_api('get_console_pool_info', 'call',
182
182
def test_inject_file(self):
183
183
self._test_compute_api('inject_file', 'cast',
184
instance=self.fake_instance, path='path', file_contents='fc')
184
instance=self.fake_instance, path='path', file_contents='fc',
186
187
def test_inject_network_info(self):
187
188
self._test_compute_api('inject_network_info', 'cast',
188
instance=self.fake_instance)
189
instance=self.fake_instance, version='1.19')
190
def test_lock_instance(self):
191
self._test_compute_api('lock_instance', 'cast',
192
instance=self.fake_instance)
191
def test_live_migration(self):
192
self._test_compute_api('live_migration', 'cast',
193
instance=self.fake_instance, dest='dest',
194
block_migration='blockity_block', host='tsoh', version='1.43',
194
197
def test_post_live_migration_at_destination(self):
195
198
self._test_compute_api('post_live_migration_at_destination', 'call',
196
199
instance=self.fake_instance, block_migration='block_migration',
200
host='host', version='1.20')
199
202
def test_pause_instance(self):
200
203
self._test_compute_api('pause_instance', 'cast',
201
instance=self.fake_instance)
204
instance=self.fake_instance, version='1.5')
203
206
def test_power_off_instance(self):
204
207
self._test_compute_api('power_off_instance', 'cast',
205
instance=self.fake_instance)
208
instance=self.fake_instance, version='1.21')
207
210
def test_power_on_instance(self):
208
211
self._test_compute_api('power_on_instance', 'cast',
209
instance=self.fake_instance)
212
instance=self.fake_instance, version='1.22')
211
214
def test_pre_live_migration(self):
212
215
self._test_compute_api('pre_live_migration', 'call',
213
216
instance=self.fake_instance, block_migration='block_migration',
214
disk='disk', host='host')
217
disk='disk', host='host', version='1.23')
219
def test_prep_resize(self):
220
self._test_compute_api('prep_resize', 'cast',
221
instance=self.fake_instance, instance_type='fake_type',
222
image='fake_image', host='host',
223
reservations=list('fake_res'), version='1.42')
216
225
def test_reboot_instance(self):
217
226
self._test_compute_api('reboot_instance', 'cast',
218
instance=self.fake_instance, reboot_type='type')
227
instance=self.fake_instance, reboot_type='type', version='1.4')
220
229
def test_rebuild_instance(self):
221
230
self._test_compute_api('rebuild_instance', 'cast',
222
231
instance=self.fake_instance, new_pass='pass',
223
232
injected_files='files', image_ref='ref',
224
orig_image_ref='orig_ref')
233
orig_image_ref='orig_ref', version='1.24')
235
def test_reserve_block_device_name(self):
236
self._test_compute_api('reserve_block_device_name', 'call',
237
instance=self.fake_instance, device='device', version='1.44')
226
239
def refresh_provider_fw_rules(self):
227
240
self._test_compute_api('refresh_provider_fw_rules', 'cast',
244
257
def test_remove_fixed_ip_from_instance(self):
245
258
self._test_compute_api('remove_fixed_ip_from_instance', 'cast',
246
instance=self.fake_instance, address='addr')
259
instance=self.fake_instance, address='addr', version='1.25')
248
261
def test_remove_volume_connection(self):
249
262
self._test_compute_api('remove_volume_connection', 'call',
250
instance=self.fake_instance, volume_id='id', host='host')
263
instance=self.fake_instance, volume_id='id', host='host',
252
266
def test_rescue_instance(self):
253
267
self._test_compute_api('rescue_instance', 'cast',
254
instance=self.fake_instance, rescue_password='pw')
268
instance=self.fake_instance, rescue_password='pw',
256
271
def test_reset_network(self):
257
272
self._test_compute_api('reset_network', 'cast',
258
instance=self.fake_instance)
273
instance=self.fake_instance, version='1.28')
260
275
def test_resize_instance(self):
261
276
self._test_compute_api('resize_instance', 'cast',
262
instance=self.fake_instance, migration_id='id', image='image')
277
instance=self.fake_instance, migration_id='id', image='image',
278
reservations=list('fake_res'), version='1.42')
264
280
def test_resume_instance(self):
265
281
self._test_compute_api('resume_instance', 'cast',
266
instance=self.fake_instance)
282
instance=self.fake_instance, version='1.30')
268
284
def test_revert_resize(self):
269
285
self._test_compute_api('revert_resize', 'cast',
270
instance=self.fake_instance, migration_id='id', host='host')
286
instance=self.fake_instance, migration_id='id', host='host',
287
reservations=list('fake_res'), version='1.42')
272
289
def test_rollback_live_migration_at_destination(self):
273
290
self._test_compute_api('rollback_live_migration_at_destination',
274
'cast', instance=self.fake_instance, host='host')
291
'cast', instance=self.fake_instance, host='host',
294
def test_run_instance(self):
295
self._test_compute_api('run_instance', 'cast',
296
instance=self.fake_instance, host='fake_host',
297
request_spec='fake_spec', filter_properties={},
298
requested_networks='networks', injected_files='files',
299
admin_password='pw', is_first_time=True, version='1.39')
276
301
def test_set_admin_password(self):
277
self._test_compute_api('set_admin_password', 'cast',
278
instance=self.fake_instance, new_pass='pw')
302
self._test_compute_api('set_admin_password', 'call',
303
instance=self.fake_instance, new_pass='pw', version='1.33')
280
305
def test_set_host_enabled(self):
281
306
self._test_compute_api('set_host_enabled', 'call',
282
307
enabled='enabled', host='host')
309
def test_get_host_uptime(self):
310
self._test_compute_api('get_host_uptime', 'call', host='host',
284
313
def test_snapshot_instance(self):
285
314
self._test_compute_api('snapshot_instance', 'cast',
286
315
instance=self.fake_instance, image_id='id', image_type='type',
287
backup_type='type', rotation='rotation')
316
backup_type='type', rotation='rotation',
289
319
def test_start_instance(self):
290
320
self._test_compute_api('start_instance', 'cast',
291
instance=self.fake_instance)
321
instance=self.fake_instance, version='1.22')
293
323
def test_stop_instance_cast(self):
294
324
self._test_compute_api('stop_instance', 'cast',
295
instance=self.fake_instance)
325
instance=self.fake_instance, version='1.21')
297
327
def test_stop_instance_call(self):
298
328
self._test_compute_api('stop_instance', 'call',
299
instance=self.fake_instance)
329
instance=self.fake_instance, version='1.21')
301
331
def test_suspend_instance(self):
302
332
self._test_compute_api('suspend_instance', 'cast',
303
instance=self.fake_instance)
333
instance=self.fake_instance, version='1.6')
305
335
def test_terminate_instance(self):
306
336
self._test_compute_api('terminate_instance', 'cast',
307
instance=self.fake_instance)
309
def test_unlock_instance(self):
310
self._test_compute_api('unlock_instance', 'cast',
311
instance=self.fake_instance)
337
instance=self.fake_instance, version='1.37')
313
339
def test_unpause_instance(self):
314
340
self._test_compute_api('unpause_instance', 'cast',
315
instance=self.fake_instance)
341
instance=self.fake_instance, version='1.5')
317
343
def test_unrescue_instance(self):
318
344
self._test_compute_api('unrescue_instance', 'cast',
319
instance=self.fake_instance)
345
instance=self.fake_instance, version='1.35')