26 from django.template
import RequestContext
27 from django.template.loader
import render_to_string
28 from django.utils.translation
import ugettext
as _
29 from django.views.decorators.csrf
import csrf_protect
31 from wi.commontags.templatetags.templatetags
import filesizeformatmb
32 from wi.forms.node
import MountNodeForm
33 from wi.utils
import messages_ajax
34 from wi.utils.decorators
import admin_cm_permission
35 from wi.utils.decorators
import django_view
36 from wi.utils.messages_ajax
import ajax_request
37 from wi.utils.states
import storage_states_reversed
as storage_states
38 from wi.utils.views
import prep_data
49 if request.method ==
'GET':
50 storages =
prep_data(
'admin_cm/storage/get_list/', request.session)
53 item[
'stateName'] = unicode(storage_states[item[
'state']])
56 return messages_ajax.success(storages)
67 def cma_ajax_mount_node(request, storage_id, template_name='generic/form.html', form_class=MountNodeForm):
68 rest_data =
prep_data({
'nodes':
'admin_cm/node/get_list/'}, request.session)
70 if request.method ==
'POST':
71 form = form_class(data=request.POST, rest_data=rest_data)
73 rest_data2 =
prep_data({
'storages': (
'admin_cm/storage/mount/', [{
'storage_id': int(storage_id),
74 'node_id': int(form.cleaned_data[
'node_id'])}]),
77 storages = rest_data2[
'storages']
80 for key
in storages.keys():
81 for key2
in storages[key].keys():
82 if storages[key][key2] !=
'mounted':
85 return messages_ajax.success(_(
'You have successfully mounted storage(s) to selected node.'))
88 for key
in storages.keys():
89 for key2
in storages[key].keys():
90 if storages[key][key2] !=
'mounted':
91 resp.append({
'type':
'storage-node',
94 'status_text': storages[key][key2]
96 return messages_ajax.success(resp, 7999)
98 form = form_class(rest_data=rest_data)
99 return messages_ajax.success(render_to_string(template_name, {
'form': form,
100 'confirmation': _(
'Mount'),
102 context_instance=RequestContext(request)),