root / api / urls.py @ b9a77976
History | View | Annotate | Download (5.8 kB)
1 | 00b4f1be | Faidon Liambotis | # vim: ts=4 sts=4 et ai sw=4 fileencoding=utf-8
|
---|---|---|---|
2 | 00b4f1be | Faidon Liambotis | #
|
3 | 60023e66 | Constantinos Venetsanopoulos | # Copyright © 2010 Greek Research and Technology Network
|
4 | 00b4f1be | Faidon Liambotis | #
|
5 | 00b4f1be | Faidon Liambotis | |
6 | 00b4f1be | Faidon Liambotis | from django.conf.urls.defaults import * |
7 | 5c812d1b | Faidon Liambotis | from synnefo.helpers import url_with_format |
8 | 5c812d1b | Faidon Liambotis | from synnefo.api.resource import Resource |
9 | 00b4f1be | Faidon Liambotis | from synnefo.api.handlers import * |
10 | 00b4f1be | Faidon Liambotis | from synnefo.api.authentication import TokenAuthentication |
11 | 0be1a55e | Faidon Liambotis | from synnefo.api.faults import fault |
12 | 00b4f1be | Faidon Liambotis | |
13 | 00b4f1be | Faidon Liambotis | auth = TokenAuthentication() |
14 | 00b4f1be | Faidon Liambotis | |
15 | 0be1a55e | Faidon Liambotis | def notFound(request): |
16 | 0be1a55e | Faidon Liambotis | return fault.itemNotFound.response
|
17 | 0be1a55e | Faidon Liambotis | |
18 | beb79c95 | Faidon Liambotis | limit_handler = Resource(LimitHandler, auth) |
19 | 00b4f1be | Faidon Liambotis | server_handler = Resource(ServerHandler, auth) |
20 | 00b4f1be | Faidon Liambotis | server_address_handler = Resource(ServerAddressHandler, auth) |
21 | 00b4f1be | Faidon Liambotis | server_actions_handler = Resource(ServerActionHandler, auth) |
22 | c99adc90 | Faidon Liambotis | server_backup_handler = Resource(ServerBackupHandler, auth) |
23 | 60023e66 | Constantinos Venetsanopoulos | server_metadata_handler = Resource(ServerMetadataHandler, auth) |
24 | 427a9220 | Faidon Liambotis | flavor_handler = Resource(FlavorHandler, auth) |
25 | dcc6a862 | Faidon Liambotis | image_handler = Resource(ImageHandler, auth) |
26 | 60023e66 | Constantinos Venetsanopoulos | image_metadata_handler = Resource(ImageMetadataHandler, auth) |
27 | ed66d976 | Faidon Liambotis | shared_ip_group_handler = Resource(SharedIPGroupHandler, auth) |
28 | a31ff6cb | Markos Gogoulos | virtual_machine_group_handler = Resource(VirtualMachineGroupHandler, auth) |
29 | 9071888e | Constantinos Venetsanopoulos | disk_handler = Resource(DiskHandler, auth) |
30 | 00b4f1be | Faidon Liambotis | |
31 | c3e8f508 | Faidon Liambotis | def url_with_format(regex, *args, **kwargs): |
32 | c3e8f508 | Faidon Liambotis | if regex[-1] == '$': |
33 | c3e8f508 | Faidon Liambotis | regex = regex[:-1]
|
34 | c3e8f508 | Faidon Liambotis | regex = regex + r'(\.(?P<emitter_format>json|xml))?$'
|
35 | c3e8f508 | Faidon Liambotis | return url(regex, *args, **kwargs)
|
36 | c3e8f508 | Faidon Liambotis | |
37 | 60023e66 | Constantinos Venetsanopoulos | # The Rackspace Cloud Servers API v1.0
|
38 | 00b4f1be | Faidon Liambotis | v10patterns = patterns('',
|
39 | c3e8f508 | Faidon Liambotis | url_with_format(r'^limits$', limit_handler),
|
40 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers$', server_handler),
|
41 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers/(?P<id>[^/]+)$', server_handler),
|
42 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers/(?P<id>[^/]+)/action$', server_actions_handler),
|
43 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers/(?P<id>[^/]+)/ips$', server_address_handler),
|
44 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers/(?P<id>[^/]+)/ips/private$', server_address_handler),
|
45 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers/(?P<id>[^/]+)/ips/public/(?P<address>[^/]+)$', server_address_handler),
|
46 | c3e8f508 | Faidon Liambotis | url_with_format(r'^servers/(?P<id>[^/]+)/backup_schedule', server_backup_handler),
|
47 | c3e8f508 | Faidon Liambotis | url_with_format(r'^flavors$', flavor_handler),
|
48 | c3e8f508 | Faidon Liambotis | url_with_format(r'^flavors/(?P<id>[^/]+)$', flavor_handler),
|
49 | c3e8f508 | Faidon Liambotis | url_with_format(r'^images$', image_handler),
|
50 | c3e8f508 | Faidon Liambotis | url_with_format(r'^images/(?P<id>[^/]+)$', image_handler),
|
51 | c3e8f508 | Faidon Liambotis | url_with_format(r'^shared_ip_groups$', shared_ip_group_handler),
|
52 | c3e8f508 | Faidon Liambotis | url_with_format(r'^shared_ip_groups/(?P<id>[^/]+)$', shared_ip_group_handler),
|
53 | d7710a26 | Markos Gogoulos | url_with_format(r'^groups$', virtual_machine_group_handler),
|
54 | d7710a26 | Markos Gogoulos | url_with_format(r'^groups/(?P<id>[^/]+)$', virtual_machine_group_handler),
|
55 | c3e8f508 | Faidon Liambotis | url(r'^.+', notFound), # catch-all |
56 | 00b4f1be | Faidon Liambotis | ) |
57 | 00b4f1be | Faidon Liambotis | |
58 | 60023e66 | Constantinos Venetsanopoulos | # The OpenStack Compute API v1.1
|
59 | 60023e66 | Constantinos Venetsanopoulos | v11patterns = patterns('',
|
60 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^limits$', limit_handler),
|
61 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers$', server_handler),
|
62 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)$', server_handler),
|
63 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/action$', server_actions_handler),
|
64 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/ips$', server_address_handler),
|
65 | d73d59e4 | Markos Gogoulos | url_with_format(r'^servers/(?P<id>[^/]+)/ips/(?P<networkID>[^/]+)$', server_address_handler),
|
66 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/backup_schedule', server_backup_handler),
|
67 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/meta$', server_metadata_handler),
|
68 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/meta/(?P<key>[^/]+)$', server_metadata_handler),
|
69 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^flavors$', flavor_handler),
|
70 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^flavors/(?P<id>[^/]+)$', flavor_handler),
|
71 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^images$', image_handler),
|
72 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^images/(?P<id>[^/]+)$', image_handler),
|
73 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^images/(?P<id>[^/]+)/meta$', image_metadata_handler),
|
74 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^images/(?P<id>[^/]+)/meta/(?P<key>[^/]+)$', image_metadata_handler),
|
75 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^shared_ip_groups$', shared_ip_group_handler),
|
76 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^shared_ip_groups/(?P<id>[^/]+)$', shared_ip_group_handler),
|
77 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^groups$', virtual_machine_group_handler),
|
78 | 60023e66 | Constantinos Venetsanopoulos | url_with_format(r'^groups/(?P<id>[^/]+)$', virtual_machine_group_handler),
|
79 | 60023e66 | Constantinos Venetsanopoulos | url(r'^.+', notFound), # catch-all |
80 | 60023e66 | Constantinos Venetsanopoulos | ) |
81 | 60023e66 | Constantinos Venetsanopoulos | |
82 | 60023e66 | Constantinos Venetsanopoulos | # The Rackspace Cloud Servers API v1.0 + GRNET v1.0 extension
|
83 | 9071888e | Constantinos Venetsanopoulos | v10grnet10patterns = patterns('',
|
84 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^limits$', limit_handler),
|
85 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^servers$', server_handler),
|
86 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)$', server_handler),
|
87 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/action$', server_actions_handler),
|
88 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/ips$', server_address_handler),
|
89 | 76c8e33d | Markos Gogoulos | url_with_format(r'^servers/(?P<id>[^/]+)/ips/(?P<networkID>[^/]+)$', server_address_handler),
|
90 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^servers/(?P<id>[^/]+)/backup_schedule', server_backup_handler),
|
91 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^flavors$', flavor_handler),
|
92 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^flavors/(?P<id>[^/]+)$', flavor_handler),
|
93 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^images$', image_handler),
|
94 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^images/(?P<id>[^/]+)$', image_handler),
|
95 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^shared_ip_groups$', shared_ip_group_handler),
|
96 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^shared_ip_groups/(?P<id>[^/]+)$', shared_ip_group_handler),
|
97 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^groups$', virtual_machine_group_handler),
|
98 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^disks$', disk_handler),
|
99 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^disks/(?P<id>[^/]+)$', disk_handler),
|
100 | 9071888e | Constantinos Venetsanopoulos | url_with_format(r'^groups/(?P<id>[^/]+)$', virtual_machine_group_handler),
|
101 | 9071888e | Constantinos Venetsanopoulos | url(r'^.+', notFound), # catch-all |
102 | 9071888e | Constantinos Venetsanopoulos | ) |
103 | 9071888e | Constantinos Venetsanopoulos | |
104 | 7e2f9d4b | Giorgos Verigakis | # The OpenStack Compute API v1.1 (REDUX)
|
105 | 7e2f9d4b | Giorgos Verigakis | v11redux_patterns = patterns('',
|
106 | 7e2f9d4b | Giorgos Verigakis | (r'^servers', include('synnefo.api.servers')), |
107 | c36934a7 | Giorgos Verigakis | (r'^flavors', include('synnefo.api.flavors')), |
108 | c36934a7 | Giorgos Verigakis | (r'^images', include('synnefo.api.images')), |
109 | 7e2f9d4b | Giorgos Verigakis | (r'^.+', notFound), # catch-all |
110 | 7e2f9d4b | Giorgos Verigakis | ) |
111 | 7e2f9d4b | Giorgos Verigakis | |
112 | 00b4f1be | Faidon Liambotis | version_handler = Resource(VersionHandler) |
113 | 00b4f1be | Faidon Liambotis | |
114 | 00b4f1be | Faidon Liambotis | urlpatterns = patterns('',
|
115 | c3e8f508 | Faidon Liambotis | url_with_format(r'^(?P<number>[^/]+)/?$', version_handler),
|
116 | 04accb0f | Faidon Liambotis | url(r'^$', version_handler),
|
117 | c3e8f508 | Faidon Liambotis | url(r'^v1.0/', include(v10patterns)),
|
118 | 60023e66 | Constantinos Venetsanopoulos | url(r'^v1.1/', include(v11patterns)),
|
119 | 9071888e | Constantinos Venetsanopoulos | url(r'^v1.0grnet1/', include(v10grnet10patterns)),
|
120 | 7e2f9d4b | Giorgos Verigakis | url(r'^v1.1redux/', include(v11redux_patterns)),
|
121 | c3e8f508 | Faidon Liambotis | url(r'^.+', notFound), # catch-all |
122 | 00b4f1be | Faidon Liambotis | ) |