Create a template for api-paste.ini that already has the changes
done by sed incantation in the latest stack.sh.
This commit is contained in:
parent
3a648d56ad
commit
0af73de8e6
158
conf/templates/nova/api-paste.ini.tpl
Normal file
158
conf/templates/nova/api-paste.ini.tpl
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
############
|
||||||
|
# Metadata #
|
||||||
|
############
|
||||||
|
[composite:metadata]
|
||||||
|
use = egg:Paste#urlmap
|
||||||
|
/: metaversions
|
||||||
|
/latest: meta
|
||||||
|
/2007-01-19: meta
|
||||||
|
/2007-03-01: meta
|
||||||
|
/2007-08-29: meta
|
||||||
|
/2007-10-10: meta
|
||||||
|
/2007-12-15: meta
|
||||||
|
/2008-02-01: meta
|
||||||
|
/2008-09-01: meta
|
||||||
|
/2009-04-04: meta
|
||||||
|
|
||||||
|
[pipeline:metaversions]
|
||||||
|
pipeline = ec2faultwrap logrequest metaverapp
|
||||||
|
|
||||||
|
[pipeline:meta]
|
||||||
|
pipeline = ec2faultwrap logrequest metaapp
|
||||||
|
|
||||||
|
[app:metaverapp]
|
||||||
|
paste.app_factory = nova.api.metadata.handler:Versions.factory
|
||||||
|
|
||||||
|
[app:metaapp]
|
||||||
|
paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory
|
||||||
|
|
||||||
|
#######
|
||||||
|
# EC2 #
|
||||||
|
#######
|
||||||
|
|
||||||
|
[composite:ec2]
|
||||||
|
use = egg:Paste#urlmap
|
||||||
|
/services/Cloud: ec2cloud
|
||||||
|
|
||||||
|
[pipeline:ec2cloud]
|
||||||
|
pipeline = ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer ec2executor
|
||||||
|
# NOTE(vish): use the following pipeline for deprecated auth
|
||||||
|
# pipeline = ec2faultwrap logrequest authenticate cloudrequest authorizer validator ec2executor
|
||||||
|
# NOTE(vish): use the following pipeline for keystone auth
|
||||||
|
# pipeline = ec2faultwrap logrequest ec2keystoneauth cloudrequest authorizer validator ec2executor
|
||||||
|
|
||||||
|
[filter:ec2faultwrap]
|
||||||
|
paste.filter_factory = nova.api.ec2:FaultWrapper.factory
|
||||||
|
|
||||||
|
[filter:logrequest]
|
||||||
|
paste.filter_factory = nova.api.ec2:RequestLogging.factory
|
||||||
|
|
||||||
|
[filter:ec2lockout]
|
||||||
|
paste.filter_factory = nova.api.ec2:Lockout.factory
|
||||||
|
|
||||||
|
[filter:totoken]
|
||||||
|
paste.filter_factory = nova.api.ec2:EC2Token.factory
|
||||||
|
|
||||||
|
[filter:ec2keystoneauth]
|
||||||
|
paste.filter_factory = nova.api.ec2:EC2KeystoneAuth.factory
|
||||||
|
|
||||||
|
[filter:ec2noauth]
|
||||||
|
paste.filter_factory = nova.api.ec2:NoAuth.factory
|
||||||
|
|
||||||
|
[filter:authenticate]
|
||||||
|
paste.filter_factory = nova.api.ec2:Authenticate.factory
|
||||||
|
|
||||||
|
[filter:cloudrequest]
|
||||||
|
controller = nova.api.ec2.cloud.CloudController
|
||||||
|
paste.filter_factory = nova.api.ec2:Requestify.factory
|
||||||
|
|
||||||
|
[filter:authorizer]
|
||||||
|
paste.filter_factory = nova.api.ec2:Authorizer.factory
|
||||||
|
|
||||||
|
[filter:validator]
|
||||||
|
paste.filter_factory = nova.api.ec2:Validator.factory
|
||||||
|
|
||||||
|
[app:ec2executor]
|
||||||
|
paste.app_factory = nova.api.ec2:Executor.factory
|
||||||
|
|
||||||
|
#############
|
||||||
|
# Openstack #
|
||||||
|
#############
|
||||||
|
|
||||||
|
[composite:osapi_compute]
|
||||||
|
use = call:nova.api.openstack.urlmap:urlmap_factory
|
||||||
|
/: oscomputeversions
|
||||||
|
/v1.1: openstack_compute_api_v2
|
||||||
|
/v2: openstack_compute_api_v2
|
||||||
|
|
||||||
|
[composite:osapi_volume]
|
||||||
|
use = call:nova.api.openstack.urlmap:urlmap_factory
|
||||||
|
/: osvolumeversions
|
||||||
|
/v1: openstack_volume_api_v1
|
||||||
|
|
||||||
|
[pipeline:openstack_compute_api_v2]
|
||||||
|
pipeline = faultwrap authtoken keystonecontext ratelimit osapi_compute_app_v2
|
||||||
|
# NOTE(vish): use the following pipeline for deprecated auth
|
||||||
|
# pipeline = faultwrap auth ratelimit osapi_compute_app_v2
|
||||||
|
# NOTE(vish): use the following pipeline for keystone auth
|
||||||
|
# pipeline = faultwrap authtoken keystonecontext ratelimit osapi_compute_app_v2
|
||||||
|
|
||||||
|
[pipeline:openstack_volume_api_v1]
|
||||||
|
pipeline = faultwrap authtoken keystonecontext ratelimit osapi_volume_app_v1
|
||||||
|
# NOTE(vish): use the following pipeline for deprecated auth
|
||||||
|
# pipeline = faultwrap auth ratelimit osapi_volume_app_v1
|
||||||
|
# NOTE(vish): use the following pipeline for keystone auth
|
||||||
|
# pipeline = faultwrap authtoken keystonecontext ratelimit osapi_volume_app_v1
|
||||||
|
|
||||||
|
[filter:faultwrap]
|
||||||
|
paste.filter_factory = nova.api.openstack:FaultWrapper.factory
|
||||||
|
|
||||||
|
[filter:auth]
|
||||||
|
paste.filter_factory = nova.api.openstack.auth:AuthMiddleware.factory
|
||||||
|
|
||||||
|
[filter:noauth]
|
||||||
|
paste.filter_factory = nova.api.openstack.auth:NoAuthMiddleware.factory
|
||||||
|
|
||||||
|
[filter:ratelimit]
|
||||||
|
paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.factory
|
||||||
|
|
||||||
|
[app:osapi_compute_app_v2]
|
||||||
|
paste.app_factory = nova.api.openstack.compute:APIRouter.factory
|
||||||
|
|
||||||
|
[pipeline:oscomputeversions]
|
||||||
|
pipeline = faultwrap oscomputeversionapp
|
||||||
|
|
||||||
|
[app:osapi_volume_app_v1]
|
||||||
|
paste.app_factory = nova.api.openstack.volume:APIRouter.factory
|
||||||
|
|
||||||
|
[app:oscomputeversionapp]
|
||||||
|
paste.app_factory = nova.api.openstack.compute.versions:Versions.factory
|
||||||
|
|
||||||
|
[pipeline:osvolumeversions]
|
||||||
|
pipeline = faultwrap osvolumeversionapp
|
||||||
|
|
||||||
|
[app:osvolumeversionapp]
|
||||||
|
paste.app_factory = nova.api.openstack.volume.versions:Versions.factory
|
||||||
|
|
||||||
|
##########
|
||||||
|
# Shared #
|
||||||
|
##########
|
||||||
|
|
||||||
|
[filter:keystonecontext]
|
||||||
|
paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory
|
||||||
|
|
||||||
|
[filter:authtoken]
|
||||||
|
paste.filter_factory = keystone.middleware.auth_token:filter_factory
|
||||||
|
service_protocol = http
|
||||||
|
service_host = 127.0.0.1
|
||||||
|
service_port = 5000
|
||||||
|
auth_host = 127.0.0.1
|
||||||
|
auth_port = 35357
|
||||||
|
auth_protocol = http
|
||||||
|
auth_uri = http://127.0.0.1:5000/
|
||||||
|
# NOTE: you will have to replace the values below with an actual token
|
||||||
|
# or user:password combination.
|
||||||
|
admin_user = %SERVICE_USERNAME%
|
||||||
|
admin_password = %SERVICE_PASSWORD%
|
||||||
|
admin_token = %SERVICE_TOKEN%
|
||||||
|
admin_tenant_name = %SERVICE_TENANT_NAME%
|
@ -123,15 +123,6 @@ ADD_PKGS = {
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Adjustments to nova paste pipeline for keystone
|
|
||||||
PASTE_PIPELINE_KEYSTONE_ADJUST = {
|
|
||||||
'pipeline:ec2cloud': {'pipeline': 'ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer ec2executor'},
|
|
||||||
'pipeline:ec2admin': {'pipeline': "ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor"},
|
|
||||||
'pipeline:openstack_compute_api_v2': {'pipeline': "faultwrap authtoken keystonecontext ratelimit osapi_compute_app_v2"},
|
|
||||||
'pipeline:openstack_volume_api_v1': {'pipeline': "faultwrap authtoken keystonecontext ratelimit osapi_volume_app_v1"},
|
|
||||||
'pipeline:openstack_api_v2': {'pipeline': 'faultwrap authtoken keystonecontext ratelimit osapi_app_v2'},
|
|
||||||
}
|
|
||||||
|
|
||||||
# What to start
|
# What to start
|
||||||
APP_OPTIONS = {
|
APP_OPTIONS = {
|
||||||
#these are currently the core components/applications
|
#these are currently the core components/applications
|
||||||
@ -398,33 +389,11 @@ class NovaInstaller(comp.PythonInstallComponent):
|
|||||||
sh.write_file(tgtfn, nova_conf)
|
sh.write_file(tgtfn, nova_conf)
|
||||||
self.tracewriter.cfg_write(tgtfn)
|
self.tracewriter.cfg_write(tgtfn)
|
||||||
|
|
||||||
def _config_adjust(self, contents, config_fn):
|
|
||||||
if config_fn not in ADJUST_CONFIGS:
|
|
||||||
return contents
|
|
||||||
if config_fn == PASTE_CONF and utils.service_enabled(settings.KEYSTONE, self.instances, False):
|
|
||||||
newcontents = contents
|
|
||||||
with io.BytesIO(contents) as stream:
|
|
||||||
config = cfg.IgnoreMissingConfigParser()
|
|
||||||
config.readfp(stream)
|
|
||||||
mods = 0
|
|
||||||
for section in PASTE_PIPELINE_KEYSTONE_ADJUST.keys():
|
|
||||||
if config.has_section(section):
|
|
||||||
section_vals = PASTE_PIPELINE_KEYSTONE_ADJUST.get(section)
|
|
||||||
for (k, v) in section_vals.items():
|
|
||||||
config.set(section, k, v)
|
|
||||||
mods += 1
|
|
||||||
if mods > 0:
|
|
||||||
with io.BytesIO() as outputstream:
|
|
||||||
config.write(outputstream)
|
|
||||||
outputstream.flush()
|
|
||||||
newcontents = cfg.add_header(config_fn, outputstream.getvalue())
|
|
||||||
contents = newcontents
|
|
||||||
return contents
|
|
||||||
|
|
||||||
def _get_source_config(self, config_fn):
|
def _get_source_config(self, config_fn):
|
||||||
name = config_fn
|
name = config_fn
|
||||||
if config_fn == PASTE_CONF:
|
if config_fn == PASTE_CONF:
|
||||||
name = PASTE_SOURCE_FN
|
# Return the paste api template
|
||||||
|
return comp.PythonInstallComponent._get_source_config(self, PASTE_SOURCE_FN)
|
||||||
elif config_fn == LOGGING_CONF:
|
elif config_fn == LOGGING_CONF:
|
||||||
name = LOGGING_SOURCE_FN
|
name = LOGGING_SOURCE_FN
|
||||||
srcfn = sh.joinpths(self.cfgdir, "nova", name)
|
srcfn = sh.joinpths(self.cfgdir, "nova", name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user