28 from django.conf.urls
import patterns, url, include
29 from django.utils.translation
import ungettext, ugettext_lazy
as _
31 from wi.forms.vm
import ChangeVMPasswordForm, EditVMForm, SetSshKeyForm, \
32 AssignChosenIPForm, CreateVMForm1, CreateVMForm2, CreateVMForm3, CreateVMForm4, \
34 from wi.utils.decorators
import user_permission
35 from wi.utils.views
import direct_to_template, simple_generic_id, \
36 form_generic_id, generic_multiple_id, generic_multiple_id_form
37 from wi.views.user.vm
import CreateVMWizard
40 vm_patterns = patterns(
'wi.views.user.vm',
41 url(
r'^$',
user_permission(direct_to_template), {
'template_name':
'vms/base.html'}, name=
'vms_vms'),
43 url(
r'^create_vm/$', CreateVMWizard.as_view([CreateVMForm1, CreateVMForm2, CreateVMForm3, CreateVMForm4]), name=
'vms_create_vm'),
44 url(
r'^show_vm/$',
user_permission(direct_to_template), {
'template_name':
'vms/show_vm.html'}, name=
'vms_show_vm'),
46 url(
r'^vnc/(?P<vm_id>\d+)/$',
'vms_vnc', name=
'vms_vnc'),
48 url(
r'^ajax/vm_details/(?P<vm_id>\d+)/$',
'vms_ajax_vm_details', name=
'vms_ajax_vm_details'),
49 url(
r'^ajax/get_table/$',
'vms_ajax_get_table', name=
'vms_ajax_get_table'),
52 {
'template_name':
'generic/form.html',
53 'success_msg': (
lambda desc, count: ungettext(
'SSH key has been copied successfully to <b>%(desc)s</b>.',
'SSH key has been copied successfully to %(count)d virtual machines (<b>%(desc)s</b>).', count) % {
'desc': desc,
'count': count}),
54 'ask_msg': (
lambda desc, count: ungettext(
'Enter a public key to set for machine <b>%(desc)s</b>.',
'Enter a public key to set for %(count)d machines <b>%(desc)s</b>.', count) % {
'desc': desc,
'count': count}),
55 'confirmation': _(
'Set key'),
56 'request_url':
'user/ctx/add_ssh_key/',
57 'form_class': SetSshKeyForm,
58 'request_url_both': {
'keys':
'user/key/get_list/'},
61 name=
'vms_ajax_ssh_key'),
62 url(
r'^ajax/reset_password/(?P<id1>\d+)/$',
user_permission(form_generic_id),
63 {
'template_name':
'generic/form.html',
64 'success_msg': (
lambda desc, data: _(
'Password has been set to: (<b>%(password)s</b>) on machine: <b>%(desc)s</b>.') % {
'password': data[
'password'],
'desc': desc}),
65 'ask_msg': (
lambda desc: _(
'Reset machine <b>%(desc)s</b> password for selected user.') % {
'desc': desc}),
66 'confirmation': _(
'Reset password'),
67 'request_url_post':
'user/ctx/reset_password/',
68 'form_class': ChangeVMPasswordForm,
69 'ajax_success_status': 7999,
72 name=
'vms_ajax_reset_password'),
74 {
'template_name':
'generic/simple.html',
75 'success_msg': (
lambda desc, count: ungettext(
'You have successfully destroyed virtual machine <b>%(desc)s</b>.',
'You have successfully destroyed %(count)d virtual machines (<b>%(desc)s</b>).', count) % {
'desc': desc,
'count': count}),
76 'ask_msg': (
lambda desc, count: ungettext(
'Do you want to destroy virtual machine <b>%(desc)s</b>?<br /><b>Note!</b> If you would like to use this machine later make sure to use the <b>Save and shutdown</b> option instead!<br /> We recommend to manually unmount any attached storage disks.',
77 'Do you want to destroy %(count)d virtual machines <b>%(desc)s</b>?<br /><b>Note!</b> If you would like to use this machine later make sure to use the <b>Save and shutdown</b> option instead!<br /> We recommend to manually unmount any attached storage disks.', count) % {
'desc': desc,
'count': count}),
78 'request_url':
'user/vm/destroy/',
81 name=
'vms_ajax_destroy'),
83 {
'template_name':
'generic/simple.html',
84 'success_msg': (
lambda desc, count: ungettext(
'You have successfully rebooted virtual machine <b>%(desc)s</b>.',
'You have successfully rebooted %(count)d virtual machines (<b>%(desc)s</b>).', count) % {
'desc': desc,
'count': count}),
85 'ask_msg': (
lambda desc, count: ungettext(
'Do you want to reset virtual machine <b>%(desc)s</b>?.<br /><b>Note!</b> Any unsaved data will be lost!',
'Do you want to reset %(count)d virtual machines <b>%(desc)s</b>?.<br /><b>Note!</b> Any unsaved data will be lost!', count) % {
'desc': desc,
'count': count}),
86 'request_url':
'user/vm/reset/',
89 name=
'vms_ajax_restart'),
91 url(
r'^ajax/assign_chosen_ip/(?P<id1>\d+)/$',
user_permission(form_generic_id),
92 {
'template_name':
'vms/ajax/assign_ip.html',
93 'success_msg': (
lambda desc, data: _(
'You have successfully assigned selected IP address.') % {
'desc': desc}),
94 'ask_msg': (
lambda desc: _(
'Select an IP address to assign:') % {
'desc': desc}),
95 'confirmation': _(
'Assign selected IP'),
96 'request_url_post':
'user/public_ip/assign/',
97 'form_class': AssignChosenIPForm,
98 'request_url_both': {
'ips':
'user/public_ip/get_list/'},
101 name=
'vms_ajax_assign_chosen_ip'),
103 url(
r'^ajax/assign_ip/(?P<vm_id>\d+)/$',
'vms_ajax_assign_ip', name=
'vms_ajax_assign_ip'),
105 url(
r'^ajax/revoke_chosen_ip/(?P<id1>\d+)/$',
user_permission(simple_generic_id),
106 {
'template_name':
'generic/simple.html',
107 'success_msg': (
lambda desc: _(
'You have successfully revoked IP address.') % {
'desc': desc}),
108 'ask_msg': (
lambda desc: _(
'Do you want to revoke IP address?') % {
'desc': desc}),
109 'request_url':
'user/public_ip/unassign/',
112 name=
'vms_ajax_revoke_chosen_ip'),
114 url(
r'^ajax/revoke_ip/(?P<vm_id>\d+)/$',
'vms_ajax_revoke_ip', name=
'vms_ajax_revoke_ip'),
115 url(
r'^ajax/assign_disk/(?P<vm_id>\d+)/$',
'vms_ajax_assign_disk', name=
'vms_ajax_assign_disk'),
116 url(
r'^ajax/revoke_disk/(?P<vm_id>\d+)/$',
'vms_ajax_revoke_disk', name=
'vms_ajax_revoke_disk'),
119 {
'template_name':
'generic/form.html',
120 'success_msg': (
lambda desc, data: _(
'You have successfully edited virtual machine data.') % {
'desc': desc}),
121 'confirmation': _(
'Save'),
122 'request_url_post':
'user/vm/edit/',
123 'request_url_get':
'user/vm/get_by_id/',
124 'form_class': EditVMForm,
126 name=
'vms_ajax_edit_vm'),
128 url(
r'^ajax/save_and_shutdown/(?P<id1>\d+)/$',
user_permission(form_generic_id),
129 {
'template_name':
'generic/form.html',
130 'success_msg': (
lambda desc, data: _(
'Virtual machine will be saved.') % {
'desc': desc}),
131 'ask_msg': (
lambda desc: _(
'Enter a name to save virtual machine <b>%(desc)s</b>:') % {
'desc': desc}),
132 'confirmation': _(
'Save and shutdown'),
133 'request_url_post':
'user/vm/save_and_shutdown/',
134 'request_url_get':
'user/vm/get_by_id/',
135 'form_class': EditVMForm,
137 name=
'vms_ajax_save_and_shutdown'),
139 url(
r'^ajax/set_vnc/(?P<id1>\d+)/$',
user_permission(simple_generic_id),
140 {
'template_name':
'generic/simple.html',
141 'success_msg': (
lambda desc: _(
'You have successfully enabled VNC.') % {
'desc': desc}),
142 'ask_msg': (
lambda desc: _(
'Do you want to enable VNC?') % {
'desc': desc}),
143 'request_url':
'user/vm/attach_vnc/',
146 name=
'vms_ajax_set_vnc'),
147 url(
r'^ajax/unset_vnc/(?P<id1>\d+)/$',
user_permission(simple_generic_id),
148 {
'template_name':
'generic/simple.html',
149 'success_msg': (
lambda desc: _(
'You have successfully disabled VNC.') % {
'desc': desc}),
150 'ask_msg': (
lambda desc: _(
'Do you want to disable VNC?') % {
'desc': desc}),
151 'request_url':
'user/vm/detach_vnc/',
154 name=
'vms_ajax_unset_vnc'),
156 url(
r'^ajax/get_template_list/$',
'vms_ajax_get_template_list', name=
'vms_ajax_get_template_list'),
158 url(
r'^ajax/monitoring/(?P<id1>\d+)/$',
user_permission(form_generic_id),
159 {
'template_name':
'vms/ajax/monitoring.html',
160 'form_class': MonitoringVMForm,
161 'success_msg': (
lambda desc, data: data),
162 'request_url_post':
'user/monia/vm_stats/',
165 name=
'vms_ajax_vm_monitoring'),
169 urlpatterns = patterns(
'',
170 url(
r'^vm/', include(vm_patterns)),