Пример #1
0
    def get_resources(cls):
        """Returns Ext Resources."""
        exts = []
        parent = dict(member_name="agent", collection_name="agents")
        controller = resource.Resource(NetworkSchedulerController(),
                                       base.FAULT_MAP)
        exts.append(extensions.ResourceExtension(DHCP_NETS, controller,
                                                 parent))

        controller = resource.Resource(RouterSchedulerController(),
                                       base.FAULT_MAP)
        exts.append(
            extensions.ResourceExtension(L3_ROUTERS, controller, parent))

        parent = dict(member_name="network", collection_name="networks")

        controller = resource.Resource(DhcpAgentsHostingNetworkController(),
                                       base.FAULT_MAP)
        exts.append(
            extensions.ResourceExtension(DHCP_AGENTS, controller, parent))

        parent = dict(member_name="router", collection_name="routers")

        controller = resource.Resource(L3AgentsHostingRouterController(),
                                       base.FAULT_MAP)
        exts.append(extensions.ResourceExtension(L3_AGENTS, controller,
                                                 parent))
        return exts
    def test_no_route_args(self):
        controller = mock.MagicMock()

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {}
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPInternalServerError.code)
    def test_status_204(self):
        controller = mock.MagicMock()
        controller.test = lambda request: {'foo': 'bar'}

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {'wsgiorg.routing_args': (None, {'action': 'delete'})}
        res = resource.delete('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, 204)
    def test_http_error(self):
        controller = mock.MagicMock()
        controller.test.side_effect = exc.HTTPGatewayTimeout()

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {'wsgiorg.routing_args': (None, {'action': 'test'})}
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPGatewayTimeout.code)
Пример #5
0
    def test_unmapped_quantum_error(self):
        controller = mock.MagicMock()
        controller.test.side_effect = q_exc.QuantumException()

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {'wsgiorg.routing_args': (None, {'action': 'test'})}
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPInternalServerError.code)
Пример #6
0
 def get_resources(cls):
     """Returns Ext Resources."""
     controller = resource.Resource(QuotaSetsController(
         QuantumManager.get_plugin()),
                                    faults=base.FAULT_MAP)
     return [
         extensions.ResourceExtension(Quotasv2.get_alias(),
                                      controller,
                                      collection_actions={'tenant': 'GET'})
     ]
Пример #7
0
    def test_mapped_quantum_error(self):
        controller = mock.MagicMock()
        controller.test.side_effect = q_exc.QuantumException()

        faults = {q_exc.QuantumException: exc.HTTPGatewayTimeout}
        resource = webtest.TestApp(wsgi_resource.Resource(controller,
                                                          faults=faults))

        environ = {'wsgiorg.routing_args': (None, {'action': 'test'})}
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPGatewayTimeout.code)
    def test_post_with_body(self):
        controller = mock.MagicMock()
        controller.test = lambda request, body: {'foo': 'bar'}

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {'wsgiorg.routing_args': (None, {'action': 'test'})}
        res = resource.post('',
                            params='{"key": "val"}',
                            extra_environ=environ,
                            expect_errors=True)
        self.assertEqual(res.status_int, 200)
Пример #9
0
def create_resource(collection, resource, plugin, conf, params):
    controller = Controller(plugin, collection, resource, params)

    # NOTE(jkoelker) To anyone wishing to add "proper" xml support
    #                this is where you do it
    serializers = {}
    #    'application/xml': wsgi.XMLDictSerializer(metadata, XML_NS_V20),

    deserializers = {}
    #    'application/xml': wsgi.XMLDeserializer(metadata),

    return wsgi_resource.Resource(controller, FAULT_MAP, deserializers,
                                  serializers)
Пример #10
0
def create_resource(collection,
                    resource,
                    plugin,
                    params,
                    allow_bulk=False,
                    member_actions=None,
                    parent=None,
                    allow_pagination=False,
                    allow_sorting=False):
    controller = Controller(plugin,
                            collection,
                            resource,
                            params,
                            allow_bulk,
                            member_actions=member_actions,
                            parent=parent,
                            allow_pagination=allow_pagination,
                            allow_sorting=allow_sorting)

    return wsgi_resource.Resource(controller, FAULT_MAP)
    def test_unmapped_quantum_error_with_xml(self):
        msg = u'\u7f51\u7edc'

        class TestException(q_exc.QuantumException):
            message = msg

        expected_res = {'body': {'QuantumError': msg}}
        controller = mock.MagicMock()
        controller.test.side_effect = TestException()

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {
            'wsgiorg.routing_args': (None, {
                'action': 'test',
                'format': 'xml'
            })
        }
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPInternalServerError.code)
        self.assertEqual(wsgi.XMLDeserializer().deserialize(res.body),
                         expected_res)
    def test_unhandled_error_with_xml(self):
        expected_res = {
            'body': {
                'QuantumError':
                _('Request Failed: internal server error '
                  'while processing your request.')
            }
        }
        controller = mock.MagicMock()
        controller.test.side_effect = Exception()

        resource = webtest.TestApp(wsgi_resource.Resource(controller))

        environ = {
            'wsgiorg.routing_args': (None, {
                'action': 'test',
                'format': 'xml'
            })
        }
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPInternalServerError.code)
        self.assertEqual(wsgi.XMLDeserializer().deserialize(res.body),
                         expected_res)
    def test_mapped_quantum_error_with_json(self):
        msg = u'\u7f51\u7edc'

        class TestException(q_exc.QuantumException):
            message = msg

        expected_res = {'body': {'QuantumError': msg}}
        controller = mock.MagicMock()
        controller.test.side_effect = TestException()

        faults = {TestException: exc.HTTPGatewayTimeout}
        resource = webtest.TestApp(
            wsgi_resource.Resource(controller, faults=faults))

        environ = {
            'wsgiorg.routing_args': (None, {
                'action': 'test',
                'format': 'json'
            })
        }
        res = resource.get('', extra_environ=environ, expect_errors=True)
        self.assertEqual(res.status_int, exc.HTTPGatewayTimeout.code)
        self.assertEqual(wsgi.JSONDeserializer().deserialize(res.body),
                         expected_res)