ignite-1155 Fix problems after merge.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c07e2c96 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c07e2c96 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c07e2c96 Branch: refs/heads/ignite-843 Commit: c07e2c9699f4d0bb18fea568a353fc4d5972d220 Parents: f1b0351 Author: sevdokimov <sergey.evdoki...@jetbrains.com> Authored: Fri Jul 31 10:36:30 2015 +0300 Committer: sevdokimov <sergey.evdoki...@jetbrains.com> Committed: Fri Jul 31 10:36:30 2015 +0300 ---------------------------------------------------------------------- .../src/main/js/routes/agent.js | 59 ++++++++++++++++++-- 1 file changed, 53 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c07e2c96/modules/control-center-web/src/main/js/routes/agent.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/routes/agent.js b/modules/control-center-web/src/main/js/routes/agent.js index aad5cef..061376f 100644 --- a/modules/control-center-web/src/main/js/routes/agent.js +++ b/modules/control-center-web/src/main/js/routes/agent.js @@ -18,19 +18,66 @@ var router = require('express').Router(); var agentManager = require('../agents/agent-manager'); +var apacheIgnite = require('apache-ignite'); +var SqlFieldsQuery = apacheIgnite.SqlFieldsQuery; + /* GET summary page. */ router.post('/topology', function(req, res) { - var c = agentManager.getAgentManager()._getFirstClient(); + var client = agentManager.getAgentManager().getOneClient(); - if (!c) + if (!client) return res.status(500).send("Client not found"); - var ignite = c.ignite(); + client.ignite().cluster().then(function (clusters) { + res.json(clusters.map(function (cluster) { + var caches = Object.keys(cluster._caches).map(function(key) { + return {"name" : key, "mode" : cluster._caches[key] } + }); + + return { nodeId: cluster._nodeId, caches: caches }; + })); + }, function (err) { + res.status(500).send(err); + }); +}); + +/* GET summary page. */ +router.post('/query', function(req, res) { + var client = agentManager.getAgentManager().getOneClient(); + + if (!client) + return res.status(500).send("Client not found"); + + // Create sql query. + var qry = new SqlFieldsQuery(req.body.query); + + // Set page size for query. + qry.setPageSize(req.body.pageSize); + + // Get query cursor. + client.ignite().cache(req.body.cacheName).query(qry).nextPage().then(function (cursor) { + res.json({meta: cursor.fieldsMetadata(), rows: cursor.page(), queryId: cursor.queryId()}); + }, function (err) { + res.status(500).send(err); + }); +}); + +/* GET summary page. */ +router.post('/next_page', function(req, res) { + var client = agentManager.getAgentManager().getOneClient(); + + if (!client) + return res.status(500).send("Client not found"); + + var cache = client.ignite().cache(req.body.cacheName); + + var cmd = cache._createCommand("qryfetch").addParam("qryId", req.body.queryId). + addParam("psz", req.body.pageSize); - ignite.cluster().then(function (cluster) { - res.json(cluster); + cache.__createPromise(cmd).then(function (page) { + res.json({rows: page["items"], last: page === null || page["last"]}); }, function (err) { - res.send(err); + res.status(500).send(err); }); });