21
21
from nova.compute import rpcapi as compute_rpcapi
22
22
from nova import context
23
23
from nova import db
24
from nova import flags
24
from nova.openstack.common import cfg
25
25
from nova.openstack.common import jsonutils
26
26
from nova.openstack.common import rpc
27
27
from nova import test
30
CONF.import_opt('compute_topic', 'nova.config')
33
33
class ComputeRpcAPITestCase(test.TestCase):
39
39
self.fake_instance = jsonutils.to_primitive(inst)
40
40
super(ComputeRpcAPITestCase, self).setUp()
43
super(ComputeRpcAPITestCase, self).tearDown()
45
42
def test_serialized_instance_has_name(self):
46
43
self.assertTrue('name' in self.fake_instance)
77
74
host = kwargs['destination']
79
76
host = kwargs['instance']['host']
80
expected_topic = '%s.%s' % (FLAGS.compute_topic, host)
77
expected_topic = '%s.%s' % (CONF.compute_topic, host)
82
79
self.fake_args = None
83
80
self.fake_kwargs = None
98
95
self.assertEqual(arg, expected_arg)
100
97
def test_add_aggregate_host(self):
101
self._test_compute_api('add_aggregate_host', 'cast', aggregate_id='id',
102
host_param='host', host='host', slave_info={}, version='2.2')
98
self._test_compute_api('add_aggregate_host', 'cast',
99
aggregate={'id': 'fake_id'}, host_param='host', host='host',
100
slave_info={}, version='2.14')
104
102
def test_add_fixed_ip_to_instance(self):
105
103
self._test_compute_api('add_fixed_ip_to_instance', 'cast',
127
125
def test_confirm_resize_cast(self):
128
126
self._test_compute_api('confirm_resize', 'cast',
129
instance=self.fake_instance, migration_id='id', host='host',
130
reservations=list('fake_res'))
127
instance=self.fake_instance, migration={'id': 'foo'},
128
host='host', reservations=list('fake_res'), version='2.7')
132
130
def test_confirm_resize_call(self):
133
131
self._test_compute_api('confirm_resize', 'call',
134
instance=self.fake_instance, migration_id='id', host='host',
135
reservations=list('fake_res'))
132
instance=self.fake_instance, migration={'id': 'foo'},
133
host='host', reservations=list('fake_res'), version='2.7')
137
135
def test_detach_volume(self):
138
136
self._test_compute_api('detach_volume', 'cast',
141
139
def test_finish_resize(self):
142
140
self._test_compute_api('finish_resize', 'cast',
143
instance=self.fake_instance, migration_id='id',
141
instance=self.fake_instance, migration={'id': 'foo'},
144
142
image='image', disk_info='disk_info', host='host',
145
reservations=list('fake_res'))
143
reservations=list('fake_res'), version='2.8')
147
145
def test_finish_revert_resize(self):
148
146
self._test_compute_api('finish_revert_resize', 'cast',
149
instance=self.fake_instance, migration_id='id', host='host',
150
reservations=list('fake_res'))
147
instance=self.fake_instance, migration={'id': 'fake_id'},
148
host='host', reservations=list('fake_res'), version='2.13')
152
150
def test_get_console_output(self):
153
151
self._test_compute_api('get_console_output', 'call',
176
174
self._test_compute_api('host_power_action', 'call', action='action',
177
def test_get_backdoor_port(self):
178
self._test_compute_api('get_backdoor_port', 'call', host='host')
179
180
def test_inject_file(self):
180
181
self._test_compute_api('inject_file', 'cast',
181
182
instance=self.fake_instance, path='path', file_contents='fc')
207
208
self._test_compute_api('power_on_instance', 'cast',
208
209
instance=self.fake_instance)
211
def test_soft_delete_instance(self):
212
self._test_compute_api('soft_delete_instance', 'cast',
213
instance=self.fake_instance)
215
def test_restore_instance(self):
216
self._test_compute_api('restore_instance', 'cast',
217
instance=self.fake_instance)
210
219
def test_pre_live_migration(self):
211
220
self._test_compute_api('pre_live_migration', 'call',
212
221
instance=self.fake_instance, block_migration='block_migration',
216
225
self._test_compute_api('prep_resize', 'cast',
217
226
instance=self.fake_instance, instance_type='fake_type',
218
227
image='fake_image', host='host',
219
reservations=list('fake_res'))
228
reservations=list('fake_res'),
229
request_spec='fake_spec',
230
filter_properties={'fakeprop': 'fakeval'},
221
233
def test_reboot_instance(self):
222
235
self._test_compute_api('reboot_instance', 'cast',
223
instance=self.fake_instance, reboot_type='type')
236
instance=self.fake_instance,
237
block_device_info={},
225
242
def test_rebuild_instance(self):
226
243
self._test_compute_api('rebuild_instance', 'cast',
227
244
instance=self.fake_instance, new_pass='pass',
228
245
injected_files='files', image_ref='ref',
229
orig_image_ref='orig_ref',
230
orig_sys_metadata='orig_sys_metadata', version='2.1')
246
orig_image_ref='orig_ref', bdms=[],
247
orig_sys_metadata='orig_sys_metadata', version='2.18')
232
249
def test_reserve_block_device_name(self):
233
250
self._test_compute_api('reserve_block_device_name', 'call',
234
instance=self.fake_instance, device='device')
251
instance=self.fake_instance, device='device', volume_id='id',
236
254
def refresh_provider_fw_rules(self):
237
255
self._test_compute_api('refresh_provider_fw_rules', 'cast',
250
268
def test_remove_aggregate_host(self):
251
269
self._test_compute_api('remove_aggregate_host', 'cast',
252
aggregate_id='id', host_param='host', host='host',
253
slave_info={}, version='2.2')
270
aggregate={'id': 'fake_id'}, host_param='host', host='host',
271
slave_info={}, version='2.15')
255
273
def test_remove_fixed_ip_from_instance(self):
256
274
self._test_compute_api('remove_fixed_ip_from_instance', 'cast',
271
289
def test_resize_instance(self):
272
290
self._test_compute_api('resize_instance', 'cast',
273
instance=self.fake_instance, migration_id='id', image='image',
274
reservations=list('fake_res'))
291
instance=self.fake_instance, migration={'id': 'fake_id'},
292
image='image', instance_type={'id': 1},
293
reservations=list('fake_res'), version='2.16')
276
295
def test_resume_instance(self):
277
296
self._test_compute_api('resume_instance', 'cast',
280
299
def test_revert_resize(self):
281
300
self._test_compute_api('revert_resize', 'cast',
282
instance=self.fake_instance, migration_id='id', host='host',
283
reservations=list('fake_res'))
301
instance=self.fake_instance, migration={'id': 'fake_id'},
302
host='host', reservations=list('fake_res'), version='2.12')
285
304
def test_rollback_live_migration_at_destination(self):
286
305
self._test_compute_api('rollback_live_migration_at_destination',
328
347
def test_terminate_instance(self):
329
348
self._test_compute_api('terminate_instance', 'cast',
330
instance=self.fake_instance)
349
instance=self.fake_instance, bdms=[],
332
352
def test_unpause_instance(self):
333
353
self._test_compute_api('unpause_instance', 'cast',