~ubuntu-branches/ubuntu/saucy/keystone/saucy-proposed

« back to all changes in this revision

Viewing changes to keystone/routers/service.py

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2011-08-23 10:18:22 UTC
  • Revision ID: james.westby@ubuntu.com-20110823101822-enve6zceb3lqhuvj
Tags: upstream-1.0~d4~20110823.1078
ImportĀ upstreamĀ versionĀ 1.0~d4~20110823.1078

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 
2
 
 
3
# Copyright 2010 OpenStack LLC.
 
4
# All Rights Reserved.
 
5
#
 
6
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
 
7
#    not use this file except in compliance with the License. You may obtain
 
8
#    a copy of the License at
 
9
#
 
10
#         http://www.apache.org/licenses/LICENSE-2.0
 
11
#
 
12
#    Unless required by applicable law or agreed to in writing, software
 
13
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 
14
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 
15
#    License for the specific language governing permissions and limitations
 
16
#    under the License.
 
17
 
 
18
import routes
 
19
 
 
20
from keystone.common import wsgi
 
21
import keystone.backends as db
 
22
from keystone.controllers.auth import AuthController
 
23
from keystone.controllers.tenant import TenantController
 
24
from keystone.controllers.version import VersionController
 
25
from keystone.controllers.staticfiles import StaticFilesController
 
26
from keystone.controllers.extensions import ExtensionsController
 
27
 
 
28
 
 
29
class ServiceApi(wsgi.Router):
 
30
    """WSGI entry point for Keystone Service API requests."""
 
31
 
 
32
    def __init__(self, options):
 
33
        self.options = options
 
34
        mapper = routes.Mapper()
 
35
 
 
36
        db.configure_backends(options)
 
37
 
 
38
        # Token Operations
 
39
        auth_controller = AuthController(options)
 
40
        mapper.connect("/tokens", controller=auth_controller,
 
41
                       action="authenticate",
 
42
                       conditions=dict(method=["POST"]))
 
43
        mapper.connect("/ec2tokens", controller=auth_controller,
 
44
                       action="authenticate_ec2",
 
45
                       conditions=dict(method=["POST"]))
 
46
        tenant_controller = TenantController(options)
 
47
        mapper.connect("/tenants",
 
48
                        controller=tenant_controller,
 
49
                        action="get_tenants",
 
50
                        conditions=dict(method=["GET"]))
 
51
 
 
52
        # Miscellaneous Operations
 
53
        version_controller = VersionController(options)
 
54
        mapper.connect("/",
 
55
                        controller=version_controller,
 
56
                        action="get_version_info", file="service/version",
 
57
                        conditions=dict(method=["GET"]))
 
58
 
 
59
        extensions_controller = ExtensionsController(options)
 
60
        mapper.connect("/extensions",
 
61
                        controller=extensions_controller,
 
62
                        action="get_extensions_info",
 
63
                        path="content/service/extensions",
 
64
                        conditions=dict(method=["GET"]))
 
65
 
 
66
        # Static Files Controller
 
67
        static_files_controller = StaticFilesController(options)
 
68
        mapper.connect("/identitydevguide.pdf",
 
69
                        controller=static_files_controller,
 
70
                        action="get_pdf_contract",
 
71
                        root="content/service/", pdf="identitydevguide.pdf",
 
72
                        conditions=dict(method=["GET"]))
 
73
        mapper.connect("/identity.wadl",
 
74
                        controller=static_files_controller,
 
75
                        action="get_wadl_contract",
 
76
                        root="content/service/", wadl="identity.wadl",
 
77
                        conditions=dict(method=["GET"]))
 
78
        mapper.connect("/common.ent",
 
79
                        controller=static_files_controller,
 
80
                        action="get_wadl_contract",
 
81
                        wadl="common.ent", root="content/common/",
 
82
                        conditions=dict(method=["GET"]))
 
83
        mapper.connect("/xslt/{file:.*}",
 
84
                        controller=static_files_controller,
 
85
                        action="get_static_file", path="common/xslt/",
 
86
                        mimetype="application/xml",
 
87
                        conditions=dict(method=["GET"]))
 
88
        mapper.connect("/style/{file:.*}",
 
89
                        controller=static_files_controller,
 
90
                        action="get_static_file", path="common/style/",
 
91
                        mimetype="application/css",
 
92
                        conditions=dict(method=["GET"]))
 
93
        mapper.connect("/js/{file:.*}",
 
94
                        controller=static_files_controller,
 
95
                        action="get_static_file", path="common/js/",
 
96
                        mimetype="application/javascript",
 
97
                        conditions=dict(method=["GET"]))
 
98
        mapper.connect("/samples/{file:.*}",
 
99
                        controller=static_files_controller,
 
100
                        action="get_static_file", path="common/samples/",
 
101
                        conditions=dict(method=["GET"]))
 
102
        mapper.connect("/xsd/{xsd:.*}",
 
103
                        controller=static_files_controller,
 
104
                        action="get_xsd_contract", root="content/service/",
 
105
                        conditions=dict(method=["GET"]))
 
106
        mapper.connect("/xsd/atom/{xsd}",
 
107
                        controller=static_files_controller,
 
108
                        action="get_xsd_atom_contract",
 
109
                        root="content/service/",
 
110
                        conditions=dict(method=["GET"]))
 
111
        mapper.connect("/xsd/atom/{xsd}",
 
112
                        controller=static_files_controller,
 
113
                        action="get_xsd_atom_contract",
 
114
                        root="content/service/",
 
115
                        conditions=dict(method=["GET"]))
 
116
 
 
117
        super(ServiceApi, self).__init__(mapper)