Example #1
0
    def get_resources(cls):
        """ Returns Ext Resources """
        exts = []
        plugin = manager.QuantumManager.get_plugin()
        for resource_name in ['router', 'floatingip']:
            collection_name = resource_name + "s"
            params = RESOURCE_ATTRIBUTE_MAP.get(collection_name, dict())

            member_actions = {}
            if resource_name == 'router':
                member_actions = {'add_router_interface': 'PUT',
                                  'remove_router_interface': 'PUT'}

            quota.QUOTAS.register_resource_by_name(resource_name)

            controller = base.create_resource(collection_name,
                                              resource_name,
                                              plugin, params,
                                              member_actions=member_actions)

            ex = extensions.ResourceExtension(collection_name,
                                              controller,
                                              member_actions=member_actions)
            exts.append(ex)

        return exts
Example #2
0
 def get_resources(cls):
     """ Returns Ext Resources """
     controller = QuotaSetsController(QuantumManager.get_plugin())
     return [
         extensions.ResourceExtension(Quotasv2.get_alias(),
                                      controller,
                                      collection_actions={'tenant': 'GET'})
     ]
Example #3
0
 def get_resources(self):
     resource = base.create_resource('packet_filters', 'packet_filter',
                                     QuantumManager.get_plugin(),
                                     PACKET_FILTER_ATTR_MAP)
     qresource = quota.CountableResource('packet_filter',
                                         quota._count_resource,
                                         'quota_packet_filter')
     quota.QUOTAS.register_resource(qresource)
     return [extensions.ResourceExtension('packet_filters', resource)]
Example #4
0
    def test_resource_can_be_added_as_extension(self):
        res_ext = extensions.ResourceExtension(
            'tweedles', self.ResourceExtensionController())
        test_app = _setup_extensions_test_app(SimpleExtensionManager(res_ext))
        index_response = test_app.get("/tweedles")
        self.assertEqual(200, index_response.status_int)
        self.assertEqual("resource index", index_response.body)

        show_response = test_app.get("/tweedles/25266")
        self.assertEqual({'data': {'id': "25266"}}, show_response.json)
Example #5
0
 def get_resources(cls):
     """ Returns Ext Resources """
     parent_resource = dict(member_name="tenant",
                            collection_name="extensions/csco/tenants")
     controller = CredentialController(QuantumManager.get_plugin())
     return [
         extensions.ResourceExtension('credentials',
                                      controller,
                                      parent=parent_resource)
     ]
Example #6
0
 def get_resources(cls):
     controller = UdpChannelsController(QuantumManager.get_plugin())
     parent_resource = dict(member_name="network",
         collection_name="extensions/udp/tenants/" +\
                         ":(tenant_id)/networks")
     return [
         extensions.ResourceExtension('channels',
                                      controller,
                                      parent=parent_resource)
     ]
Example #7
0
    def test_resource_extension_for_get_custom_collection_action(self):
        controller = self.ResourceExtensionController()
        collections = {'custom_collection_action': "GET"}
        res_ext = extensions.ResourceExtension('tweedles', controller,
                                               collection_actions=collections)
        test_app = _setup_extensions_test_app(SimpleExtensionManager(res_ext))

        response = test_app.get("/tweedles/custom_collection_action")
        self.assertEqual(200, response.status_int)
        self.assertEqual(jsonutils.loads(response.body)['collection'], "value")
Example #8
0
    def test_resource_extension_with_custom_member_action(self):
        controller = self.ResourceExtensionController()
        member = {'custom_member_action': "GET"}
        res_ext = extensions.ResourceExtension('tweedles',
                                               controller,
                                               member_actions=member)
        test_app = setup_extensions_test_app(SimpleExtensionManager(res_ext))

        response = test_app.get("/tweedles/some_id/custom_member_action")
        self.assertEqual(200, response.status_int)
        self.assertEqual(json.loads(response.body)['member_action'], "value")
