def test_list_event_with_kwargs(self): stack_id = 'teststack', resource_name = 'testresource' kwargs = {'limit': 2, 'marker': '6d6935f4-0ae5', 'filters': { 'resource_action': 'CREATE', 'resource_status': 'COMPLETE' }} manager = events.EventManager(None) manager = events.EventManager(None) with mock.patch('heatclient.v1.events.EventManager._resolve_stack_id')\ as mock_re: mock_re.return_value = 'teststack/abcd1234' manager._list = mock.MagicMock() manager.list(stack_id, resource_name, **kwargs) # Make sure url is correct. self.assertEqual(1, manager._list.call_count) args = manager._list.call_args self.assertEqual(2, len(args[0])) url, param = args[0] self.assertEqual("events", param) base_url, query_params = utils.parse_query_url(url) expected_base_url = ('/stacks/teststack/abcd1234/' 'resources/testresource/events') self.assertEqual(expected_base_url, base_url) expected_query_dict = {'marker': ['6d6935f4-0ae5'], 'limit': ['2'], 'resource_action': ['CREATE'], 'resource_status': ['COMPLETE']} self.assertEqual(expected_query_dict, query_params) mock_re.assert_called_once_with(stack_id)
def test_list_event_with_kwargs(self): stack_id = 'teststack', resource_name = 'testresource' kwargs = {'limit': 2, 'marker': '6d6935f4-0ae5', 'filters': { 'resource_action': 'CREATE', 'resource_status': 'COMPLETE' }} manager = events.EventManager(None) self.m.StubOutWithMock(manager, '_resolve_stack_id') manager._resolve_stack_id(stack_id).AndReturn('teststack/abcd1234') self.m.ReplayAll() manager._list = mock.MagicMock() manager.list(stack_id, resource_name, **kwargs) # Make sure url is correct. self.assertEqual(1, manager._list.call_count) args = manager._list.call_args self.assertEqual(2, len(args[0])) url, param = args[0] self.assertEqual("events", param) base_url, query_params = utils.parse_query_url(url) expected_base_url = ('/stacks/teststack%2Fabcd1234/' 'resources/testresource/events') self.assertEqual(expected_base_url, base_url) expected_query_dict = {'marker': ['6d6935f4-0ae5'], 'limit': ['2'], 'resource_action': ['CREATE'], 'resource_status': ['COMPLETE']} self.assertEqual(expected_query_dict, query_params)
def test_get_event_with_unicode_resource_name(self): fields = { 'stack_id': 'teststack', 'resource_name': u'\u5de5\u4f5c', 'event_id': '1' } class FakeAPI(object): """Fake API and ensure request url is correct.""" def json_request(self, *args, **kwargs): expect = ('GET', '/stacks/teststack%2Fabcd1234/resources' '/%E5%B7%A5%E4%BD%9C/events/1') assert args == expect return {}, {'event': []} def get(self, *args, **kwargs): pass manager = events.EventManager(FakeAPI()) with mock.patch('heatclient.v1.events.Event'): self.m.StubOutWithMock(manager, '_resolve_stack_id') self.m.StubOutWithMock(utils, 'get_response_body') utils.get_response_body(mox.IgnoreArg()).AndReturn({'event': []}) manager._resolve_stack_id('teststack').AndReturn( 'teststack/abcd1234') self.m.ReplayAll() manager.get(**fields)
def test_list_event_with_none_resource_name(self): stack_id = 'teststack', manager = events.EventManager(None) manager._list = mock.MagicMock() manager.list(stack_id) # Make sure url is correct. manager._list.assert_called_once_with('/stacks/teststack/' 'events', "events")
def test_list_event_with_unicode_resource_name(self): stack_id = 'teststack', resource_name = u'\u5de5\u4f5c' manager = events.EventManager(None) self.m.StubOutWithMock(manager, '_resolve_stack_id') manager._resolve_stack_id(stack_id).AndReturn('teststack/abcd1234') self.m.ReplayAll() manager._list = mock.MagicMock() manager.list(stack_id, resource_name) # Make sure url is correct. manager._list.assert_called_once_with('/stacks/teststack%2Fabcd1234/' 'resources/%E5%B7%A5%E4%BD%9C/' 'events', "events")
def __init__(self, *args, **kwargs): """Initialize a new client for the Heat v1 API.""" self.http_client = http._construct_http_client(*args, **kwargs) self.stacks = stacks.StackManager(self.http_client) self.resources = resources.ResourceManager(self.http_client) self.resource_types = resource_types.ResourceTypeManager( self.http_client) self.events = events.EventManager(self.http_client) self.actions = actions.ActionManager(self.http_client) self.build_info = build_info.BuildInfoManager(self.http_client) self.software_deployments = \ software_deployments.SoftwareDeploymentManager( self.http_client) self.software_configs = software_configs.SoftwareConfigManager( self.http_client)
def test_list_event_with_unicode_resource_name(self): stack_id = 'teststack', resource_name = u'\u5de5\u4f5c' manager = events.EventManager(None) with mock.patch('heatclient.v1.events.EventManager._resolve_stack_id')\ as mock_re: mock_re.return_value = 'teststack/abcd1234' manager._list = mock.MagicMock() manager.list(stack_id, resource_name) # Make sure url is correct. manager._list.assert_called_once_with( '/stacks/teststack/abcd1234/' 'resources/%E5%B7%A5%E4%BD%9C/' 'events', "events") mock_re.assert_called_once_with(stack_id)
def test_get_event(self): fields = {'stack_id': 'teststack', 'resource_name': 'testresource', 'event_id': '1'} class FakeAPI(object): """Fake API and ensure request url is correct.""" def json_request(self, *args, **kwargs): expect = ('GET', '/stacks/teststack%2Fabcd1234/resources' '/testresource/events/1') assert args == expect return {}, {'event': []} manager = events.EventManager(FakeAPI()) with mock.patch('heatclient.v1.events.Event'): self.m.StubOutWithMock(manager, '_resolve_stack_id') manager._resolve_stack_id('teststack').AndReturn( 'teststack/abcd1234') self.m.ReplayAll() manager.get(**fields)
def test_get_event_with_unicode_resource_name(self, mock_utils, mock_re): fields = {'stack_id': 'teststack', 'resource_name': u'\u5de5\u4f5c', 'event_id': '1'} class FakeAPI(object): """Fake API and ensure request url is correct.""" def json_request(self, *args, **kwargs): expect = ('GET', '/stacks/teststack/abcd1234/resources' '/%E5%B7%A5%E4%BD%9C/events/1') assert args == expect return {}, {'event': []} def get(self, *args, **kwargs): pass manager = events.EventManager(FakeAPI()) with mock.patch('heatclient.v1.events.Event'): mock_utils.return_value = {'event': []} mock_re.return_value = 'teststack/abcd1234' manager.get(**fields) mock_re.assert_called_once_with('teststack')
def data(TEST): # Stack TEST.heatclient_stacks = test_data_utils.TestDataContainer() stack_1 = stacks.Stack( stacks.StackManager(None), { 'id': 'stack-id-1', 'stack_name': 'overcloud', 'stack_status': 'RUNNING', 'outputs': [{ 'output_key': 'KeystoneURL', 'output_value': 'http://192.0.2.23:5000/v2', }], 'parameters': { 'plan_id': 'plan-1', 'one': 'one', 'two': 'two', } }) TEST.heatclient_stacks.add(stack_1) # Events TEST.heatclient_events = test_data_utils.TestDataContainer() event_1 = events.Event( events.EventManager(None), { 'id': 1, 'stack_id': 'stack-id-1', 'resource_name': 'Controller', 'resource_status': 'CREATE_IN_PROGRESS', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:26:15Z' }) event_2 = events.Event( events.EventManager(None), { 'id': 2, 'stack_id': 'stack-id-1', 'resource_name': 'Compute0', 'resource_status': 'CREATE_IN_PROGRESS', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:26:27Z' }) event_3 = events.Event( events.EventManager(None), { 'id': 3, 'stack_id': 'stack-id-1', 'resource_name': 'Compute1', 'resource_status': 'CREATE_IN_PROGRESS', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:26:44Z' }) event_4 = events.Event( events.EventManager(None), { 'id': 4, 'stack_id': 'stack-id-1', 'resource_name': 'Compute0', 'resource_status': 'CREATE_COMPLETE', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:27:14Z' }) event_5 = events.Event( events.EventManager(None), { 'id': 5, 'stack_id': 'stack-id-1', 'resource_name': 'Compute2', 'resource_status': 'CREATE_IN_PROGRESS', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:27:31Z' }) event_6 = events.Event( events.EventManager(None), { 'id': 6, 'stack_id': 'stack-id-1', 'resource_name': 'Compute1', 'resource_status': 'CREATE_COMPLETE', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:28:01Z' }) event_7 = events.Event( events.EventManager(None), { 'id': 7, 'stack_id': 'stack-id-1', 'resource_name': 'Controller', 'resource_status': 'CREATE_COMPLETE', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:28:59Z' }) event_8 = events.Event( events.EventManager(None), { 'id': 8, 'stack_id': 'stack-id-1', 'resource_name': 'Compute2', 'resource_status': 'CREATE_COMPLETE', 'resource_status_reason': 'state changed', 'event_time': '2014-01-01T07:29:11Z' }) TEST.heatclient_events.add(event_1, event_2, event_3, event_4, event_5, event_6, event_7, event_8) # Resource TEST.heatclient_resources = test_data_utils.TestDataContainer() resource_1 = resources.Resource( resources.ResourceManager(None), { 'id': '1-resource-id', 'stack_id': 'stack-id-1', 'resource_name': 'Compute0', 'logical_resource_id': 'Compute0', 'physical_resource_id': 'aa', 'resource_status': 'CREATE_COMPLETE', 'resource_type': 'Compute' }) resource_2 = resources.Resource( resources.ResourceManager(None), { 'id': '2-resource-id', 'stack_id': 'stack-id-1', 'resource_name': 'Controller', 'logical_resource_id': 'Controller', 'physical_resource_id': 'bb', 'resource_status': 'CREATE_COMPLETE', 'resource_type': 'Controller' }) resource_3 = resources.Resource( resources.ResourceManager(None), { 'id': '3-resource-id', 'stack_id': 'stack-id-1', 'resource_name': 'Compute1', 'logical_resource_id': 'Compute1', 'physical_resource_id': 'cc', 'resource_status': 'CREATE_COMPLETE', 'resource_type': 'Compute' }) resource_4 = resources.Resource( resources.ResourceManager(None), { 'id': '4-resource-id', 'stack_id': 'stack-id-4', 'resource_name': 'Compute2', 'logical_resource_id': 'Compute2', 'physical_resource_id': 'dd', 'resource_status': 'CREATE_COMPLETE', 'resource_type': 'Compute' }) TEST.heatclient_resources.add(resource_1, resource_2, resource_3, resource_4) # Server TEST.novaclient_servers = test_data_utils.TestDataContainer() s_1 = servers.Server( servers.ServerManager(None), { 'id': 'aa', 'name': 'Compute', 'created': '2014-06-26T20:38:06Z', 'image': { 'id': '1' }, 'flavor': { 'id': '1', }, 'status': 'ACTIVE', 'public_ip': '192.168.1.1' }) s_2 = servers.Server( servers.ServerManager(None), { 'id': 'bb', 'name': 'Controller', 'created': '2014-06-27T20:38:06Z', 'image': { 'id': '2' }, 'flavor': { 'id': '2', }, 'status': 'ACTIVE', 'public_ip': '192.168.1.2' }) s_3 = servers.Server( servers.ServerManager(None), { 'id': 'cc', 'name': 'Compute', 'created': '2014-06-28T20:38:06Z', 'image': { 'id': '1' }, 'flavor': { 'id': '1', }, 'status': 'BUILD', 'public_ip': '192.168.1.3' }) s_4 = servers.Server( servers.ServerManager(None), { 'id': 'dd', 'name': 'Compute', 'created': '2014-06-29T20:38:06Z', 'image': { 'id': '1' }, 'flavor': { 'id': '1', }, 'status': 'ERROR', 'public_ip': '192.168.1.4' }) TEST.novaclient_servers.add(s_1, s_2, s_3, s_4) # Image TEST.glanceclient_images = test_data_utils.TestDataContainer() image_1 = images.Image(images.ImageManager(None), { 'id': '2', 'name': 'overcloud-control' }) image_2 = images.Image(images.ImageManager(None), { 'id': '1', 'name': 'overcloud-compute' }) image_3 = images.Image(images.ImageManager(None), { 'id': '3', 'name': 'Object Storage Image' }) image_4 = images.Image(images.ImageManager(None), { 'id': '4', 'name': 'Block Storage Image' }) TEST.glanceclient_images.add(image_1, image_2, image_3, image_4)