25 from colorsys
import hsv_to_rgb
27 from django.contrib
import messages
28 from django.shortcuts
import render_to_response
29 from django.template
import RequestContext
30 from django.template.loader
import render_to_string
32 from common.states
import vm_states, farm_states
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.exceptions
import RestErrorException
37 from wi.utils.formatters
import time_from_sec
38 from wi.utils.messages_ajax
import ajax_request
39 from wi.utils.states
import farm_states_reversed, vm_states_reversed
40 from wi.utils.views
import prep_data
49 def cma_farms(request, template_name='admin_cm/show_farms.html'):
53 all_users =
prep_data((
'admin_cm/user/get_list/', {
'short':
True}), request.session)
54 except RestErrorException
as ex:
55 messages.error(request, ex.value)
57 return render_to_response(template_name, {
'all_users': all_users}, context_instance=RequestContext(request))
68 if request.method ==
'GET':
69 farms =
prep_data((
'admin_cm/farm/get_list/', {
'user_id': int(user_id)}), request.session)
72 farm[
'stateName'] = unicode(farm_states_reversed[farm[
'state']])
74 for vm
in farm[
'vms']:
76 for i
in vm[
'leases']:
77 if i[
'public_ip'] !=
"":
78 vm[
'pub_ip'].append(i[
'public_ip'][
'address'])
81 for i
in vm[
'leases']:
82 vm[
'priv_ip'].append(i[
'address'])
84 farm[
'stringIP'] =
', '.join(farm[
'vms'][0][
'priv_ip'])
85 farm[
'stringPubIP'] =
', '.join(farm[
'vms'][0][
'pub_ip'])
86 farm[
'stringDisk'] =
', '.join([disk[
'name']
for disk
in farm[
'vms'][0][
'storage_images']])
87 farm[
'stringISO'] =
', '.join([iso[
'name']
for iso
in farm[
'vms'][0][
'iso_images']])
89 return messages_ajax.success(farms)
100 if request.method ==
'POST':
103 farm =
prep_data((
'admin_cm/farm/get_by_id/', {
'farm_id': id1}), request.session)
104 owner =
prep_data((
'admin_cm/user/get_by_id/', {
'user_id': farm[
'user_id']}), request.session)
107 farm[
'status'] = farm[
'state']
109 for vm
in farm[
'vms']:
110 vm[
'stateName'] = unicode(vm_states_reversed[vm[
'state']])
112 for i
in vm[
'leases']:
113 if i[
'public_ip'] !=
"":
114 vm[
'pub_ip'].append(i[
'public_ip'][
'address'])
117 for i
in vm[
'leases']:
118 vm[
'priv_ip'].append(i[
'address'])
120 vm[
'cpuLoadPercent'] = int(min(float(vm[
'cpu_load'].
get(
'60')
or 0) * 100, 100))
121 vm[
'cpuLoadColor'] =
"#%02x%02x%02x" % tuple(i * 255
for i
in hsv_to_rgb(float(vm[
'cpuLoadPercent']) / 300, 1.0, 0.8))
123 return messages_ajax.success(
124 render_to_string(template_name,
127 'farm_states_reverse': farm_states_reversed,
128 'farm_states': farm_states,
129 'vm_states': vm_states,
131 context_instance=RequestContext(request)))