support all cluster update option
[escalator.git] / api / escalator / api / v1 / router.py
1 # Copyright 2011 OpenStack Foundation
2 # All Rights Reserved.
3 #
4 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
5 #    not use this file except in compliance with the License. You may obtain
6 #    a copy of the License at
7 #
8 #         http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #    Unless required by applicable law or agreed to in writing, software
11 #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 #    License for the specific language governing permissions and limitations
14 #    under the License.
15 from escalator.common import wsgi
16 from escalator.api.v1 import versions
17 from escalator.api.v1 import clusters
18 from escalator.api.v1 import install
19
20
21 class API(wsgi.Router):
22
23     """WSGI router for Escalator v1 API requests."""
24
25     def __init__(self, mapper):
26         wsgi.Resource(wsgi.RejectMethodController())
27
28         versions_resource = versions.create_resource()
29         clusters_resource = clusters.create_resource()
30
31         mapper.connect("/clusters",
32                        controller=clusters_resource,
33                        action='detail',
34                        conditions={'method': ['GET']})
35
36         mapper.connect("/versions",
37                        controller=versions_resource,
38                        action='version',
39                        conditions={'method': ['POST']})
40
41         install_resource = install.create_resource()
42         mapper.connect("/update/{cluster_id}",
43                        controller=install_resource,
44                        action='update_progress',
45                        conditions={'method': ['GET']})
46
47         super(API, self).__init__(mapper)