Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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")
Ejemplo n.º 5
0
 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")
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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')
Ejemplo n.º 10
0
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)