Repository: incubator-ignite Updated Branches: refs/heads/ignite-843 835ea08b8 -> c18cee2ac
IGNITE-843: WIP Load metadata from db. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c18cee2a Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c18cee2a Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c18cee2a Branch: refs/heads/ignite-843 Commit: c18cee2ac0d6298778d2582bc6b6adbe1fdcedbd Parents: 835ea08 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Wed Aug 19 10:42:27 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Wed Aug 19 10:42:27 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/caches-controller.js | 2 +- modules/control-center-web/src/main/js/db.js | 74 ++++++++++---------- .../src/main/js/routes/caches.js | 32 +++------ .../src/main/js/routes/clusters.js | 28 +++----- .../js/views/configuration/metadata-load.jade | 5 +- 5 files changed, 61 insertions(+), 80 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c18cee2a/modules/control-center-web/src/main/js/controllers/caches-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/caches-controller.js b/modules/control-center-web/src/main/js/controllers/caches-controller.js index 5c8fb0f..121eed0 100644 --- a/modules/control-center-web/src/main/js/controllers/caches-controller.js +++ b/modules/control-center-web/src/main/js/controllers/caches-controller.js @@ -248,7 +248,7 @@ controlCenterModule.controller('cachesController', [ if (item) sessionStorage.cacheSelectedItem = angular.toJson(item); else - sessionStorage.removeItem(cacheSelectedItem); + sessionStorage.removeItem('cacheSelectedItem'); }; // Add new cache. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c18cee2a/modules/control-center-web/src/main/js/db.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/db.js b/modules/control-center-web/src/main/js/db.js index b183bdb..6746758 100644 --- a/modules/control-center-web/src/main/js/db.js +++ b/modules/control-center-web/src/main/js/db.js @@ -28,7 +28,7 @@ var deepPopulate = require('mongoose-deep-populate')( mongoose); // Connect to mongoDB database. mongoose.connect(config.get('mongoDB:url'), {server: {poolSize: 4}}); -// Define account model. +// Define Account schema. var AccountSchema = new Schema({ username: String, email: String, @@ -37,9 +37,11 @@ var AccountSchema = new Schema({ resetPasswordToken: String }); +// Install passport plugin. AccountSchema.plugin(passportLocalMongoose, {usernameField: 'email', limitAttempts: true, lastLoginField: 'lastLogin', usernameLowerCase: true}); +// Configure transformation to JSON. AccountSchema.set('toJSON', { transform: function(doc, ret) { return { @@ -52,9 +54,10 @@ AccountSchema.set('toJSON', { } }); +// Define Account model. exports.Account = mongoose.model('Account', AccountSchema); -// Define space model. +// Define Space model. exports.Space = mongoose.model('Space', new Schema({ name: String, owner: {type: ObjectId, ref: 'Account'}, @@ -64,7 +67,7 @@ exports.Space = mongoose.model('Space', new Schema({ }] })); -// Define cache type metadata model. +// Define Cache type metadata schema. var CacheTypeMetadataSchema = new Schema({ space: {type: ObjectId, ref: 'Space'}, name: String, @@ -82,9 +85,10 @@ var CacheTypeMetadataSchema = new Schema({ groups: [{name: String, fields: [{name: String, className: String, direction: Boolean}]}] }); +// Define Cache type metadata model. exports.CacheTypeMetadata = mongoose.model('CacheTypeMetadata', CacheTypeMetadataSchema); -// Define cache model. +// Define Cache schema. var CacheSchema = new Schema({ space: {type: ObjectId, ref: 'Space'}, name: String, @@ -206,9 +210,10 @@ var CacheSchema = new Schema({ } }); +// Define Cache model. exports.Cache = mongoose.model('Cache', CacheSchema); -// Define cluster schema. +// Define Cluster schema. var ClusterSchema = new Schema({ space: {type: ObjectId, ref: 'Space'}, name: String, @@ -317,6 +322,7 @@ var ClusterSchema = new Schema({ waitForSegmentOnStart: Boolean }); +// Install deep populate plugin. ClusterSchema.plugin(deepPopulate, { whitelist: [ 'caches', @@ -325,40 +331,10 @@ ClusterSchema.plugin(deepPopulate, { ] }); -// Define cluster model. +// Define Cluster model. exports.Cluster = mongoose.model('Cluster', ClusterSchema); -// Define persistence schema. -var PersistenceSchema = new Schema({ - space: {type: ObjectId, ref: 'Space'}, - name: String, - rdbms: {type: String, enum: ['oracle', 'db2', 'mssql', 'postgre', 'mysql', 'h2']}, - dbName: String, - host: String, - user: String, - tables: [{ - use: Boolean, - schemaName: String, - tableName: String, - keyClass: String, - valueClass: String, - columns: [{ - use: Boolean, - pk: Boolean, - ak: Boolean, - notNull: Boolean, - databaseName: String, - databaseType: Number, - javaName: String, - javaType: String - }] - }] -}); - -// Define persistence model. -exports.Persistence = mongoose.model('Persistence', PersistenceSchema); - -// Define persistence schema. +// Define Notebook schema. var NotebookSchema = new Schema({ space: {type: ObjectId, ref: 'Space'}, name: String, @@ -367,9 +343,21 @@ var NotebookSchema = new Schema({ }] }); -// Define persistence model. +// Define Notebook model. exports.Notebook = mongoose.model('Notebook', NotebookSchema); +// Define Database preset schema. +var DatabasePresetSchema = new Schema({ + space: {type: ObjectId, ref: 'Space'}, + jdbcDriverJar: String, + jdbcDriverClass: String, + jdbcUrl: String, + user: String +}); + +// Define Database preset model. +exports.DatabasePreset = mongoose.model('DatabasePreset', DatabasePresetSchema); + exports.upsert = function (model, data, cb) { if (data._id) { var id = data._id; @@ -382,4 +370,14 @@ exports.upsert = function (model, data, cb) { new model(data).save(cb); }; +exports.processed = function(err, res) { + if (err) { + res.status(500).send(err.message); + + return false; + } + + return true; +}; + exports.mongoose = mongoose; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c18cee2a/modules/control-center-web/src/main/js/routes/caches.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/routes/caches.js b/modules/control-center-web/src/main/js/routes/caches.js index 7edd742..dac1d98 100644 --- a/modules/control-center-web/src/main/js/routes/caches.js +++ b/modules/control-center-web/src/main/js/routes/caches.js @@ -24,16 +24,6 @@ router.get('/', function (req, res) { res.render('configuration/caches'); }); -function _processed(err, res) { - if (err) { - res.status(500).send(err.message); - - return false; - } - - return true; -} - /** * Get spaces and caches accessed for user account. * @@ -45,20 +35,20 @@ router.post('/list', function (req, res) { // Get owned space and all accessed space. db.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, function (err, spaces) { - if (_processed(err, res)) { + if (db.processed(err, res)) { var space_ids = spaces.map(function (value) { return value._id; }); // Get all clusters for spaces. db.Cluster.find({space: {$in: space_ids}}, '_id name').sort('name').exec(function (err, clusters) { - if (_processed(err, res)) { + if (db.processed(err, res)) { // Get all caches type metadata for spaces. db.CacheTypeMetadata.find({space: {$in: space_ids}}, '_id name kind', function (err, metadatas) { - if (_processed(err, res)) { + if (db.processed(err, res)) { // Get all caches for spaces. db.Cache.find({space: {$in: space_ids}}).sort('name').exec(function (err, caches) { - if (_processed(err, res)) { + if (db.processed(err, res)) { _.forEach(caches, function (cache) { // Remove deleted clusters. @@ -112,11 +102,11 @@ router.post('/save', function (req, res) { if (params._id){ db.Cache.update({_id: cacheId}, params, {upsert: true}, function (err) { - if (_processed(err, res)) + if (db.processed(err, res)) db.Cluster.update({_id: {$in: clusters}}, {$addToSet: {caches: cacheId}}, {upsert: true, multi: true}, function(err) { - if (_processed(err, res)) + if (db.processed(err, res)) db.Cluster.update({_id: {$nin: clusters}}, {$pull: {caches: cacheId}}, {upsert: true, multi: true}, function(err) { - if (_processed(err, res)) + if (db.processed(err, res)) res.send(params._id); }); }); @@ -124,16 +114,16 @@ router.post('/save', function (req, res) { } else db.Cache.findOne({space: params.space, name: params.name}, function (err, cache) { - if (_processed(err, res)) { + if (db.processed(err, res)) { if (cache) return res.status(500).send('Cache with name: "' + cache.name + '" already exist.'); (new db.Cache(params)).save(function (err, cache) { - if (_processed(err, res)) { + if (db.processed(err, res)) { cacheId = cache._id; db.Cluster.update({_id: {$in: clusters}}, {$addToSet: {caches: cacheId}}, {upsert: true, multi: true}, function(err) { - if (_processed(err, res)) + if (db.processed(err, res)) res.send(cacheId); }); } @@ -148,7 +138,7 @@ router.post('/save', function (req, res) { */ router.post('/remove', function (req, res) { db.Cache.remove(req.body, function (err) { - if (_processed(err, res)) + if (db.processed(err, res)) res.sendStatus(200); }) }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c18cee2a/modules/control-center-web/src/main/js/routes/clusters.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/routes/clusters.js b/modules/control-center-web/src/main/js/routes/clusters.js index 9da8200..3c7a41f 100644 --- a/modules/control-center-web/src/main/js/routes/clusters.js +++ b/modules/control-center-web/src/main/js/routes/clusters.js @@ -24,16 +24,6 @@ router.get('/', function (req, res) { res.render('configuration/clusters'); }); -function _processed(err, res) { - if (err) { - res.status(500).send(err.message); - - return false; - } - - return true; -} - /** * Get spaces and clusters accessed for user account. * @@ -45,17 +35,17 @@ router.post('/list', function (req, res) { // Get owned space and all accessed space. db.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, function (err, spaces) { - if (_processed(err, res)) { + if (db.processed(err, res)) { var space_ids = spaces.map(function (value) { return value._id; }); // Get all caches for spaces. db.Cache.find({space: {$in: space_ids}}, '_id name swapEnabled').sort('name').exec(function (err, caches) { - if (_processed(err, res)) { + if (db.processed(err, res)) { // Get all clusters for spaces. db.Cluster.find({space: {$in: space_ids}}).sort('name').exec(function (err, clusters) { - if (_processed(err, res)) { + if (db.processed(err, res)) { // Remove deleted caches. _.forEach(clusters, function (cluster) { cluster.caches = _.filter(cluster.caches, function (cacheId) { @@ -90,11 +80,11 @@ router.post('/save', function (req, res) { if (params._id) db.Cluster.update({_id: params._id}, params, {upsert: true}, function (err) { - if (_processed(err, res)) + if (db.processed(err, res)) db.Cache.update({_id: {$in: caches}}, {$addToSet: {clusters: clusterId}}, {upsert: true, multi: true}, function(err) { - if (_processed(err, res)) { + if (db.processed(err, res)) { db.Cache.update({_id: {$nin: caches}}, {$pull: {clusters: clusterId}}, {upsert: true, multi: true}, function(err) { - if (_processed(err, res)) + if (db.processed(err, res)) res.send(params._id); }); } @@ -102,16 +92,16 @@ router.post('/save', function (req, res) { }); else { db.Cluster.findOne({space: params.space, name: params.name}, function (err, cluster) { - if (_processed(err, res)) { + if (db.processed(err, res)) { if (cluster) return res.status(500).send('Cluster with name: "' + cluster.name + '" already exist.'); (new db.Cluster(params)).save(function (err, cluster) { - if (_processed(err, res)) { + if (db.processed(err, res)) { clusterId = cluster._id; db.Cache.update({_id: {$in: caches}}, {$addToSet: {clusters: clusterId}}, {upsert: true, multi: true}, function (err) { - if (_processed(err, res)) + if (db.processed(err, res)) res.send(clusterId); }); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c18cee2a/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade b/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade index 9eaeba6..4f7833a 100644 --- a/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade +++ b/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade @@ -28,6 +28,10 @@ include ../includes/controls .settings-row(ng-repeat='field in metadataDb') +form-row-custom(['col-xs-4 col-sm-3 col-md-3'], ['col-xs-8 col-sm-9 col-md-9'], 'preset') div(ng-show='loadMeta.action == "tables"' style='margin: 15px') + .settings-row + label.col-sm-2.required Package: + .col-sm-4 + input.form-control(type="text") table.table.table-condensed.table-stripped.admin(st-table='displayedTables' st-safe-src='loadMeta.tables') thead tr @@ -49,7 +53,6 @@ include ../includes/controls tr td.text-right(colspan='2') div(st-pagination st-items-by-page='10' st-displayed-pages='5') - .modal-footer button.btn.btn-primary(ng-show='loadMeta.action == "connect"' ng-disabled='loadForm.$invalid' ng-click='loadMetadataFromDb()') Load metadata button.btn.btn-primary(ng-show='loadMeta.action == "tables"' ng-click='loadMeta.action = "connect"') Prev