Revision 820ef2f0 ui/static/snf/js/models.js
b/ui/static/snf/js/models.js | ||
---|---|---|
128 | 128 |
path: 'images', |
129 | 129 |
|
130 | 130 |
get_size: function() { |
131 |
return this.get('metadata') ? this.get('metadata').values.size : undefined; |
|
131 |
return parseInt(this.get('metadata') ? this.get('metadata').values.size : -1) |
|
132 |
}, |
|
133 |
|
|
134 |
get_os: function() { |
|
135 |
return this.get("OS"); |
|
132 | 136 |
} |
133 | 137 |
}); |
134 | 138 |
|
... | ... | |
138 | 142 |
|
139 | 143 |
details_string: function() { |
140 | 144 |
return "{0} CPU, {1}MB, {2}GB".format(this.get('cpu'), this.get('ram'), this.get('disk')); |
141 |
} |
|
145 |
}, |
|
146 |
|
|
147 |
get_disk_size: function() { |
|
148 |
return parseInt(this.get("disk") * 1000) |
|
149 |
}, |
|
150 |
|
|
142 | 151 |
}); |
143 | 152 |
|
144 | 153 |
//network vms list helper |
... | ... | |
1039 | 1048 |
|
1040 | 1049 |
parse: function (resp, xhr) { |
1041 | 1050 |
// FIXME: depricated global var |
1042 |
window.networks = resp.networks ? resp.networks.values : {}; |
|
1043 |
if (window.update_networks_view) { |
|
1044 |
update_networks_view(undefined, resp); |
|
1045 |
} |
|
1046 |
|
|
1047 | 1051 |
if (!resp) { return []}; |
1048 | 1052 |
|
1049 | 1053 |
var data = _.map(resp.networks.values, _.bind(this.parse_net_api_data, this)); |
... | ... | |
1085 | 1089 |
|
1086 | 1090 |
parse: function (resp, xhr) { |
1087 | 1091 |
// FIXME: depricated global var |
1088 |
window.images = resp.images.values; |
|
1089 | 1092 |
var data = _.map(resp.images.values, _.bind(this.parse_meta, this)); |
1090 | 1093 |
return resp.images.values; |
1091 | 1094 |
}, |
... | ... | |
1131 | 1134 |
|
1132 | 1135 |
parse: function (resp, xhr) { |
1133 | 1136 |
// FIXME: depricated global var |
1134 |
window.flavors = resp.flavors.values; |
|
1135 | 1137 |
return resp.flavors.values; |
1136 | 1138 |
}, |
1137 | 1139 |
|
1138 |
for_image: function(img) { |
|
1139 |
var size = parseInt(img.get("size")); |
|
1140 |
return _.select(this.active(), function(el) { |
|
1141 |
return parseInt(parseInt(el.get("disk")) * 1000) >= size; |
|
1142 |
}) |
|
1140 |
unavailable_values_for_image: function(img, flavors) { |
|
1141 |
var flavors = flavors || this.active(); |
|
1142 |
var size = img.get_size(); |
|
1143 |
|
|
1144 |
var index = {cpu:[], disk:[], ram:[]}; |
|
1145 |
|
|
1146 |
_.each(this.active(), function(el) { |
|
1147 |
var img_size = size; |
|
1148 |
var flv_size = el.get_disk_size(); |
|
1149 |
if (flv_size < img_size) { |
|
1150 |
if (index.disk.indexOf(flv_size) == -1) { |
|
1151 |
index.disk.push(flv_size); |
|
1152 |
} |
|
1153 |
}; |
|
1154 |
}); |
|
1155 |
|
|
1156 |
return index; |
|
1143 | 1157 |
}, |
1144 |
|
|
1158 |
|
|
1145 | 1159 |
get_flavor: function(cpu, mem, disk, filter_list) { |
1146 | 1160 |
if (!filter_list) { filter_list = this.models }; |
1147 | 1161 |
return this.select(function(flv){ |
1148 | 1162 |
if (flv.get("cpu") == cpu + "" && |
1149 | 1163 |
flv.get("ram") == mem + "" && |
1150 | 1164 |
flv.get("disk") == disk + "" && |
1151 |
filter_list.indexOf(flv) > -1) |
|
1152 |
{ |
|
1153 |
return true; |
|
1154 |
} |
|
1165 |
filter_list.indexOf(flv) > -1) { return true; } |
|
1155 | 1166 |
})[0] |
1156 | 1167 |
}, |
1157 |
|
|
1168 |
|
|
1158 | 1169 |
get_data: function(lst) { |
1159 | 1170 |
var data = {'cpu': [], 'mem':[], 'disk':[]}; |
1171 |
|
|
1160 | 1172 |
_.each(lst, function(flv) { |
1161 |
if (data.cpu.indexOf(flv.cpu) == -1) {
|
|
1162 |
data.cpu[data.cpu.length] = flv.cpu;
|
|
1173 |
if (data.cpu.indexOf(flv.get("cpu")) == -1) {
|
|
1174 |
data.cpu.push(flv.get("cpu"));
|
|
1163 | 1175 |
} |
1164 |
if (data.cpu.indexOf(flv.mem) == -1) {
|
|
1165 |
data.mem[data.mem.length] = flv.mem;
|
|
1176 |
if (data.mem.indexOf(flv.get("ram")) == -1) {
|
|
1177 |
data.mem.push(flv.get("ram"));
|
|
1166 | 1178 |
} |
1167 |
if (data.disk.indexOf(flv.disk) == -1) {
|
|
1168 |
data.disk[data.disk.length] = flv.disk;
|
|
1179 |
if (data.disk.indexOf(flv.get("disk")) == -1) {
|
|
1180 |
data.disk.push(flv.get("disk"));
|
|
1169 | 1181 |
} |
1170 | 1182 |
}) |
1171 |
|
|
1183 |
|
|
1172 | 1184 |
return data; |
1173 | 1185 |
}, |
1174 | 1186 |
|
... | ... | |
1187 | 1199 |
parse: function (resp, xhr) { |
1188 | 1200 |
// FIXME: depricated after refactoring |
1189 | 1201 |
var data = resp; |
1190 |
if (data && data.servers && data.servers.values.length > 0) { |
|
1191 |
if (window.update_servers_data) { |
|
1192 |
update_servers_data(data.servers.values, data) |
|
1193 |
} |
|
1194 |
if (window.update_machines_view) { |
|
1195 |
update_machines_view(data); |
|
1196 |
//update_network_names(data); |
|
1197 |
} |
|
1198 |
} |
|
1199 | 1202 |
if (!resp) { return [] }; |
1200 |
data = _.map(resp.servers.values, _.bind(this.parse_vm_api_data, this));
|
|
1203 |
data = _.filter(_.map(resp.servers.values, _.bind(this.parse_vm_api_data, this)), function(v){return v});
|
|
1201 | 1204 |
return data; |
1202 | 1205 |
}, |
1203 | 1206 |
|
... | ... | |
1224 | 1227 |
}, |
1225 | 1228 |
|
1226 | 1229 |
parse_vm_api_data: function(data) { |
1230 |
|
|
1231 |
// do not add non existing DELETED entries |
|
1232 |
if (data.status && data.status == "DELETED") { |
|
1233 |
if (!this.get(data.id)) { |
|
1234 |
console.error("non exising deleted vm", data) |
|
1235 |
return false; |
|
1236 |
} |
|
1237 |
} |
|
1238 |
|
|
1227 | 1239 |
// OS attribute |
1228 | 1240 |
if (this.has_meta(data)) { |
1229 | 1241 |
data['OS'] = data.metadata.values.OS || "undefined"; |
Also available in: Unified diff