Fix start/stop return active/stopped immediately in EC2 API
start/stop action is async. But the EC2 API is hard code the status as start/stop finished immediately. This patch fix start action return pending status, and stop action return stopping status. Change-Id: I0cf6db1dcb17c48a12fd62b0d707afd124b96b26 Closes-Bug: #1373230
This commit is contained in:
@@ -1072,7 +1072,7 @@ class CloudController(object):
|
|||||||
i['instanceId'] = ec2_id
|
i['instanceId'] = ec2_id
|
||||||
i['previousState'] = _state_description(previous_state['vm_state'],
|
i['previousState'] = _state_description(previous_state['vm_state'],
|
||||||
previous_state['shutdown_terminate'])
|
previous_state['shutdown_terminate'])
|
||||||
i['currentState'] = _state_description(vm_states.STOPPED, True)
|
i['currentState'] = _state_description(inst_state.STOPPING, True)
|
||||||
instances_set.append(i)
|
instances_set.append(i)
|
||||||
return {'instancesSet': instances_set}
|
return {'instancesSet': instances_set}
|
||||||
|
|
||||||
@@ -1083,7 +1083,7 @@ class CloudController(object):
|
|||||||
i['instanceId'] = ec2_id
|
i['instanceId'] = ec2_id
|
||||||
i['previousState'] = _state_description(previous_state['vm_state'],
|
i['previousState'] = _state_description(previous_state['vm_state'],
|
||||||
previous_state['shutdown_terminate'])
|
previous_state['shutdown_terminate'])
|
||||||
i['currentState'] = _state_description(vm_states.ACTIVE, True)
|
i['currentState'] = _state_description(None, True)
|
||||||
instances_set.append(i)
|
instances_set.append(i)
|
||||||
return {'instancesSet': instances_set}
|
return {'instancesSet': instances_set}
|
||||||
|
|
||||||
|
|||||||
@@ -2233,8 +2233,8 @@ class CloudTestCase(test.TestCase):
|
|||||||
{'instanceId': 'i-00000001',
|
{'instanceId': 'i-00000001',
|
||||||
'previousState': {'code': 16,
|
'previousState': {'code': 16,
|
||||||
'name': 'running'},
|
'name': 'running'},
|
||||||
'currentState': {'code': 80,
|
'currentState': {'code': 64,
|
||||||
'name': 'stopped'}}]}
|
'name': 'stopping'}}]}
|
||||||
result = self.cloud.stop_instances(self.context, [instance_id])
|
result = self.cloud.stop_instances(self.context, [instance_id])
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
@@ -2242,8 +2242,8 @@ class CloudTestCase(test.TestCase):
|
|||||||
{'instanceId': 'i-00000001',
|
{'instanceId': 'i-00000001',
|
||||||
'previousState': {'code': 80,
|
'previousState': {'code': 80,
|
||||||
'name': 'stopped'},
|
'name': 'stopped'},
|
||||||
'currentState': {'code': 16,
|
'currentState': {'code': 0,
|
||||||
'name': 'running'}}]}
|
'name': 'pending'}}]}
|
||||||
result = self.cloud.start_instances(self.context, [instance_id])
|
result = self.cloud.start_instances(self.context, [instance_id])
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
@@ -2251,8 +2251,8 @@ class CloudTestCase(test.TestCase):
|
|||||||
{'instanceId': 'i-00000001',
|
{'instanceId': 'i-00000001',
|
||||||
'previousState': {'code': 16,
|
'previousState': {'code': 16,
|
||||||
'name': 'running'},
|
'name': 'running'},
|
||||||
'currentState': {'code': 80,
|
'currentState': {'code': 64,
|
||||||
'name': 'stopped'}}]}
|
'name': 'stopping'}}]}
|
||||||
result = self.cloud.stop_instances(self.context, [instance_id])
|
result = self.cloud.stop_instances(self.context, [instance_id])
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
@@ -2278,8 +2278,8 @@ class CloudTestCase(test.TestCase):
|
|||||||
{'instanceId': 'i-00000001',
|
{'instanceId': 'i-00000001',
|
||||||
'previousState': {'code': 80,
|
'previousState': {'code': 80,
|
||||||
'name': 'stopped'},
|
'name': 'stopped'},
|
||||||
'currentState': {'code': 16,
|
'currentState': {'code': 0,
|
||||||
'name': 'running'}}]}
|
'name': 'pending'}}]}
|
||||||
result = self.cloud.start_instances(self.context, [instance_id])
|
result = self.cloud.start_instances(self.context, [instance_id])
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
@@ -2319,8 +2319,8 @@ class CloudTestCase(test.TestCase):
|
|||||||
{'instanceId': 'i-00000001',
|
{'instanceId': 'i-00000001',
|
||||||
'previousState': {'code': 16,
|
'previousState': {'code': 16,
|
||||||
'name': 'running'},
|
'name': 'running'},
|
||||||
'currentState': {'code': 80,
|
'currentState': {'code': 64,
|
||||||
'name': 'stopped'}}]}
|
'name': 'stopping'}}]}
|
||||||
result = self.cloud.stop_instances(self.context, [instance_id])
|
result = self.cloud.stop_instances(self.context, [instance_id])
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
@@ -2426,8 +2426,8 @@ class CloudTestCase(test.TestCase):
|
|||||||
{'instanceId': 'i-00000001',
|
{'instanceId': 'i-00000001',
|
||||||
'previousState': {'code': 16,
|
'previousState': {'code': 16,
|
||||||
'name': 'running'},
|
'name': 'running'},
|
||||||
'currentState': {'code': 80,
|
'currentState': {'code': 64,
|
||||||
'name': 'stopped'}}]}
|
'name': 'stopping'}}]}
|
||||||
result = self.cloud.stop_instances(self.context, [inst1])
|
result = self.cloud.stop_instances(self.context, [inst1])
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user