<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi, Experts<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Could someone give me a help on below issue when I start swift proxy service.  Is something wrong with the config.<o:p></o:p></p>
<p class="MsoNormal">Thanks in advance.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">root@folsom-storage:/etc/swift# swift-init proxy start<o:p></o:p></p>
<p class="MsoNormal">Starting proxy-server...(/etc/swift/proxy-server.conf)<o:p></o:p></p>
<p class="MsoNormal">Traceback (most recent call last):<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/bin/swift-proxy-server", line 22, in <module><o:p></o:p></p>
<p class="MsoNormal">    run_wsgi(conf_file, 'proxy-server', default_port=8080, **options)<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 138, in run_wsgi<o:p></o:p></p>
<p class="MsoNormal">    loadapp('config:%s' % conf_file, global_conf={'log_name': log_name})<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp<o:p></o:p></p>
<p class="MsoNormal">    return loadobj(APP, uri, name=name, **kw)<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj<o:p></o:p></p>
<p class="MsoNormal">    return context.create()<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create<o:p></o:p></p>
<p class="MsoNormal">    return self.object_type.invoke(self)<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 207, in invoke<o:p></o:p></p>
<p class="MsoNormal">    app = filter(app)<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/keystone/middleware/auth_token.py", line 815, in auth_filter<o:p></o:p></p>
<p class="MsoNormal">    return AuthProtocol(app, conf)<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/dist-packages/keystone/middleware/auth_token.py", line 219, in __init__<o:p></o:p></p>
<p class="MsoNormal">    os.makedirs(self.signing_dirname)<o:p></o:p></p>
<p class="MsoNormal">  File "/usr/lib/python2.7/os.py", line 157, in makedirs<o:p></o:p></p>
<p class="MsoNormal">    mkdir(name, mode)<o:p></o:p></p>
<p class="MsoNormal">OSError: [Errno 13] Permission denied: '/root/keystone-signing'<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">root@folsom-storage:/etc/swift# vi proxy-server.conf<o:p></o:p></p>
<p class="MsoNormal">[DEFAULT]<o:p></o:p></p>
<p class="MsoNormal">bind_port = 8080<o:p></o:p></p>
<p class="MsoNormal">user = swift<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[pipeline:main]<o:p></o:p></p>
<p class="MsoNormal">pipeline = healthcheck cache authtoken keystone proxy-server<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[app:proxy-server]<o:p></o:p></p>
<p class="MsoNormal">use = egg:swift#proxy<o:p></o:p></p>
<p class="MsoNormal">allow_account_management = true<o:p></o:p></p>
<p class="MsoNormal">account_autocreate = true<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:keystone]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware.swift_auth:filter_factory<o:p></o:p></p>
<p class="MsoNormal">operator_roles = Member,admin, swiftoperator<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:authtoken]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware.auth_token:filter_factory<o:p></o:p></p>
<p class="MsoNormal"># Delaying the auth decision is required to support token-less<o:p></o:p></p>
<p class="MsoNormal"># usage for anonymous referrers ('.r:*').<o:p></o:p></p>
<p class="MsoNormal">delay_auth_decision = 10<o:p></o:p></p>
<p class="MsoNormal">service_port = 5000<o:p></o:p></p>
<p class="MsoNormal">service_host = 192.168.0.1<o:p></o:p></p>
<p class="MsoNormal">auth_port = 35357<o:p></o:p></p>
<p class="MsoNormal">auth_host = 192.168.0.1<o:p></o:p></p>
<p class="MsoNormal">auth_protocol = http<o:p></o:p></p>
<p class="MsoNormal">auth_uri = http://192.168.0.1:5000/<o:p></o:p></p>
<p class="MsoNormal">auth_token = password<o:p></o:p></p>
<p class="MsoNormal">admin_token = password<o:p></o:p></p>
<p class="MsoNormal">admin_tenant_name = service<o:p></o:p></p>
<p class="MsoNormal">admin_user = swift<o:p></o:p></p>
<p class="MsoNormal">admin_password = swift<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:cache]<o:p></o:p></p>
<p class="MsoNormal">use = egg:swift#memcache<o:p></o:p></p>
<p class="MsoNormal">set log_name = cache<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:catch_errors]<o:p></o:p></p>
<p class="MsoNormal">use = egg:swift#catch_errors<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:healthcheck]<o:p></o:p></p>
<p class="MsoNormal">use = egg:swift#healthcheck<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Keystone is configured on 192.168.0.1:<o:p></o:p></p>
<p class="MsoNormal">keystone endpoint-list<o:p></o:p></p>
<p class="MsoNormal">+----------------------------------+-----------+--------------------------------------------------+-----------------------------------------------+------------------------------------------+<o:p></o:p></p>
<p class="MsoNormal">|                id                |   region  |                    publicurl                     |                  internalurl                  |                 adminurl                 |<o:p></o:p></p>
<p class="MsoNormal">+----------------------------------+-----------+--------------------------------------------------+-----------------------------------------------+------------------------------------------+<o:p></o:p></p>
<p class="MsoNormal">| 0621ace42619443d9d66a717dc41f6ea | RegionOne |      http://192.168.0.1:8773/services/Cloud      |     http://192.168.0.1:8773/services/Cloud    |  http://192.168.0.1:8773/services/Admin  |<o:p></o:p></p>
<p class="MsoNormal">| 4a7f461a0de44a0a850cc681e4584318 | RegionOne |     http://192.168.0.1:8774/v2/$(tenant_id)s     |    http://192.168.0.1:8774/v2/$(tenant_id)s   | http://192.168.0.1:8774/v2/$(tenant_id)s |<o:p></o:p></p>
<p class="MsoNormal">| 4f941d8ce5be494896e27a1511527ff4 | RegionOne | http://192.168.0.4:8080/v1/AUTH_$(tenant_id)s | http://192.168.0.4:8080/v1/AUTH_$(tenant_id)s |        http://192.168.0.1:8080/v1        |<o:p></o:p></p>
<p class="MsoNormal">| 5f431e96bc4140a086e45757165e3f58 | RegionOne |           http://192.168.0.1:5000/v2.0           |          http://192.168.0.1:5000/v2.0         |      http://192.168.0.1:35357/v2.0       |<o:p></o:p></p>
<p class="MsoNormal">| 75fe8e7e5f2c43a2b46b596266688390 | RegionOne |            http://192.168.0.1:9292/v2            |           http://192.168.0.1:9292/v2          |        http://192.168.0.1:9292/v2        |<o:p></o:p></p>
<p class="MsoNormal">| 9c0d4921854d48209b0c84109536fddc | RegionOne |             http://192.168.0.1:9696/             |            http://192.168.0.1:9696/           |         http://192.168.0.1:9696/         |<o:p></o:p></p>
<p class="MsoNormal">| c09985140ef14472afdfe3b9e4cb7c60 | RegionOne |     http://192.168.0.1:8776/v1/$(tenant_id)s     |    http://192.168.0.1:8776/v1/$(tenant_id)s   | http://192.168.0.1:8776/v1/$(tenant_id)s |<o:p></o:p></p>
<p class="MsoNormal">| cd22ee5a9b23443d9c28e8ce38729617 | RegionOne |             http://192.168.0.1:9696/             |            http://192.168.0.1:9696/           |         http://192.168.0.1:9696/         |<o:p></o:p></p>
<p class="MsoNormal">+----------------------------------+-----------+--------------------------------------------------+-----------------------------------------------+------------------------------------------+<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">root@folsom-controller:/etc/keystone# cat keystone.conf<o:p></o:p></p>
<p class="MsoNormal">[DEFAULT]<o:p></o:p></p>
<p class="MsoNormal"># A "shared secret" between keystone and other openstack services<o:p></o:p></p>
<p class="MsoNormal">admin_token = password<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># The IP address of the network interface to listen on<o:p></o:p></p>
<p class="MsoNormal">bind_host = 0.0.0.0<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># The port number which the public service listens on<o:p></o:p></p>
<p class="MsoNormal">public_port = 5000<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># The port number which the public admin listens on<o:p></o:p></p>
<p class="MsoNormal">admin_port = 35357<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># The port number which the OpenStack Compute service listens on<o:p></o:p></p>
<p class="MsoNormal">compute_port = 8774<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># === Logging Options ===<o:p></o:p></p>
<p class="MsoNormal"># Print debugging output<o:p></o:p></p>
<p class="MsoNormal">verbose = True<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Print more verbose output<o:p></o:p></p>
<p class="MsoNormal"># (includes plaintext request logging, potentially including passwords)<o:p></o:p></p>
<p class="MsoNormal">debug = True<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Name of log file to output to. If not set, logging will go to stdout.<o:p></o:p></p>
<p class="MsoNormal">log_file = keystone.log<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># The directory to keep log files in (will be prepended to --logfile)<o:p></o:p></p>
<p class="MsoNormal">log_dir = /var/log/keystone<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Use syslog for logging.<o:p></o:p></p>
<p class="MsoNormal"># use_syslog = False<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># syslog facility to receive log lines<o:p></o:p></p>
<p class="MsoNormal"># syslog_log_facility = LOG_USER<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># If this option is specified, the logging configuration file specified is<o:p></o:p></p>
<p class="MsoNormal"># used and overrides any other logging options specified. Please see the<o:p></o:p></p>
<p class="MsoNormal"># Python logging module documentation for details on logging configuration<o:p></o:p></p>
<p class="MsoNormal"># files.<o:p></o:p></p>
<p class="MsoNormal">log_config = /etc/keystone/logging.conf<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># A logging.Formatter log message format string which may use any of the<o:p></o:p></p>
<p class="MsoNormal"># available logging.LogRecord attributes.<o:p></o:p></p>
<p class="MsoNormal"># log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Format string for %(asctime)s in log records.<o:p></o:p></p>
<p class="MsoNormal"># log_date_format = %Y-%m-%d %H:%M:%S<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># onready allows you to send a notification when the process is ready to serve<o:p></o:p></p>
<p class="MsoNormal"># For example, to have it notify using systemd, one could set shell command:<o:p></o:p></p>
<p class="MsoNormal"># onready = systemd-notify --ready<o:p></o:p></p>
<p class="MsoNormal"># or a module with notify() method:<o:p></o:p></p>
<p class="MsoNormal"># onready = keystone.common.systemd<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[sql]<o:p></o:p></p>
<p class="MsoNormal"># The SQLAlchemy connection string used to connect to the database<o:p></o:p></p>
<p class="MsoNormal">#connection = sqlite:////var/lib/keystone/keystone.db<o:p></o:p></p>
<p class="MsoNormal">connection = mysql://keystone:password@localhost:3306/keystone<o:p></o:p></p>
<p class="MsoNormal">idle_timeout = 200<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># the timeout before idle sql connections are reaped<o:p></o:p></p>
<p class="MsoNormal"># idle_timeout = 200<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[identity]<o:p></o:p></p>
<p class="MsoNormal">driver = keystone.identity.backends.sql.Identity<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[catalog]<o:p></o:p></p>
<p class="MsoNormal"># dynamic, sql-based backend (supports API/CLI-based management commands)<o:p></o:p></p>
<p class="MsoNormal">driver = keystone.catalog.backends.sql.Catalog<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># static, file-based backend (does *NOT* support any management commands)<o:p></o:p></p>
<p class="MsoNormal"># driver = keystone.catalog.backends.templated.TemplatedCatalog<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># template_file = default_catalog.templates<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[token]<o:p></o:p></p>
<p class="MsoNormal">driver = keystone.token.backends.sql.Token<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Amount of time a token should remain valid (in seconds)<o:p></o:p></p>
<p class="MsoNormal"># expiration = 86400<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[policy]<o:p></o:p></p>
<p class="MsoNormal">driver = keystone.policy.backends.rules.Policy<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ec2]<o:p></o:p></p>
<p class="MsoNormal">driver = keystone.contrib.ec2.backends.sql.Ec2<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ssl]<o:p></o:p></p>
<p class="MsoNormal">#enable = True<o:p></o:p></p>
<p class="MsoNormal">#certfile = /etc/keystone/ssl/certs/keystone.pem<o:p></o:p></p>
<p class="MsoNormal">#keyfile = /etc/keystone/ssl/private/keystonekey.pem<o:p></o:p></p>
<p class="MsoNormal">#ca_certs = /etc/keystone/ssl/certs/ca.pem<o:p></o:p></p>
<p class="MsoNormal">#cert_required = True<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[signing]<o:p></o:p></p>
<p class="MsoNormal">#token_format = UUID<o:p></o:p></p>
<p class="MsoNormal">#certfile = /etc/keystone/ssl/certs/signing_cert.pem<o:p></o:p></p>
<p class="MsoNormal">#keyfile = /etc/keystone/ssl/private/signing_key.pem<o:p></o:p></p>
<p class="MsoNormal">#ca_certs = /etc/keystone/ssl/certs/ca.pem<o:p></o:p></p>
<p class="MsoNormal">#key_size = 1024<o:p></o:p></p>
<p class="MsoNormal">#valid_days = 3650<o:p></o:p></p>
<p class="MsoNormal">#ca_password = None<o:p></o:p></p>
<p class="MsoNormal">#token_format = PKI<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ldap]<o:p></o:p></p>
<p class="MsoNormal"># url = ldap://localhost<o:p></o:p></p>
<p class="MsoNormal"># user = dc=Manager,dc=example,dc=com<o:p></o:p></p>
<p class="MsoNormal"># password = None<o:p></o:p></p>
<p class="MsoNormal"># suffix = cn=example,cn=com<o:p></o:p></p>
<p class="MsoNormal"># use_dumb_member = False<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># user_tree_dn = ou=Users,dc=example,dc=com<o:p></o:p></p>
<p class="MsoNormal"># user_objectclass = inetOrgPerson<o:p></o:p></p>
<p class="MsoNormal"># user_id_attribute = cn<o:p></o:p></p>
<p class="MsoNormal"># user_name_attribute = sn<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># tenant_tree_dn = ou=Groups,dc=example,dc=com<o:p></o:p></p>
<p class="MsoNormal"># tenant_objectclass = groupOfNames<o:p></o:p></p>
<p class="MsoNormal"># tenant_id_attribute = cn<o:p></o:p></p>
<p class="MsoNormal"># tenant_member_attribute = member<o:p></o:p></p>
<p class="MsoNormal"># tenant_name_attribute = ou<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># role_tree_dn = ou=Roles,dc=example,dc=com<o:p></o:p></p>
<p class="MsoNormal"># role_objectclass = organizationalRole<o:p></o:p></p>
<p class="MsoNormal"># role_id_attribute = cn<o:p></o:p></p>
<p class="MsoNormal"># role_member_attribute = roleOccupant<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:debug]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.common.wsgi:Debug.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:token_auth]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware:TokenAuthMiddleware.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:admin_token_auth]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware:AdminTokenAuthMiddleware.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:xml_body]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware:XmlBodyMiddleware.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:json_body]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware:JsonBodyMiddleware.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:user_crud_extension]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.contrib.user_crud:CrudExtension.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:crud_extension]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.contrib.admin_crud:CrudExtension.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:ec2_extension]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.contrib.ec2:Ec2Extension.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:s3_extension]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.contrib.s3:S3Extension.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:url_normalize]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.middleware:NormalizingFilter.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:stats_monitoring]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.contrib.stats:StatsMiddleware.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[filter:stats_reporting]<o:p></o:p></p>
<p class="MsoNormal">paste.filter_factory = keystone.contrib.stats:StatsExtension.factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[app:public_service]<o:p></o:p></p>
<p class="MsoNormal">paste.app_factory = keystone.service:public_app_factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[app:admin_service]<o:p></o:p></p>
<p class="MsoNormal">paste.app_factory = keystone.service:admin_app_factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[pipeline:public_api]<o:p></o:p></p>
<p class="MsoNormal">pipeline = stats_monitoring url_normalize token_auth admin_token_auth xml_body json_body debug ec2_extension user_crud_extension public_service<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[pipeline:admin_api]<o:p></o:p></p>
<p class="MsoNormal">pipeline = stats_monitoring url_normalize token_auth admin_token_auth xml_body json_body debug stats_reporting ec2_extension s3_extension crud_extension admin_service<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[app:public_version_service]<o:p></o:p></p>
<p class="MsoNormal">paste.app_factory = keystone.service:public_version_app_factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[app:admin_version_service]<o:p></o:p></p>
<p class="MsoNormal">paste.app_factory = keystone.service:admin_version_app_factory<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[pipeline:public_version_api]<o:p></o:p></p>
<p class="MsoNormal">pipeline = stats_monitoring url_normalize xml_body public_version_service<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[pipeline:admin_version_api]<o:p></o:p></p>
<p class="MsoNormal">pipeline = stats_monitoring url_normalize xml_body admin_version_service<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[composite:main]<o:p></o:p></p>
<p class="MsoNormal">use = egg:Paste#urlmap<o:p></o:p></p>
<p class="MsoNormal">/v2.0 = public_api<o:p></o:p></p>
<p class="MsoNormal">/ = public_version_api<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[composite:admin]<o:p></o:p></p>
<p class="MsoNormal">use = egg:Paste#urlmap<o:p></o:p></p>
<p class="MsoNormal">/v2.0 = admin_api<o:p></o:p></p>
<p class="MsoNormal">/ = admin_version_api<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Times New Roman","serif"">Thanks & Regards,</span></i><span style="font-size:10.0pt;font-family:"Times New Roman","serif"">
<br>
<i>David<o:p></o:p></i></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>