urls.py 11.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# Copyright 2014 Budapest University of Technology and Economics (BME IK)
#
# This file is part of CIRCLE Cloud.
#
# CIRCLE is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# CIRCLE is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with CIRCLE.  If not, see <http://www.gnu.org/licenses/>.

18 19
from __future__ import absolute_import
from django.conf.urls import patterns, url, include
20

21
import autocomplete_light
22
from vm.models import Instance
23
from .views import (
24
    AclUpdateView, FavouriteView, GroupAclUpdateView, GroupDelete,
25
    GroupDetailView, GroupList, IndexView,
26 27
    InstanceActivityDetail, LeaseCreate, LeaseDelete, LeaseDetail,
    MyPreferencesView, NodeAddTraitView, NodeCreate, NodeDelete,
28
    NodeDetailView, NodeList,
29
    NotificationView, TemplateAclUpdateView, TemplateCreate,
30 31
    TemplateDelete, TemplateDetail, TemplateList,
    vm_activity, VmCreate, VmDetailView,
32
    VmDetailVncTokenView, VmList,
33
    DiskRemoveView, get_disk_download_status,
34
    GroupRemoveUserView,
35
    GroupRemoveFutureUserView,
36
    GroupCreate, GroupProfileUpdate,
37
    TemplateChoose,
38
    UserCreationView,
39
    get_vm_screenshot,
40
    ProfileView, toggle_use_gravatar, UnsubscribeFormView,
41
    UserKeyDelete, UserKeyDetail, UserKeyCreate,
42
    ConnectCommandDelete, ConnectCommandDetail, ConnectCommandCreate,
43
    StoreList, store_download, store_upload, store_get_upload_url, StoreRemove,
44
    store_new_directory, store_refresh_toplist,
45 46
    VmTraitsUpdate, VmRawDataUpdate,
    GroupPermissionsView,
47
    LeaseAclUpdateView,
48
    toggle_template_tutorial,
49
    ClientCheck, TokenLogin,
50
    VmGraphView, NodeGraphView, NodeListGraphView,
51 52
    TransferInstanceOwnershipView, TransferInstanceOwnershipConfirmView,
    TransferTemplateOwnershipView, TransferTemplateOwnershipConfirmView,
53
    OpenSearchDescriptionView,
54
    NodeActivityView,
55
    UserList,
56
    StorageDetail, DiskDetail,
57
    MessageList, MessageDetail, MessageCreate, MessageDelete,
58
)
59 60
from .views.vm import vm_ops, vm_mass_ops
from .views.node import node_ops
61

62 63
autocomplete_light.autodiscover()

