diff --git a/ksql.js b/ksql.js index 3e412e5..fa9d27c 100644 --- a/ksql.js +++ b/ksql.js @@ -129,8 +129,9 @@ var mybase = new alasql.Database('mybase'); var create_tables = function(db) { db.exec('CREATE TABLE pods (uid TEXT, node TEXT, metadata Object, spec Object, status Object)'); - db.exec('CREATE TABLE nodes (name TEXT, uid TEXT, metadata Object, spec Object, status Object)'); + db.exec('CREATE TABLE nodes (name TEXT, uid TEXT, metadata Object, spec Object, status TXT)'); db.exec('CREATE TABLE services (name TEXT, uid TEXT, metadata Object, spec Object, status Object)'); + db.exec('CREATE TABLE namespaces (name TEXT, uid TEXT)'); db.exec('CREATE TABLE containers (image TEXT, uid TEXT, restarts INT)'); }; @@ -242,15 +243,41 @@ var load_services = function(client) { return generic_load(client.services.get, alasql.databases.mybase.tables.services); }; +var load_namespaces = function (client) { + return generic_load(client.namespaces.get, alasql.databases.mybase.tables.namespaces); +} + var load_nodes = function(client) { - return generic_load(client.nodes.get, alasql.databases.mybase.tables.nodes); + var defer = q.defer(); + client.nodes.get(function (err, nodes) { + if (err != null) { + defer.reject(err); + return; + } + for (var i = 0; i < nodes[0].items.length; i++) { + var node = nodes[0].items[i]; + node.uid = node.metadata.uid; + node.name = node.metadata.name; + for (var j = 0; j < node.status.conditions.length; j++) { + if (node.status.conditions[j].status == "True") { + node.status = node.status.conditions[j].type + break; + } + } + } + alasql.databases.mybase.tables.nodes.data = nodes[0].items; + defer.resolve(); + }); + + return defer.promise; }; var load = function (client) { return q.all([ load_pods(client), load_nodes(client), - load_services(client) + load_services(client), + load_namespaces(client) ]) };