Add the getNodes function to the periodically asynchronous updated
PVEResource store. This allows a component to get the node data
directly, without making an API call and waiting that it's finished,
the data is also up to date.

A usage example would be:

var data = PVE.data.ResourceStore.getNodes();

var store = Ext.create('Ext.data.Store', {
    fields: [ 'node', 'mem', 'cpu', ... ], // or a model
    data: data,
    proxy: {
        type: 'memory',
        reader: {type: 'json'}
    },
    ...
});

I'll use it in a later patch to avoid two asynchrony store loads
where I'd have logic in place for the case that either one finishes
first, this function helps me to avoid such logic while achieving
the same functionallity.

Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---
 www/manager6/data/ResourceStore.js | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/www/manager6/data/ResourceStore.js 
b/www/manager6/data/ResourceStore.js
index 7e5725c..cc68b84 100644
--- a/www/manager6/data/ResourceStore.js
+++ b/www/manager6/data/ResourceStore.js
@@ -8,6 +8,20 @@ Ext.define('PVE.data.ResourceStore', {
        return (me.findExact('vmid', parseInt(vmid, 10)) >= 0);
     },
 
+    // returns the cached data from all nodes
+    getNodes: function() {
+       var me = this;
+
+       var nodes = [];
+       me.each(function(record) {
+           if (record.get('type') == "node") {
+               nodes.push( record.getData() );
+           }
+       });
+
+       return nodes;
+    },
+
     constructor: function(config) {
        // fixme: how to avoid those warnings
        /*jslint confusion: true */
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to