You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/08/19 13:11:55 UTC
incubator-ignite git commit: IGNITE-843: WIP saving presets.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-843 7307836d3 -> a87cc90b8
IGNITE-843: WIP saving presets.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a87cc90b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a87cc90b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a87cc90b
Branch: refs/heads/ignite-843
Commit: a87cc90b89f7976fc46f79f4e19f594b7838db9c
Parents: 7307836
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Wed Aug 19 18:12:11 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Aug 19 18:12:11 2015 +0700
----------------------------------------------------------------------
modules/control-center-web/src/main/js/app.js | 2 +
.../src/main/js/routes/presets.js | 68 ++++++++++++++++++++
2 files changed, 70 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a87cc90b/modules/control-center-web/src/main/js/app.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app.js b/modules/control-center-web/src/main/js/app.js
index 95b300a..81107ec 100644
--- a/modules/control-center-web/src/main/js/app.js
+++ b/modules/control-center-web/src/main/js/app.js
@@ -31,6 +31,7 @@ var notebooksRoutes = require('./routes/notebooks');
var clustersRouter = require('./routes/clusters');
var cachesRouter = require('./routes/caches');
var metadataRouter = require('./routes/metadata');
+var presetsRouter = require('./routes/presets');
var summary = require('./routes/summary');
var adminRouter = require('./routes/admin');
var profileRouter = require('./routes/profile');
@@ -132,6 +133,7 @@ app.use('/profile', mustAuthenticated, profileRouter);
app.use('/configuration/clusters', clustersRouter);
app.use('/configuration/caches', cachesRouter);
app.use('/configuration/metadata', metadataRouter);
+app.use('/configuration/presets', presetsRouter);
app.use('/configuration/summary', summary);
app.use('/notebooks', mustAuthenticated, notebooksRoutes);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a87cc90b/modules/control-center-web/src/main/js/routes/presets.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/presets.js b/modules/control-center-web/src/main/js/routes/presets.js
new file mode 100644
index 0000000..119102a
--- /dev/null
+++ b/modules/control-center-web/src/main/js/routes/presets.js
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var router = require('express').Router();
+var db = require('../db');
+
+/**
+ * Get database presets.
+ *
+ * @param req Request.
+ * @param res Response.
+ */
+router.post('/list', function (req, res) {
+ var userId = req.currentUserId();
+
+ // Get owned space and all accessed space.
+ db.Space.find({$or: [{owner: userId}, {usedBy: {$elemMatch: {account: userId}}}]}, function (err, spaces) {
+ if (db.processed(err, res)) {
+ var spaceIds = spaces.map(function (value) {
+ return value._id;
+ });
+
+ // Get all presets for spaces.
+ db.DatabasePreset.find({space: {$in: spaceIds}}).exec(function (err, presets) {
+ if (db.processed(err, res))
+ res.json({spaces: spaces, presets: presets});
+ });
+ }
+ });
+});
+
+/**
+ * Save database preset.
+ */
+router.post('/save', function (req, res) {
+ var params = req.body;
+
+ db.CacheTypeMetadata.findOne({space: params.space, jdbcDriverJar: params.jdbcDriverJar}, function (err, preset) {
+ if (db.processed(err, res)) {
+ if (preset)
+ db.CacheTypeMetadata.update({space: params.space, jdbcDriverJar: params.jdbcDriverJar}, params, {upsert: true}, function (err) {
+ if (db.processed(err, res))
+ return res.sendStatus(200);
+ });
+ else
+ (new db.CacheTypeMetadata(params)).save(function (err) {
+ if (db.processed(err, res))
+ return res.sendStatus(200);
+ });
+ }
+ });
+});
+
+module.exports = router;