Adds client support for action results

Partially implements: blueprint actions-return-result

Change-Id: Ia61b1fb5a4c61451c6ceba80c9ecab7452ee7986
This commit is contained in:
Stan Lagun 2015-02-16 22:20:17 +03:00
parent 1c71742030
commit 401e089367
2 changed files with 19 additions and 7 deletions

View File

@ -196,11 +196,11 @@ class UnitTestsForClassesAndFunctions(testtools.TestCase):
self.assertRaises(TypeError, manager.deploy)
def test_action_manager_call(self):
manager = actions.ActionManager(api)
api_mock = mock.MagicMock(
json_request=lambda *args, **kwargs: (None, {'task_id': '1234'}))
manager = actions.ActionManager(api_mock)
result = manager.call('testEnvId', 'testActionId', ['arg1', 'arg2'])
self.assertEqual(('POST',
'/v1/environments/testEnvId/actions/testActionId'),
result)
self.assertEqual('1234', result)
def test_package_filter_pagination_next_marker(self):
"""``PackageManager.filter`` handles `next_marker` parameter related
@ -218,10 +218,16 @@ class UnitTestsForClassesAndFunctions(testtools.TestCase):
return mock.MagicMock(), responses.pop(0)
api = mock.MagicMock()
api.configure_mock(**{'json_request.side_effect': json_request})
manager = packages.PackageManager(api)
list(manager.filter())
self.assertEqual(api.json_request.call_count, 2)
def test_action_manager_get_result(self):
api_mock = mock.MagicMock(
json_request=lambda *args, **kwargs: (None, {'a': 'b'}))
manager = actions.ActionManager(api_mock)
result = manager.get_result('testEnvId', '1234')
self.assertEqual({'a': 'b'}, result)

View File

@ -26,5 +26,11 @@ class ActionManager(object):
arguments = {}
url = '/v1/environments/{environment_id}/actions/{action_id}'.format(
environment_id=environment_id, action_id=action_id)
resp, arguments = self.api.json_request('POST', url, body=arguments)
return resp
resp, body = self.api.json_request('POST', url, body=arguments)
return body['task_id']
def get_result(self, environment_id, task_id):
url = '/v1/environments/{environment_id}/actions/{task_id}'.format(
environment_id=environment_id, task_id=task_id)
resp, body = self.api.json_request('GET', url)
return body or None