summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/api-paste.ini54
-rw-r--r--etc/quantum.conf56
-rw-r--r--quantum/common/config.py7
-rw-r--r--quantum/plugins/cisco/tests/unit/api-paste.ini.cisco.test8
-rw-r--r--quantum/plugins/cisco/tests/unit/quantum.conf.cisco.test (renamed from etc/quantum/plugins/cisco/quantum.conf.ciscoext)10
-rw-r--r--quantum/plugins/cisco/tests/unit/test_cisco_extension.py26
-rw-r--r--quantum/service.py2
-rw-r--r--quantum/tests/etc/api-paste.ini.test8
-rw-r--r--quantum/tests/etc/quantum.conf.test10
-rw-r--r--quantum/tests/unit/test_extensions.py4
-rw-r--r--setup.py2
11 files changed, 99 insertions, 88 deletions
diff --git a/etc/api-paste.ini b/etc/api-paste.ini
new file mode 100644
index 0000000000..8c0ccdff34
--- /dev/null
+++ b/etc/api-paste.ini
@@ -0,0 +1,54 @@
+[composite:quantum]
+use = egg:Paste#urlmap
+/: quantumversions
+/v1.0: quantumapi_v1_0
+/v1.1: quantumapi_v1_1
+/v2.0: quantumapi_v2_0
+
+[pipeline:quantumapi_v1_0]
+# By default, authentication is disabled.
+# To enable Keystone integration comment out the
+# following line and uncomment the next one
+pipeline = extensions quantumapiapp_v1_0
+# pipeline = authtoken keystonecontext extensions quantumapiapp_v1_0
+
+[pipeline:quantumapi_v1_1]
+# By default, authentication is disabled.
+# To enable Keystone integration comment out the
+# following line and uncomment the next one
+pipeline = extensions quantumapiapp_v1_1
+# pipeline = authtoken keystonecontext extensions quantumapiapp_v1_1
+
+[pipeline:quantumapi_v2_0]
+# By default, authentication is disabled.
+# To enable Keystone integration comment out the
+# following line and uncomment the next one
+pipeline = extensions quantumapiapp_v2_0
+# pipeline = authtoken keystonecontext extensions quantumapiapp_v2_0
+
+[filter:keystonecontext]
+paste.filter_factory = quantum.auth:QuantumKeystoneContext.factory
+
+[filter:authtoken]
+paste.filter_factory = keystone.middleware.auth_token:filter_factory
+auth_host = 127.0.0.1
+auth_port = 35357
+auth_protocol = http
+admin_tenant_name = %SERVICE_TENANT_NAME%
+admin_user = %SERVICE_USER%
+admin_password = %SERVICE_PASSWORD%
+
+[filter:extensions]
+paste.filter_factory = quantum.extensions.extensions:plugin_aware_extension_middleware_factory
+
+[app:quantumversions]
+paste.app_factory = quantum.api.versions:Versions.factory
+
+[app:quantumapiapp_v1_0]
+paste.app_factory = quantum.api:APIRouterV10.factory
+
+[app:quantumapiapp_v1_1]
+paste.app_factory = quantum.api:APIRouterV11.factory
+
+[app:quantumapiapp_v2_0]
+paste.app_factory = quantum.api.v2.router:APIRouter.factory
diff --git a/etc/quantum.conf b/etc/quantum.conf
index b96d0ef721..e55bca08cf 100644
--- a/etc/quantum.conf
+++ b/etc/quantum.conf
@@ -21,57 +21,5 @@ api_extensions_path =
# Quantum plugin provider module
core_plugin = quantum.plugins.sample.SamplePlugin.FakePlugin
-[composite:quantum]
-use = egg:Paste#urlmap
-/: quantumversions
-/v1.0: quantumapi_v1_0
-/v1.1: quantumapi_v1_1
-/v2.0: quantumapi_v2_0
-
-[pipeline:quantumapi_v1_0]
-# By default, authentication is disabled.
-# To enable Keystone integration comment out the
-# following line and uncomment the next one
-pipeline = extensions quantumapiapp_v1_0
-# pipeline = authtoken keystonecontext extensions quantumapiapp_v1_0
-
-[pipeline:quantumapi_v1_1]
-# By default, authentication is disabled.
-# To enable Keystone integration comment out the
-# following line and uncomment the next one
-pipeline = extensions quantumapiapp_v1_1
-# pipeline = authtoken keystonecontext extensions quantumapiapp_v1_1
-
-[pipeline:quantumapi_v2_0]
-# By default, authentication is disabled.
-# To enable Keystone integration comment out the
-# following line and uncomment the next one
-pipeline = extensions quantumapiapp_v2_0
-# pipeline = authtoken keystonecontext extensions quantumapiapp_v2_0
-
-[filter:keystonecontext]
-paste.filter_factory = quantum.auth:QuantumKeystoneContext.factory
-
-[filter:authtoken]
-paste.filter_factory = keystone.middleware.auth_token:filter_factory
-auth_host = 127.0.0.1
-auth_port = 35357
-auth_protocol = http
-admin_tenant_name = %SERVICE_TENANT_NAME%
-admin_user = %SERVICE_USER%
-admin_password = %SERVICE_PASSWORD%
-
-[filter:extensions]
-paste.filter_factory = quantum.extensions.extensions:plugin_aware_extension_middleware_factory
-
-[app:quantumversions]
-paste.app_factory = quantum.api.versions:Versions.factory
-
-[app:quantumapiapp_v1_0]
-paste.app_factory = quantum.api:APIRouterV10.factory
-
-[app:quantumapiapp_v1_1]
-paste.app_factory = quantum.api:APIRouterV11.factory
-
-[app:quantumapiapp_v2_0]
-paste.app_factory = quantum.api.v2.router:APIRouter.factory
+# Paste configuration file
+api_paste_config = api-paste.ini
diff --git a/quantum/common/config.py b/quantum/common/config.py
index 1e608c013e..505bf233bd 100644
--- a/quantum/common/config.py
+++ b/quantum/common/config.py
@@ -35,6 +35,7 @@ LOG = logging.getLogger(__name__)
bind_opts = [
cfg.StrOpt('bind_host', default='0.0.0.0'),
cfg.IntOpt('bind_port', default=9696),
+ cfg.StrOpt('api_paste_config', default="api-paste.ini"),
cfg.StrOpt('api_extensions_path', default=""),
cfg.StrOpt('core_plugin',
default='quantum.plugins.sample.SamplePlugin.FakePlugin'),
@@ -96,17 +97,17 @@ def setup_logging(conf):
root_logger.addHandler(handler)
-def load_paste_app(app_name, config_file):
+def load_paste_app(app_name):
"""
Builds and returns a WSGI app from a paste config file.
:param app_name: Name of the application to load
- :param config_file: name of the configuration file
:raises RuntimeError when config file cannot be located or application
cannot be loaded from config file
"""
- config_path = os.path.abspath(cfg.CONF.find_file(config_file))
+ config_path = os.path.abspath(cfg.CONF.find_file(
+ cfg.CONF.api_paste_config))
LOG.info("Config paste file: %s", config_path)
try:
diff --git a/quantum/plugins/cisco/tests/unit/api-paste.ini.cisco.test b/quantum/plugins/cisco/tests/unit/api-paste.ini.cisco.test
new file mode 100644
index 0000000000..9163752c51
--- /dev/null
+++ b/quantum/plugins/cisco/tests/unit/api-paste.ini.cisco.test
@@ -0,0 +1,8 @@
+[pipeline:extensions_app_with_filter]
+pipeline = extensions extensions_test_app
+
+[filter:extensions]
+paste.filter_factory = quantum.extensions.extensions:plugin_aware_extension_middleware_factory
+
+[app:extensions_test_app]
+paste.app_factory = quantum.plugins.cisco.tests.unit.test_cisco_extension:app_factory
diff --git a/etc/quantum/plugins/cisco/quantum.conf.ciscoext b/quantum/plugins/cisco/tests/unit/quantum.conf.cisco.test
index b63faed913..f7ca99b9c1 100644
--- a/etc/quantum/plugins/cisco/quantum.conf.ciscoext
+++ b/quantum/plugins/cisco/tests/unit/quantum.conf.cisco.test
@@ -14,11 +14,7 @@ bind_port = 9696
# Path to the extensions
api_extensions_path = ../../../../extensions
-[pipeline:extensions_app_with_filter]
-pipeline = extensions extensions_test_app
+# Paste configuration file
+api_paste_config = api-paste.ini.cisco.test
-[filter:extensions]
-paste.filter_factory = quantum.extensions.extensions:plugin_aware_extension_middleware_factory
-
-[app:extensions_test_app]
-paste.app_factory = quantum.plugins.cisco.tests.unit.test_cisco_extension:app_factory
+core_plugin = quantum.plugins.cisco.l2network_plugin.L2Network
diff --git a/quantum/plugins/cisco/tests/unit/test_cisco_extension.py b/quantum/plugins/cisco/tests/unit/test_cisco_extension.py
index 94c2c7788a..4e272f9f87 100644
--- a/quantum/plugins/cisco/tests/unit/test_cisco_extension.py
+++ b/quantum/plugins/cisco/tests/unit/test_cisco_extension.py
@@ -52,11 +52,20 @@ from quantum import wsgi
LOG = logging.getLogger('quantum.plugins.cisco.tests.test_cisco_extensions')
-TEST_CONF_FILE = config.find_config_file({'plugin': 'cisco'},
- 'quantum.conf.ciscoext')
EXTENSIONS_PATH = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir,
os.pardir, os.pardir, "extensions")
+ROOTDIR = os.path.dirname(os.path.dirname(__file__))
+UNITDIR = os.path.join(ROOTDIR, 'unit')
+
+
+def testsdir(*p):
+ return os.path.join(UNITDIR, *p)
+
+config_file = 'quantum.conf.cisco.test'
+args = ['--config-file', testsdir(config_file)]
+config.parse(args=args)
+
class ExtensionsTestApp(wsgi.Router):
@@ -97,10 +106,7 @@ class PortprofileExtensionTest(unittest.TestCase):
}
self.tenant_id = "test_tenant"
self.network_name = "test_network"
- options = {}
- options['plugin_provider'] = ('quantum.plugins.cisco.l2network_plugin'
- '.L2Network')
- self.api = server.APIRouterV10(options)
+ self.api = server.APIRouterV10()
self._l2network_plugin = l2network_plugin.L2Network()
def test_list_portprofile(self):
@@ -1147,10 +1153,7 @@ class MultiPortExtensionTest(unittest.TestCase):
}
self.tenant_id = "test_tenant"
self.network_name = "test_network"
- options = {}
- options['plugin_provider'] = (
- 'quantum.plugins.cisco.l2network_plugin.L2Network')
- self.api = server.APIRouterV10(options)
+ self.api = server.APIRouterV10()
self._l2network_plugin = l2network_plugin.L2Network()
def create_request(self, path, body, content_type, method='GET'):
@@ -1255,8 +1258,7 @@ def setup_extensions_middleware(extension_manager=None):
extension_manager = (extension_manager or
PluginAwareExtensionManager(EXTENSIONS_PATH,
L2Network()))
- options = {'config_file': TEST_CONF_FILE}
- app = config.load_paste_app('extensions_test_app', options, None)
+ app = config.load_paste_app('extensions_test_app')
return ExtensionMiddleware(app, ext_mgr=extension_manager)
diff --git a/quantum/service.py b/quantum/service.py
index d6432ac15f..48ef432e2a 100644
--- a/quantum/service.py
+++ b/quantum/service.py
@@ -86,7 +86,7 @@ def serve_wsgi(cls):
def _run_wsgi(app_name):
- app = config.load_paste_app(app_name, "quantum.conf")
+ app = config.load_paste_app(app_name)
if not app:
LOG.error(_('No known API applications configured.'))
return
diff --git a/quantum/tests/etc/api-paste.ini.test b/quantum/tests/etc/api-paste.ini.test
new file mode 100644
index 0000000000..5a17e83978
--- /dev/null
+++ b/quantum/tests/etc/api-paste.ini.test
@@ -0,0 +1,8 @@
+[pipeline:extensions_app_with_filter]
+pipeline = extensions extensions_test_app
+
+[filter:extensions]
+paste.filter_factory = quantum.common.extensions:plugin_aware_extension_middleware_factory
+
+[app:extensions_test_app]
+paste.app_factory = quantum.tests.unit.test_extensions:app_factory
diff --git a/quantum/tests/etc/quantum.conf.test b/quantum/tests/etc/quantum.conf.test
index 6157d5b028..0dbb4a2a27 100644
--- a/quantum/tests/etc/quantum.conf.test
+++ b/quantum/tests/etc/quantum.conf.test
@@ -14,11 +14,5 @@ bind_port = 9696
# Path to the extensions
api_extensions_path = unit/extensions
-[pipeline:extensions_app_with_filter]
-pipeline = extensions extensions_test_app
-
-[filter:extensions]
-paste.filter_factory = quantum.common.extensions:plugin_aware_extension_middleware_factory
-
-[app:extensions_test_app]
-paste.app_factory = quantum.tests.unit.test_extensions:app_factory
+# Paste configuration file
+api_paste_config = api-paste.ini.test
diff --git a/quantum/tests/unit/test_extensions.py b/quantum/tests/unit/test_extensions.py
index 9c64d36cd7..a2719025b0 100644
--- a/quantum/tests/unit/test_extensions.py
+++ b/quantum/tests/unit/test_extensions.py
@@ -467,7 +467,7 @@ def setup_base_app():
config_file = 'quantum.conf.test'
args = ['--config-file', etcdir(config_file)]
config.parse(args=args)
- app = config.load_paste_app('extensions_test_app', config_file)
+ app = config.load_paste_app('extensions_test_app')
return app
@@ -478,7 +478,7 @@ def setup_extensions_middleware(extension_manager=None):
config_file = 'quantum.conf.test'
args = ['--config-file', etcdir(config_file)]
config.parse(args=args)
- app = config.load_paste_app('extensions_test_app', config_file)
+ app = config.load_paste_app('extensions_test_app')
return ExtensionMiddleware(app, ext_mgr=extension_manager)
diff --git a/setup.py b/setup.py
index 4d28542794..e046a1ae81 100644
--- a/setup.py
+++ b/setup.py
@@ -51,7 +51,7 @@ ryu_plugin_config_path = 'etc/quantum/plugins/ryu'
DataFiles = [
(config_path,
- ['etc/quantum.conf']),
+ ['etc/quantum.conf', 'etc/api-paste.ini', 'etc/policy.json']),
(init_path, ['etc/init.d/quantum-server']),
(ovs_plugin_config_path,
['etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini']),