cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
node.py
Go to the documentation of this file.
1 # -*- coding: utf-8 -*-
2 # @COPYRIGHT_begin
3 #
4 # Copyright [2010-2014] Institute of Nuclear Physics PAN, Krakow, Poland
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain 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,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # @COPYRIGHT_end
19 
20 ##
21 # @package src.wi.urls.admin_cm.node
22 #
23 # @author Krzysztof Danielowski, Piotr Wojcik
24 # @date 17.03.2011
25 #
26 
27 from django.conf.urls import url, patterns, include
28 from django.utils.translation import ungettext, ugettext_lazy as _
29 
30 from common.states import image_access
31 from wi.forms.node import NodeForm, EditNodeForm
32 from wi.forms.vm import CreateVMOnNodeForm
33 from wi.utils.decorators import admin_cm_permission
34 from wi.utils.views import generic_multiple_id, form_generic_id, \
35  direct_to_template, simple_generic_id, form_generic
36 
37 
38 node_patterns = patterns('wi.views.admin_cm.node',
39  url(r'^nodes/$', admin_cm_permission(direct_to_template), {'template_name': 'admin_cm/nodes.html'}, name='cma_nodes'),
40  url(r'^ajax/get_table_nodes/$', 'cma_ajax_get_table_nodes', name='cma_ajax_get_table_nodes'),
41  url(r'^ajax/node_details/(?P<node_id>\d+)/$', 'cma_ajax_node_details', name='cma_ajax_node_details'),
42  url(r'^ajax/delete_node/(?P<id1>\d+)/$', admin_cm_permission(simple_generic_id),
43  {'template_name': 'generic/simple.html',
44  'success_msg': (lambda desc: _('You have successfully deleted node <b>%(desc)s</b>.') % {'desc': desc}),
45  'ask_msg': (lambda desc: _('Do you want to delete node <b>%(desc)s</b>?') % {'desc': desc}),
46  'request_url': 'admin_cm/node/delete/',
47  'id_key': 'node_id', },
48  name='cma_ajax_delete_node'),
49 
50  url(r'^ajax/cm/lock_node/$', admin_cm_permission(generic_multiple_id),
51  {'template_name': 'generic/simple.html',
52  'success_msg': (lambda desc, count: ungettext('You have successfully locked node <b>%(desc)s</b>.', 'You have successfully locked %(count)d nodes (<b>%(desc)s</b>).', count) % {'desc': desc, 'count': count}),
53  'ask_msg': (lambda desc, count: ungettext('Do you want to lock node <b>%(desc)s</b>?', 'Do you want to lock %(count)d nodes <b>%(desc)s</b>?', count) % {'desc': desc, 'count': count}),
54  'request_url': 'admin_cm/node/lock/',
55  'id_key': 'node_id_list'
56  },
57  name='cma_ajax_lock_node'),
58 
59  url(r'^ajax/cm/check_node/$', admin_cm_permission(generic_multiple_id),
60  {'template_name': 'generic/simple.html',
61  'success_msg': (lambda desc, count: ungettext('Node <b>%(desc)s</b> queued for validation.', '%(count)d nodes (<b>%(desc)s</b>) queued for validation.', count) % {'desc': desc, 'count': count}),
62  'ask_msg': (lambda desc, count: ungettext('Do you want to validate node <b>%(desc)s</b>?', 'Do you want to validate %(count)d nodes <b>%(desc)s</b>?', count) % {'desc': desc, 'count': count}),
63  'request_url': 'admin_cm/node/check/',
64  'id_key': 'node_id_list'
65  },
66  name='cma_ajax_check_node'),
67 
68  url(r'^ajax/hardlock_node/(?P<id1>\d+)/$', admin_cm_permission(simple_generic_id),
69  {'template_name': 'generic/simple.html',
70  'success_msg': (lambda desc: _('You have successfully hardlocked node <b>%(desc)s</b>.') % {'desc': desc}),
71  'ask_msg': (lambda desc: _('Do you want to hardlock node <b>%(desc)s</b>?') % {'desc': desc}),
72  'request_url': 'admin_cm/node/hardlock/',
73  'id_key': 'node_id', },
74  name='cma_ajax_hardlock_node'),
75 
76  url(r'^ajax/cm/unlock_node/$', admin_cm_permission(generic_multiple_id),
77  {'template_name': 'generic/simple.html',
78  'success_msg': (lambda desc, count: ungettext('You have successfully unlocked node <b>%(desc)s</b>.', 'You have successfully unlocked %(count)d nodes (<b>%(desc)s</b>).', count) % {'desc': desc, 'count': count}),
79  'ask_msg': (lambda desc, count: ungettext('Do you want to unlock node <b>%(desc)s</b>?', 'Do you want to unlock %(count)d nodes <b>%(desc)s</b>?', count) % {'desc': desc, 'count': count}),
80  'request_url': 'admin_cm/node/unlock/',
81  'id_key': 'node_id_list'
82  },
83  name='cma_ajax_unlock_node'),
84 
85  url(r'^ajax/add_node/$', admin_cm_permission(form_generic),
86  {'template_name': 'generic/form.html',
87  'success_msg': (lambda desc, data: _('You have successfully created a node.') % {'desc': desc}),
88  'confirmation': _('Create'),
89  'request_url_post': 'admin_cm/node/add/',
90  'form_class': NodeForm},
91  name='cma_ajax_add_node'),
92  url(r'^ajax/edit_node/(?P<id1>\d+)/$', admin_cm_permission(form_generic_id),
93  {'template_name': 'generic/form.html',
94  'success_msg': (lambda desc, data: _('You have successfully edited selected node.') % {'desc': desc}),
95  'confirmation': _('Save'),
96  'request_url_post': 'admin_cm/node/edit/',
97  'request_url_get': 'admin_cm/node/get_by_id/',
98  'id_key': 'node_id',
99  'form_class': EditNodeForm},
100  name='cma_ajax_edit_node'),
101  url(r'^ajax/create_vm/(?P<id1>\d+)/$', admin_cm_permission(form_generic_id),
102  {'template_name': 'generic/form.html',
103  'success_msg': (lambda desc, data: _('You have successfully created a virtual machine on selected node (address: %(desc)s).') % {'desc': desc}),
104  'confirmation': _('Create'),
105  'request_url_post': 'admin_cm/vm/create/',
106  'id_key': 'node_id',
107  'form_class': CreateVMOnNodeForm,
108  'request_url_both': {'images_public': ('user/system_image/get_list/', {'access': image_access['public']}),
109  'images_private': ('user/system_image/get_list/', {'access': image_access['private']}),
110  'images_group': ('user/system_image/get_list/', {'access': image_access['group']}),
111  'templates': 'user/template/get_list/',
112  'ips': 'user/public_ip/get_list/',
113  'disks': 'user/storage_image/get_list/',
114  'iso': 'user/iso_image/get_list/',
115  }
116  },
117  name='cma_ajax_create_vm'),
118  url(r'^ajax/mount_storage/(?P<node_id>\d+)/$', 'cma_ajax_mount_storage', name='cma_ajax_mount_storage'),
119 
120 )
121 
122 urlpatterns = patterns('',
123  url(r'^admin_cm/', include(node_patterns)),
124 )
125