Example #9
0
 def get_resources(cls):
     """ Returns Ext Resource """
     parent_resource = dict(member_name="tenant",
                            collection_name="extensions/csco/tenants")
     member_actions = {'schedule_host': "PUT",
                       'associate_port': "PUT",
                       'detach_port': "PUT"}
     controller = NovatenantsController(QuantumManager.get_plugin())
     return [extensions.ResourceExtension('novatenants', controller,
                                          parent=parent_resource,
                                          member_actions=member_actions)]
Example #10
0
    def test_resource_extension_for_delete_custom_collection_action(self):
        controller = self.ResourceExtensionController()
        collections = {'custom_collection_action': "DELETE"}
        res_ext = extensions.ResourceExtension('tweedles',
                                               controller,
                                               collection_actions=collections)
        test_app = setup_extensions_test_app(SimpleExtensionManager(res_ext))

        response = test_app.delete("/tweedles/custom_collection_action")

        self.assertEqual(200, response.status_int)
        self.assertEqual(json.loads(response.body)['collection'], 'value')
Example #11
0
 def get_resources(cls):
     controller = PortsMetadataController(QuantumManager.get_plugin())
     parent_resource = {
         "member_name":
         "network",
         "collection_name":
         "extensions/attributes/tenants/:(tenant_id)/networks"
     }
     return [
         extensions.ResourceExtension('ports',
                                      controller,
                                      parent=parent_resource)
     ]
Example #12
0
    def test_resource_ext_for_nested_resource_custom_collection_action(self):
        controller = self.ResourceExtensionController()
        collections = {'custom_collection_action': "GET"}
        parent = dict(collection_name='beetles', member_name='beetle')
        res_ext = extensions.ResourceExtension('tweedles', controller,
                                               collection_actions=collections,
                                               parent=parent)
        test_app = _setup_extensions_test_app(SimpleExtensionManager(res_ext))

        response = test_app.get("/beetles/beetle_id"
                                "/tweedles/custom_collection_action")

        self.assertEqual(200, response.status_int)
        self.assertEqual(jsonutils.loads(response.body)['collection'], "value")
Example #13
0
 def get_resources(cls):
     """ Returns all defined resources """
     parent_resource = dict(member_name="tenant",
                            collection_name="extensions/csco/tenants")
     member_actions = {
         'associate_portprofile': "PUT",
         'disassociate_portprofile': "PUT"
     }
     controller = PortprofilesController(QuantumManager.get_plugin())
     return [
         extensions.ResourceExtension('portprofiles',
                                      controller,
                                      parent=parent_resource,
                                      member_actions=member_actions)
     ]
Example #14
0
    def test_exceptions_notimplemented(self):
        controller = self.ResourceExtensionController()
        member = {'notimplemented_function': "GET"}
        res_ext = extensions.ResourceExtension('tweedles', controller,
                                               member_actions=member)
        test_app = _setup_extensions_test_app(SimpleExtensionManager(res_ext))

        # Ideally we would check for a 501 code here but webtest doesn't take
        # anything that is below 200 or above 400 so we can't actually check
        # it.  It thows AppError instead.
        try:
            response = (
                test_app.get("/tweedles/some_id/notimplemented_function"))
            # Shouldn't be reached
            self.assertTrue(False)
        except AppError:
            pass
Example #15
0
    def get_resources(cls):
        """ Returns Ext Resources """
        exts = []
        plugin = manager.QuantumManager.get_plugin()
        for resource_name in ['security_group', 'security_group_rule']:
            collection_name = resource_name.replace('_', '-') + "s"
            params = RESOURCE_ATTRIBUTE_MAP.get(resource_name + "s", dict())
            quota.QUOTAS.register_resource_by_name(resource_name)
            controller = base.create_resource(collection_name,
                                              resource_name,
                                              plugin,
                                              params,
                                              allow_bulk=True)

            ex = extensions.ResourceExtension(collection_name, controller)
            exts.append(ex)

        return exts
Example #16
0
 def get_resources(self):
     resources = []
     resource = extensions.ResourceExtension('foxnsocks',
                                             FoxInSocksController())
     resources.append(resource)
     return resources