
This sets up the factory methods needed to have paste deploy create the pecan app and return it. It also changes the legacy factory methods to conditionally use the pecan factory methods if the web_framework config option is set to 'pecan'. This way, all deployments of neutron will not need to change their api-paste.ini files to get pecan toggled on. It should just happen without notice once pecan becomes the default. Also, by moving this to be loaded by paste deploy, there is a good chunk of code that has been removed because it is no longer necessary. Co-Authored-By: Brandon Logan <brandon.logan@rackspace.com> Change-Id: I8b1bbea8d90fdc62715cd8b6738ad955df53d7cd
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
# Copyright (c) 2015 Mirantis, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import pecan
|
|
|
|
from neutron.pecan_wsgi.controllers import root
|
|
from neutron.pecan_wsgi import hooks
|
|
from neutron.pecan_wsgi import startup
|
|
|
|
|
|
def versions_factory(global_config, **local_config):
|
|
return pecan.make_app(root.RootController())
|
|
|
|
|
|
def v2_factory(global_config, **local_config):
|
|
app_hooks = [
|
|
hooks.ExceptionTranslationHook(), # priority 100
|
|
hooks.ContextHook(), # priority 95
|
|
hooks.BodyValidationHook(), # priority 120
|
|
hooks.OwnershipValidationHook(), # priority 125
|
|
hooks.QuotaEnforcementHook(), # priority 130
|
|
hooks.NotifierHook(), # priority 135
|
|
hooks.QueryParametersHook(), # priority 139
|
|
hooks.PolicyHook(), # priority 140
|
|
]
|
|
app = pecan.make_app(root.V2Controller(),
|
|
debug=False,
|
|
force_canonical=False,
|
|
hooks=app_hooks,
|
|
guess_content_type_from_ext=True)
|
|
startup.initialize_all()
|
|
return app
|