Revision 0dee4086

b/snf-cyclades-app/synnefo/ui/static/snf/js/glance_models.js
71 71

  
72 72
        // custom glance api parser
73 73
        parse: function (resp, xhr) {
74
            if (_.isArray(resp)) {
75
                resp = {'images': {'values': resp }};
76
            }
77 74
            return models.GlanceImages.__super__.parse.call(this, resp, xhr);
78 75
        },
79 76

  
80 77
        _read_image_from_request: function(image, msg, xhr) {
81 78
            var img = {};
82
            img['metadata'] = {values:{}};
79
            img['metadata'] = {};
83 80

  
84 81
            var headers = snf.util.parseHeaders(xhr.getAllResponseHeaders().toLowerCase());
85 82

  
......
91 88
                if (key.indexOf("x-image-meta-property") == -1) {
92 89
                    img[key.replace("x-image-meta-","").replace(/-/g,"_")] = _.trim(value);
93 90
                } else {
94
                    img.metadata.values[key.replace('x-image-meta-property-',"").replace(/-/g,"_")] = _.trim(value);
91
                    img.metadata[key.replace('x-image-meta-property-',"").replace(/-/g,"_")] = _.trim(value);
95 92
                }
96 93
            
97 94
            })
......
102 99
        parse_meta: function(img) {
103 100
            if (img.properties) {
104 101
                img.metadata = {};
105
                img.metadata.values = img.properties;
102
                img.metadata = img.properties;
106 103
            } else {
107 104
                if (!img.metadata) {
108
                    img.metadata = {values:{}};
105
                    img.metadata = {};
109 106
                }
110 107
            }
111 108

  
112 109
            // fixes plankton regression (returns lowercase meta keys)
113
            if (img.metadata.values.os && !img.metadata.values.OS) {
114
                img.metadata.values.OS = img.metadata.values.os;
110
            if (img.metadata.os && !img.metadata.OS) {
111
                img.metadata.OS = img.metadata.os;
115 112
            }
116 113

  
117 114
            img = models.GlanceImages.__super__.parse_meta.call(this, img);
b/snf-cyclades-app/synnefo/ui/static/snf/js/models.js
235 235
        path: 'images',
236 236
        
237 237
        get_size: function() {
238
            return parseInt(this.get('metadata') ? this.get('metadata').values.size : -1)
238
            return parseInt(this.get('metadata') ? this.get('metadata').size : -1)
239 239
        },
240 240

  
241 241
        get_description: function(escape) {
......
245 245
        },
246 246

  
247 247
        get_meta: function(key) {
248
            if (this.get('metadata') && this.get('metadata').values) {
249
                if (!this.get('metadata').values[key]) { return null }
250
                return _.escape(this.get('metadata').values[key]);
248
            if (this.get('metadata') && this.get('metadata')) {
249
                if (!this.get('metadata')[key]) { return null }
250
                return _.escape(this.get('metadata')[key]);
251 251
            } else {
252 252
                return null;
253 253
            }
254 254
        },
255 255

  
256 256
        get_meta_keys: function() {
257
            if (this.get('metadata') && this.get('metadata').values) {
258
                return _.keys(this.get('metadata').values);
257
            if (this.get('metadata') && this.get('metadata')) {
258
                return _.keys(this.get('metadata'));
259 259
            } else {
260 260
                return [];
261 261
            }
......
312 312
        },
313 313

  
314 314
        get_sort_order: function() {
315
            return parseInt(this.get('metadata') ? this.get('metadata').values.sortorder : -1)
315
            return parseInt(this.get('metadata') ? this.get('metadata').sortorder : -1)
316 316
        },
317 317

  
318 318
        get_vm: function() {
......
1230 1230
        // get image object
1231 1231
        get_image: function(callback) {
1232 1232
            if (callback == undefined) { callback = function(){} }
1233
            var image = storage.images.get(this.get('imageRef'));
1233
            var image = storage.images.get(this.get('image'));
1234 1234
            if (!image) {
1235
                storage.images.update_unknown_id(this.get('imageRef'), callback);
1235
                storage.images.update_unknown_id(this.get('image'), callback);
1236 1236
                return;
1237 1237
            }
1238 1238
            callback(image);
......
1241 1241
        
1242 1242
        // get flavor object
1243 1243
        get_flavor: function() {
1244
            var flv = storage.flavors.get(this.get('flavorRef'));
1244
            var flv = storage.flavors.get(this.get('flavor'));
1245 1245
            if (!flv) {
1246
                storage.flavors.update_unknown_id(this.get('flavorRef'));
1247
                flv = storage.flavors.get(this.get('flavorRef'));
1246
                storage.flavors.update_unknown_id(this.get('flavor'));
1247
                flv = storage.flavors.get(this.get('flavor'));
1248 1248
            }
1249 1249
            return flv;
1250 1250
        },
1251 1251

  
1252 1252
        get_meta: function(key, deflt) {
1253
            if (this.get('metadata') && this.get('metadata').values) {
1254
                if (!this.get('metadata').values[key]) { return deflt }
1255
                return _.escape(this.get('metadata').values[key]);
1253
            if (this.get('metadata') && this.get('metadata')) {
1254
                if (!this.get('metadata')[key]) { return deflt }
1255
                return _.escape(this.get('metadata')[key]);
1256 1256
            } else {
1257 1257
                return deflt;
1258 1258
            }
1259 1259
        },
1260 1260

  
1261 1261
        get_meta_keys: function() {
1262
            if (this.get('metadata') && this.get('metadata').values) {
1263
                return _.keys(this.get('metadata').values);
1262
            if (this.get('metadata') && this.get('metadata')) {
1263
                return _.keys(this.get('metadata'));
1264 1264
            } else {
1265 1265
                return [];
1266 1266
            }
......
1613 1613
        defaults: {'nics':[],'linked_to':[]},
1614 1614
        
1615 1615
        parse: function (resp, xhr) {
1616
          console.log(resp);
1616 1617
            // FIXME: depricated global var
1617 1618
            if (!resp) { return []};
1618
            var data = _.filter(_.map(resp.networks.values, _.bind(this.parse_net_api_data, this)),
1619
            var data = _.filter(_.map(resp.networks, _.bind(this.parse_net_api_data, this)),
1619 1620
                               function(e){ return e });
1620 1621
            return data;
1621 1622
        },
......
1646 1647
            // e.g. {'vm_id':12231, 'index':1}
1647 1648
            // net.get('linked_to') contains a list of vms the network is 
1648 1649
            // connected to e.g. [1001, 1002]
1649
            if (data.attachments && data.attachments.values) {
1650
            if (data.attachments && data.attachments) {
1650 1651
                data['nics'] = {};
1651 1652
                data['linked_to'] = [];
1652
                _.each(data.attachments.values, function(nic_id){
1653
                _.each(data.attachments, function(nic_id){
1653 1654
                  
1654 1655
                  var vm_id = NIC_REGEX.exec(nic_id)[1];
1655 1656
                  var nic_index = parseInt(NIC_REGEX.exec(nic_id)[2]);
......
1767 1768
        },
1768 1769

  
1769 1770
        parse: function (resp, xhr) {
1770
            var parsed = _.map(resp.images.values, _.bind(this.parse_meta, this));
1771
            var parsed = _.map(resp.images, _.bind(this.parse_meta, this));
1771 1772
            parsed = this.fill_owners(parsed);
1772 1773
            return parsed;
1773 1774
        },
......
1812 1813
        },
1813 1814

  
1814 1815
        get_meta_key: function(img, key) {
1815
            if (img.metadata && img.metadata.values && img.metadata.values[key]) {
1816
                return _.escape(img.metadata.values[key]);
1816
            if (img.metadata && img.metadata && img.metadata[key]) {
1817
                return _.escape(img.metadata[key]);
1817 1818
            }
1818 1819
            return undefined;
1819 1820
        },
......
1892 1893
        },
1893 1894

  
1894 1895
        parse: function (resp, xhr) {
1895
            return _.map(resp.flavors.values, function(o) { o.disk_template = o['SNF:disk_template']; return o});
1896
            return _.map(resp.flavors, function(o) { o.disk_template = o['SNF:disk_template']; return o});
1896 1897
        },
1897 1898

  
1898 1899
        comparator: function(flv) {
......
1998 1999
        parse: function (resp, xhr) {
1999 2000
            var data = resp;
2000 2001
            if (!resp) { return [] };
2001
            data = _.filter(_.map(resp.servers.values, _.bind(this.parse_vm_api_data, this)), function(v){return v});
2002
            data = _.filter(_.map(resp.servers, _.bind(this.parse_vm_api_data, this)), function(v){return v});
2002 2003
            return data;
2003 2004
        },
2004 2005

  
......
2012 2013

  
2013 2014
            // OS attribute
2014 2015
            if (this.has_meta(data)) {
2015
                data['OS'] = data.metadata.values.OS || snf.config.unknown_os;
2016
                data['OS'] = data.metadata.OS || snf.config.unknown_os;
2016 2017
            }
2017 2018
            
2018 2019
            if (!data.diagnostics) {
......
2024 2025
            data['nics'] = {};
2025 2026
            data['linked_to'] = [];
2026 2027

  
2027
            if (data['attachments'] && data['attachments'].values) {
2028
                var nics = data['attachments'].values;
2028
            if (data['attachments'] && data['attachments']) {
2029
                var nics = data['attachments'];
2029 2030
                _.each(nics, function(nic) {
2030 2031
                    var net_id = nic.network_id;
2031 2032
                    var index = parseInt(NIC_REGEX.exec(nic.id)[2]);
......
2041 2042
            // is in json response, reset it to force
2042 2043
            // value update
2043 2044
            if (!data['metadata']) {
2044
                data['metadata'] = {values:{}};
2045
                data['metadata'] = {};
2045 2046
            }
2046 2047

  
2047 2048
            return data;
......
2102 2103
        },
2103 2104
        
2104 2105
        has_meta: function(vm_data) {
2105
            return vm_data.metadata && vm_data.metadata.values
2106
            return vm_data.metadata && vm_data.metadata
2106 2107
        },
2107 2108

  
2108 2109
        has_addresses: function(vm_data) {
2109
            return vm_data.metadata && vm_data.metadata.values
2110
            return vm_data.metadata && vm_data.metadata
2110 2111
        },
2111 2112

  
2112 2113
        create: function (name, image, flavor, meta, extra, callback) {
......
2126 2127
                }
2127 2128
            }
2128 2129
            
2129
            opts = {name: name, imageRef: image.id, flavorRef: flavor.id, 
2130
            opts = {name: name, image: image.id, flavor: flavor.id, 
2130 2131
                    metadata:meta}
2131 2132
            opts = _.extend(opts, extra);
2132 2133
            
......
2145 2146

  
2146 2147
          // fill missing_ids
2147 2148
          this.each(function(el) {
2148
            var imgid = el.get("imageRef");
2149
            var imgid = el.get("image");
2149 2150
            var existing = synnefo.storage.images.get(imgid);
2150 2151
            if (!existing && missing_ids.indexOf(imgid) == -1) {
2151 2152
              missing_ids.push(imgid);
b/snf-cyclades-app/synnefo/ui/static/snf/js/ui/web/ui_create_view.js
419 419
            }, this);
420 420
            
421 421
            if (synnefo.storage.images.display_extra_metadata) {
422
                _.each(image.get('metadata').values, function(value, key) {
422
                _.each(image.get('metadata'), function(value, key) {
423 423
                    if (!_.contains(meta_keys, key) && 
424 424
                        !_.contains(meta_keys, key.toLowerCase()) &&
425 425
                        !_.contains(meta_keys, key.toUpperCase()) &&
b/snf-cyclades-app/synnefo/ui/static/snf/js/ui/web/ui_icon_view.js
437 437
        update_layout: function() {
438 438

  
439 439
            // api metadata object
440
            var meta =  this.vm.get('metadata').values;
440
            var meta =  this.vm.get('metadata');
441 441

  
442 442
            var i = 0;
443 443
            var cont = $(this.el).find(".items");
b/snf-cyclades-app/synnefo/ui/static/snf/js/ui/web/ui_metadata_view.js
88 88
        },
89 89

  
90 90
        get_meta: function() {
91
            return this.current_vm.get('metadata').values;
91
            return this.current_vm.get('metadata');
92 92
        },
93 93
        
94 94
        get_meta_el: function(key, value) {

Also available in: Unified diff