Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 7743f0cab -> 2e8a3d1a3


IGNITE-843 Get drivers and metadata from web-agent.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b6941c99
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b6941c99
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b6941c99

Branch: refs/heads/ignite-843
Commit: b6941c995ba24e8b8035d7bcef46238cc7e501cc
Parents: b7fc32b
Author: AKuznetsov <akuznet...@gridgain.com>
Authored: Thu Aug 13 23:52:02 2015 +0700
Committer: AKuznetsov <akuznet...@gridgain.com>
Committed: Thu Aug 13 23:52:02 2015 +0700

----------------------------------------------------------------------
 .../main/js/controllers/metadata-controller.js  |   4 +-
 .../src/main/js/routes/agent.js                 | 127 ++++++++++---------
 2 files changed, 68 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b6941c99/modules/control-center-web/src/main/js/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git 
a/modules/control-center-web/src/main/js/controllers/metadata-controller.js 
b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
index a6b0e7a..7f79808 100644
--- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
@@ -195,7 +195,9 @@ controlCenterModule.controller('metadataController', [
             $scope.loadMetadataFromDb = function () {
                 $http.post('/agent/metadata')
                     .success(function (tables) {
-                        $scope.loadMeta.tables = tables;
+                        $scope.loadMeta.tables = _.map(tables, function (tbl) {
+                            return {schemaName: tbl.schema, tableName: 
tbl.tbl};
+                        });
                         $scope.loadMeta.action = 'tables';
                     })
                     .error(function (errMsg) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b6941c99/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 ddc0280..9886e86 100644
--- a/modules/control-center-web/src/main/js/routes/agent.js
+++ b/modules/control-center-web/src/main/js/routes/agent.js
@@ -21,98 +21,101 @@ var agentManager = require('../agents/agent-manager');
 var apacheIgnite = require('apache-ignite');
 var SqlFieldsQuery = apacheIgnite.SqlFieldsQuery;
 
-/* Get grid topology. */
-router.post('/topology', function (req, res) {
+function _client(req, res) {
     var client = 
agentManager.getAgentManager().findClient(req.currentUserId());
 
-    if (!client)
-        return res.status(500).send("Client not found");
+    if (!client) {
+        res.status(500).send("Client not found");
 
-    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 null;
+    }
 
-            return {nodeId: cluster._nodeId, caches: caches};
-        }));
-    }, function (err) {
-        res.status(500).send(err);
-    });
+    return client;
+}
+
+/* Get grid topology. */
+router.post('/topology', function (req, res) {
+    var client = _client(req, res);
+
+    if (client) {
+        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);
+        });
+    }
 });
 
 /* Execute query. */
 router.post('/query', function (req, res) {
-    var client = 
agentManager.getAgentManager().findClient(req.currentUserId());
-
-    if (!client)
-        return res.status(500).send("Client not found");
+    var client = _client(req, res);
 
-    // Create sql query.
-    var qry = new SqlFieldsQuery(req.body.query);
+    if (client) {
+        // Create sql query.
+        var qry = new SqlFieldsQuery(req.body.query);
 
-    // Set page size for query.
-    qry.setPageSize(req.body.pageSize);
+        // 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 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 next query page. */
 router.post('/next_page', function (req, res) {
-    var client = 
agentManager.getAgentManager().findClient(req.currentUserId());
+    var client = _client(req, res);
 
-    if (!client)
-        return res.status(500).send("Client not found");
+    if (client) {
+        var cache = client.ignite().cache(req.body.cacheName);
 
-    var cache = client.ignite().cache(req.body.cacheName);
+        var cmd = cache._createCommand("qryfetch").addParam("qryId", 
req.body.queryId).
+            addParam("pageSize", req.body.pageSize);
 
-    var cmd = cache._createCommand("qryfetch").addParam("qryId", 
req.body.queryId).
-        addParam("pageSize", req.body.pageSize);
-
-    cache.__createPromise(cmd).then(function (page) {
-        res.json({rows: page["items"], last: page === null || page["last"]});
-    }, function (err) {
-        res.status(500).send(err);
-    });
+        cache.__createPromise(cmd).then(function (page) {
+            res.json({rows: page["items"], last: page === null || 
page["last"]});
+        }, function (err) {
+            res.status(500).send(err);
+        });
+    }
 });
 
 /* Get JDBC drivers list. */
 router.post('/drivers', function (req, res) {
-    res.json(['ojdbc6.jar', 'db2jcc4.jar', 'h2.jar']);
+    var client = _client(req, res);
 
-    //var client = 
agentManager.getAgentManager().findClient(req.currentUserId());
-    //
-    //if (!client)
-    //    return res.status(500).send("Client not found");
+    if (client) {
+        client.availableDrivers(function (err, drivers) {
+            if (err)
+                return res.status(500).send(err);
 
+            res.json(drivers);
+        });
+    }
 });
 
 /** Get database metadata. */
 router.post('/metadata', function (req, res) {
-    var tables = [];
-
-    for (var i = 1; i < 17; i++) {
-        tables.push({
-            schemaName: 'Schema' + ((i / 5) + 1),
-            use: true,
-            tableName: 'Table' + i,
-            keyClass: 'KeyClass' + i,
-            valueClass: 'ValueClass' + i
-        })
-    }
+    var client = _client(req, res);
 
-    res.json(tables);
-
-    //var client = 
agentManager.getAgentManager().findClient(req.currentUserId());
-    //
-    //if (!client)
-    //    return res.status(500).send("Client not found");
+    if (client) {
+        client.extractMetadata('h2-1.4.188.jar', 'org.h2.Driver', 
'jdbc:h2:tcp://localhost/c:/temp/agent', {user: 'sa'}, true, function (err, 
meta) {
+            if (err)
+                return res.status(500).send(err);
 
+            res.json(meta);
+        });
+    }
 });
 
 module.exports = router;

Reply via email to