Kálmán Viktor committed
64 65
urlpatterns = patterns(
    '',
Kálmán Viktor committed
66
    url(r'^$', IndexView.as_view(), name="dashboard.index"),
67 68
    url(r"^profile/list/$", UserList.as_view(),
        name="dashboard.views.user-list"),
69 70 71
    url(r'^profile/create/$',
        UserCreationView.as_view(),
        name="dashboard.views.user-create"),
72 73
    url(r'^lease/(?P<pk>\d+)/$', LeaseDetail.as_view(),
        name="dashboard.views.lease-detail"),
74 75
    url(r'^lease/create/$', LeaseCreate.as_view(),
        name="dashboard.views.lease-create"),
76 77
    url(r'^lease/delete/(?P<pk>\d+)/$', LeaseDelete.as_view(),
        name="dashboard.views.lease-delete"),
78 79
    url(r'^lease/(?P<pk>\d+)/acl/$', LeaseAclUpdateView.as_view(),
        name="dashboard.views.lease-acl"),
80

81 82
    url(r'^template/create/$', TemplateCreate.as_view(),
        name="dashboard.views.template-create"),
83 84
    url(r'^template/choose/$', TemplateChoose.as_view(),
        name="dashboard.views.template-choose"),
85 86
    url(r'template/(?P<pk>\d+)/acl/$', TemplateAclUpdateView.as_view(),
        name='dashboard.views.template-acl'),
87 88
    url(r'^template/(?P<pk>\d+)/$', TemplateDetail.as_view(),
        name='dashboard.views.template-detail'),
89 90
    url(r"^template/list/$", TemplateList.as_view(),
        name="dashboard.views.template-list"),
91 92
    url(r"^template/delete/(?P<pk>\d+)/$", TemplateDelete.as_view(),
        name="dashboard.views.template-delete"),
93 94
    url(r'^template/(?P<pk>\d+)/tx/$', TransferTemplateOwnershipView.as_view(),
        name='dashboard.views.template-transfer-ownership'),
Kálmán Viktor committed
95 96
    url(r'^vm/(?P<pk>\d+)/$', VmDetailView.as_view(),
        name='dashboard.views.detail'),
97 98
    url(r'^vm/(?P<pk>\d+)/vnctoken/$', VmDetailVncTokenView.as_view(),
        name='dashboard.views.detail-vnc'),
99 100
    url(r'^vm/(?P<pk>\d+)/acl/$', AclUpdateView.as_view(model=Instance),
        name='dashboard.views.vm-acl'),
101
    url(r'^vm/(?P<pk>\d+)/tx/$', TransferInstanceOwnershipView.as_view(),
102
        name='dashboard.views.vm-transfer-ownership'),
Kálmán Viktor committed
103
    url(r'^vm/list/$', VmList.as_view(), name='dashboard.views.vm-list'),
104 105
    url(r'^vm/create/$', VmCreate.as_view(),
        name='dashboard.views.vm-create'),
106 107
    url(r'^vm/(?P<pk>\d+)/activity/$', vm_activity,
        name='dashboard.views.vm-activity-list'),
108 109
    url(r'^vm/activity/(?P<pk>\d+)/$', InstanceActivityDetail.as_view(),
        name='dashboard.views.vm-activity'),
110 111
    url(r'^vm/(?P<pk>\d+)/screenshot/$', get_vm_screenshot,
        name='dashboard.views.vm-get-screenshot'),
112 113 114 115
    url(r'^vm/(?P<pk>\d+)/traits/$', VmTraitsUpdate.as_view(),
        name='dashboard.views.vm-traits'),
    url(r'^vm/(?P<pk>\d+)/raw_data/$', VmRawDataUpdate.as_view(),
        name='dashboard.views.vm-raw-data'),
116 117
    url(r'^vm/(?P<pk>\d+)/toggle_tutorial/$', toggle_template_tutorial,
        name='dashboard.views.vm-toggle-tutorial'),
118

119 120 121
    url(r'^node/list/$', NodeList.as_view(), name='dashboard.views.node-list'),
    url(r'^node/(?P<pk>\d+)/$', NodeDetailView.as_view(),
        name='dashboard.views.node-detail'),
122 123
    url(r'^node/(?P<pk>\d+)/add-trait/$', NodeAddTraitView.as_view(),
        name='dashboard.views.node-addtrait'),
124 125
    url(r'^vm/tx/(?P<key>.*)/?$',
        TransferInstanceOwnershipConfirmView.as_view(),
126
        name='dashboard.views.vm-transfer-ownership-confirm'),
127 128 129
    url(r'^template/tx/(?P<key>.*)/?$',
        TransferTemplateOwnershipConfirmView.as_view(),
        name='dashboard.views.template-transfer-ownership-confirm'),
130 131
    url(r'^node/delete/(?P<pk>\d+)/$', NodeDelete.as_view(),
        name="dashboard.views.delete-node"),
132 133
    url(r'^node/(?P<pk>\d+)/activity/$', NodeActivityView.as_view(),
        name='dashboard.views.node-activity-list'),
134 135
    url(r'^node/create/$', NodeCreate.as_view(),
        name='dashboard.views.node-create'),
136

137 138
    url(r'^favourite/$', FavouriteView.as_view(),
        name='dashboard.views.favourite'),
139 140
    url(r'^group/delete/(?P<pk>\d+)/$', GroupDelete.as_view(),
        name="dashboard.views.delete-group"),
141 142
    url(r'^group/list/$', GroupList.as_view(),
        name='dashboard.views.group-list'),
143
    url((r'^vm/(?P<pk>\d+)/graph/(?P<metric>[a-z]+)/'
144
         r'(?P<time>[0-9]{1,2}[hdwy])$'),
145 146
        VmGraphView.as_view(),
        name='dashboard.views.vm-graph'),
147
    url((r'^node/(?P<pk>\d+)/graph/(?P<metric>[a-z]+)/'
148 149 150
         r'(?P<time>[0-9]{1,2}[hdwy])$'),
        NodeGraphView.as_view(),
        name='dashboard.views.node-graph'),
151 152 153 154
    url((r'^node/graph/(?P<metric>[a-z]+)/'
         r'(?P<time>[0-9]{1,2}[hdwy])$'),
        NodeListGraphView.as_view(),
        name='dashboard.views.node-list-graph'),
155 156
    url(r'^group/(?P<pk>\d+)/$', GroupDetailView.as_view(),
        name='dashboard.views.group-detail'),
157 158
    url(r'^group/(?P<pk>\d+)/update/$', GroupProfileUpdate.as_view(),
        name='dashboard.views.group-update'),
159 160
    url(r'^group/(?P<pk>\d+)/acl/$', GroupAclUpdateView.as_view(),
        name='dashboard.views.group-acl'),
161 162
    url(r'^notifications/$', NotificationView.as_view(),
        name="dashboard.views.notifications"),
163

164 165
    url(r'^disk/(?P<pk>\d+)/remove/$', DiskRemoveView.as_view(),
        name="dashboard.views.disk-remove"),
166 167 168
    url(r'^disk/(?P<pk>\d+)/status/$', get_disk_download_status,
        name="dashboard.views.disk-status"),

169
    url(r'^profile/$', MyPreferencesView.as_view(),
170
        name="dashboard.views.profile-preferences"),
171 172
    url(r'^subscribe/(?P<token>.*)/$', UnsubscribeFormView.as_view(),
        name="dashboard.views.unsubscribe"),
173
    url(r'^profile/(?P<username>[^/]+)/$', ProfileView.as_view(),
174
        name="dashboard.views.profile"),
175
    url(r'^profile/(?P<username>[^/]+)/use_gravatar/$', toggle_use_gravatar),
176

177
    url(r'^group/(?P<group_pk>\d+)/remove/user/(?P<member_pk>\d+)/$',
178 179
        GroupRemoveUserView.as_view(),
        name="dashboard.views.remove-user"),
180 181 182
    url(r'^group/(?P<group_pk>\d+)/remove/futureuser/(?P<member_org_id>.+)/$',
        GroupRemoveFutureUserView.as_view(),
        name="dashboard.views.remove-future-user"),
183 184
    url(r'^group/create/$', GroupCreate.as_view(),
        name='dashboard.views.group-create'),
185 186 187
    url(r'^group/(?P<group_pk>\d+)/permissions/$',
        GroupPermissionsView.as_view(),
        name="dashboard.views.group-permissions"),
188 189 190 191 192 193 194 195 196 197

    url(r'^sshkey/delete/(?P<pk>\d+)/$',
        UserKeyDelete.as_view(),
        name="dashboard.views.userkey-delete"),
    url(r'^sshkey/(?P<pk>\d+)/$',
        UserKeyDetail.as_view(),
        name="dashboard.views.userkey-detail"),
    url(r'^sshkey/create/$',
        UserKeyCreate.as_view(),
        name="dashboard.views.userkey-create"),
Kálmán Viktor committed
198

199 200
    url(r'^conncmd/delete/(?P<pk>\d+)/$',
        ConnectCommandDelete.as_view(),
201
        name="dashboard.views.connect-command-delete"),
202 203
    url(r'^conncmd/(?P<pk>\d+)/$',
        ConnectCommandDetail.as_view(),
204
        name="dashboard.views.connect-command-detail"),
205 206
    url(r'^conncmd/create/$',
        ConnectCommandCreate.as_view(),
207
        name="dashboard.views.connect-command-create"),
208

209
    url(r'^autocomplete/', include('autocomplete_light.urls')),
210

Kálmán Viktor committed
211
    url(r"^store/list/$", StoreList.as_view(),
212 213 214
        name="dashboard.views.store-list"),
    url(r"^store/download/$", store_download,
        name="dashboard.views.store-download"),
215 216
    url(r"^store/upload/url$", store_get_upload_url,
        name="dashboard.views.store-upload-url"),
217 218
    url(r"^store/upload/$", store_upload,
        name="dashboard.views.store-upload"),
219 220
    url(r"^store/remove/$", StoreRemove.as_view(),
        name="dashboard.views.store-remove"),
221 222
    url(r"^store/new_directory/$", store_new_directory,
        name="dashboard.views.store-new-directory"),
Kálmán Viktor committed
223 224
    url(r"^store/refresh_toplist$", store_refresh_toplist,
        name="dashboard.views.store-refresh-toplist"),
225 226
    url(r"^client/check$", ClientCheck.as_view(),
        name="dashboard.views.client-check"),
227 228
    url(r'^token-login/(?P<token>.*)/$', TokenLogin.as_view(),
        name="dashboard.views.token-login"),
229 230
    url(r'^vm/opensearch.xml$', OpenSearchDescriptionView.as_view(),
        name="dashboard.views.vm-opensearch"),
231

232 233
    url(r'^storage/$', StorageDetail.as_view(),
        name="dashboard.views.storage"),
234 235
    url(r'^disk/(?P<pk>\d+)/$', DiskDetail.as_view(),
        name="dashboard.views.disk-detail"),
236 237 238 239 240 241 242 243 244

    url(r'^message/list/$', MessageList.as_view(),
        name="dashboard.views.message-list"),
    url(r'^message/(?P<pk>\d+)/$', MessageDetail.as_view(),
        name="dashboard.views.message-detail"),
    url(r'^message/create/$', MessageCreate.as_view(),
        name="dashboard.views.message-create"),
    url(r'^message/delete/(?P<pk>\d+)/$', MessageDelete.as_view(),
        name="dashboard.views.message-delete"),
Kálmán Viktor committed
245
)
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263

urlpatterns += patterns(
    '',
    *(url(r'^vm/(?P<pk>\d+)/op/%s/$' % op, v.as_view(), name=v.get_urlname())
        for op, v in vm_ops.iteritems())
)

urlpatterns += patterns(
    '',
    *(url(r'^vm/mass_op/%s/$' % op, v.as_view(), name=v.get_urlname())
        for op, v in vm_mass_ops.iteritems())
)

urlpatterns += patterns(
    '',
    *(url(r'^node/(?P<pk>\d+)/op/%s/$' % op, v.as_view(), name=v.get_urlname())
        for op, v in node_ops.iteritems())
)