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:
He Jie Xu
2014-09-24 13:54:06 +08:00
parent daed1ebdd5
commit 42c7c7cfc9
2 changed files with 14 additions and 14 deletions

View File

@@ -1072,7 +1072,7 @@ class CloudController(object):
i['instanceId'] = ec2_id
i['previousState'] = _state_description(previous_state['vm_state'],
previous_state['shutdown_terminate'])
i['currentState'] = _state_description(vm_states.STOPPED, True)
i['currentState'] = _state_description(inst_state.STOPPING, True)
instances_set.append(i)
return {'instancesSet': instances_set}
@@ -1083,7 +1083,7 @@ class CloudController(object):
i['instanceId'] = ec2_id
i['previousState'] = _state_description(previous_state['vm_state'],
previous_state['shutdown_terminate'])
i['currentState'] = _state_description(vm_states.ACTIVE, True)
i['currentState'] = _state_description(None, True)
instances_set.append(i)
return {'instancesSet': instances_set}

View File

@@ -2233,8 +2233,8 @@ class CloudTestCase(test.TestCase):
{'instanceId': 'i-00000001',
'previousState': {'code': 16,
'name': 'running'},
'currentState': {'code': 80,
'name': 'stopped'}}]}
'currentState': {'code': 64,
'name': 'stopping'}}]}
result = self.cloud.stop_instances(self.context, [instance_id])
self.assertEqual(result, expected)
@@ -2242,8 +2242,8 @@ class CloudTestCase(test.TestCase):
{'instanceId': 'i-00000001',
'previousState': {'code': 80,
'name': 'stopped'},
'currentState': {'code': 16,
'name': 'running'}}]}
'currentState': {'code': 0,
'name': 'pending'}}]}
result = self.cloud.start_instances(self.context, [instance_id])
self.assertEqual(result, expected)
@@ -2251,8 +2251,8 @@ class CloudTestCase(test.TestCase):
{'instanceId': 'i-00000001',
'previousState': {'code': 16,
'name': 'running'},
'currentState': {'code': 80,
'name': 'stopped'}}]}
'currentState': {'code': 64,
'name': 'stopping'}}]}
result = self.cloud.stop_instances(self.context, [instance_id])
self.assertEqual(result, expected)
@@ -2278,8 +2278,8 @@ class CloudTestCase(test.TestCase):
{'instanceId': 'i-00000001',
'previousState': {'code': 80,
'name': 'stopped'},
'currentState': {'code': 16,
'name': 'running'}}]}
'currentState': {'code': 0,
'name': 'pending'}}]}
result = self.cloud.start_instances(self.context, [instance_id])
self.assertEqual(result, expected)
@@ -2319,8 +2319,8 @@ class CloudTestCase(test.TestCase):
{'instanceId': 'i-00000001',
'previousState': {'code': 16,
'name': 'running'},
'currentState': {'code': 80,
'name': 'stopped'}}]}
'currentState': {'code': 64,
'name': 'stopping'}}]}
result = self.cloud.stop_instances(self.context, [instance_id])
self.assertEqual(result, expected)
@@ -2426,8 +2426,8 @@ class CloudTestCase(test.TestCase):
{'instanceId': 'i-00000001',
'previousState': {'code': 16,
'name': 'running'},
'currentState': {'code': 80,
'name': 'stopped'}}]}
'currentState': {'code': 64,
'name': 'stopping'}}]}
result = self.cloud.stop_instances(self.context, [inst1])
self.assertEqual(result, expected)