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/05 03:14:53 UTC
[02/50] incubator-ignite git commit: Merge branch 'ignite-843' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1155_1
Merge branch 'ignite-843' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1155_1
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/1c6280ee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/1c6280ee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/1c6280ee
Branch: refs/heads/ignite-843
Commit: 1c6280ee22d01df3cc03fc21d04eae739ff80b3b
Parents: 6e9fa45 86fb3d7
Author: Andrey <an...@gridgain.com>
Authored: Thu Jul 30 16:09:13 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Jul 30 16:09:13 2015 +0700
----------------------------------------------------------------------
.../control-center-web/licenses/apache-2.0.txt | 202 +++
.../control-center-web/src/main/js/.gitignore | 4 +
.../control-center-web/src/main/js/DEVNOTES.txt | 21 +
modules/control-center-web/src/main/js/app.js | 158 +++
modules/control-center-web/src/main/js/bin/www | 110 ++
.../src/main/js/config/default.json | 17 +
.../src/main/js/controllers/admin-controller.js | 68 +
.../js/controllers/cache-viewer-controller.js | 77 ++
.../main/js/controllers/caches-controller.js | 351 +++++
.../main/js/controllers/clusters-controller.js | 310 +++++
.../src/main/js/controllers/common-module.js | 484 +++++++
.../main/js/controllers/metadata-controller.js | 711 ++++++++++
.../src/main/js/controllers/models/caches.json | 943 +++++++++++++
.../main/js/controllers/models/clusters.json | 909 +++++++++++++
.../main/js/controllers/models/metadata.json | 252 ++++
.../src/main/js/controllers/models/sql.json | 5 +
.../src/main/js/controllers/models/summary.json | 163 +++
.../main/js/controllers/profile-controller.js | 51 +
.../src/main/js/controllers/sql-controller.js | 84 ++
.../main/js/controllers/summary-controller.js | 170 +++
modules/control-center-web/src/main/js/db.js | 370 +++++
.../src/main/js/helpers/configuration-loader.js | 22 +
.../src/main/js/helpers/data-structures.js | 84 ++
.../control-center-web/src/main/js/package.json | 52 +
.../src/main/js/public/favicon.ico | Bin 0 -> 1150 bytes
.../src/main/js/public/images/docker.png | Bin 0 -> 994 bytes
.../src/main/js/public/images/java.png | Bin 0 -> 170 bytes
.../src/main/js/public/images/logo.png | Bin 0 -> 8148 bytes
.../src/main/js/public/images/xml.png | Bin 0 -> 232 bytes
.../src/main/js/public/stylesheets/style.scss | 1270 ++++++++++++++++++
.../src/main/js/routes/admin.js | 79 ++
.../src/main/js/routes/caches.js | 105 ++
.../src/main/js/routes/clusters.js | 104 ++
.../src/main/js/routes/generator/common.js | 315 +++++
.../src/main/js/routes/generator/docker.js | 58 +
.../src/main/js/routes/generator/java.js | 859 ++++++++++++
.../src/main/js/routes/generator/xml.js | 738 ++++++++++
.../src/main/js/routes/metadata.js | 95 ++
.../src/main/js/routes/profile.js | 97 ++
.../src/main/js/routes/public.js | 123 ++
.../src/main/js/routes/sql.js | 24 +
.../src/main/js/routes/summary.js | 108 ++
.../src/main/js/views/configuration/caches.jade | 74 +
.../main/js/views/configuration/clusters.jade | 77 ++
.../main/js/views/configuration/metadata.jade | 121 ++
.../main/js/views/configuration/sidebar.jade | 39 +
.../main/js/views/configuration/summary.jade | 113 ++
.../src/main/js/views/error.jade | 22 +
.../src/main/js/views/includes/controls.jade | 359 +++++
.../src/main/js/views/includes/footer.jade | 22 +
.../src/main/js/views/includes/header.jade | 39 +
.../src/main/js/views/index.jade | 30 +
.../src/main/js/views/login.jade | 55 +
.../src/main/js/views/settings/admin.jade | 58 +
.../src/main/js/views/settings/profile.jade | 58 +
.../src/main/js/views/sql/sql.jade | 85 ++
.../src/main/js/views/templates/confirm.jade | 27 +
.../src/main/js/views/templates/copy.jade | 31 +
.../src/main/js/views/templates/layout.jade | 61 +
.../src/main/js/views/templates/select.jade | 26 +
.../src/main/js/views/templates/tab.jade | 26 +
.../web-control-center/licenses/apache-2.0.txt | 202 ---
.../web-control-center/src/main/js/.gitignore | 4 -
.../web-control-center/src/main/js/DEVNOTES.txt | 21 -
modules/web-control-center/src/main/js/app.js | 158 ---
modules/web-control-center/src/main/js/bin/www | 110 --
.../src/main/js/config/default.json | 17 -
.../src/main/js/controllers/admin-controller.js | 68 -
.../js/controllers/cache-viewer-controller.js | 77 --
.../main/js/controllers/caches-controller.js | 347 -----
.../main/js/controllers/clusters-controller.js | 307 -----
.../src/main/js/controllers/common-module.js | 422 ------
.../main/js/controllers/metadata-controller.js | 707 ----------
.../src/main/js/controllers/models/caches.json | 938 -------------
.../main/js/controllers/models/clusters.json | 913 -------------
.../main/js/controllers/models/metadata.json | 246 ----
.../src/main/js/controllers/models/sql.json | 5 -
.../src/main/js/controllers/models/summary.json | 163 ---
.../main/js/controllers/profile-controller.js | 51 -
.../src/main/js/controllers/sql-controller.js | 84 --
.../main/js/controllers/summary-controller.js | 170 ---
modules/web-control-center/src/main/js/db.js | 360 -----
.../src/main/js/helpers/configuration-loader.js | 22 -
.../src/main/js/helpers/data-structures.js | 84 --
.../web-control-center/src/main/js/package.json | 51 -
.../src/main/js/public/favicon.ico | Bin 1150 -> 0 bytes
.../src/main/js/public/images/docker.png | Bin 994 -> 0 bytes
.../src/main/js/public/images/java.png | Bin 170 -> 0 bytes
.../src/main/js/public/images/logo.png | Bin 8148 -> 0 bytes
.../src/main/js/public/images/xml.png | Bin 232 -> 0 bytes
.../src/main/js/public/stylesheets/style.scss | 1270 ------------------
.../src/main/js/routes/admin.js | 79 --
.../src/main/js/routes/caches.js | 105 --
.../src/main/js/routes/clusters.js | 104 --
.../src/main/js/routes/generator/common.js | 299 -----
.../src/main/js/routes/generator/docker.js | 58 -
.../src/main/js/routes/generator/java.js | 626 ---------
.../src/main/js/routes/generator/xml.js | 607 ---------
.../src/main/js/routes/metadata.js | 95 --
.../src/main/js/routes/profile.js | 97 --
.../src/main/js/routes/public.js | 123 --
.../src/main/js/routes/sql.js | 24 -
.../src/main/js/routes/summary.js | 108 --
.../src/main/js/views/configuration/caches.jade | 74 -
.../main/js/views/configuration/clusters.jade | 77 --
.../main/js/views/configuration/metadata.jade | 121 --
.../main/js/views/configuration/sidebar.jade | 39 -
.../main/js/views/configuration/summary.jade | 114 --
.../src/main/js/views/error.jade | 22 -
.../src/main/js/views/includes/controls.jade | 336 -----
.../src/main/js/views/includes/footer.jade | 22 -
.../src/main/js/views/includes/header.jade | 39 -
.../src/main/js/views/index.jade | 30 -
.../src/main/js/views/login.jade | 55 -
.../src/main/js/views/settings/admin.jade | 58 -
.../src/main/js/views/settings/profile.jade | 58 -
.../src/main/js/views/sql/sql.jade | 85 --
.../src/main/js/views/templates/confirm.jade | 27 -
.../src/main/js/views/templates/copy.jade | 31 -
.../src/main/js/views/templates/layout.jade | 61 -
.../src/main/js/views/templates/select.jade | 26 -
.../src/main/js/views/templates/tab.jade | 26 -
122 files changed, 10916 insertions(+), 10423 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1c6280ee/modules/control-center-web/src/main/js/app.js
----------------------------------------------------------------------
diff --cc modules/control-center-web/src/main/js/app.js
index 0000000,a67afc8..930c798
mode 000000,100644..100644
--- a/modules/control-center-web/src/main/js/app.js
+++ b/modules/control-center-web/src/main/js/app.js
@@@ -1,0 -1,156 +1,158 @@@
+ /*
+ * 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 flash = require('connect-flash');
+ var express = require('express');
+ var path = require('path');
+ var favicon = require('serve-favicon');
+ var logger = require('morgan');
+ var cookieParser = require('cookie-parser');
+ var bodyParser = require('body-parser');
+ var session = require('express-session');
+ var mongoStore = require('connect-mongo')(session);
+
+ var publicRoutes = require('./routes/public');
+ var clustersRouter = require('./routes/clusters');
+ var cachesRouter = require('./routes/caches');
+ var metadataRouter = require('./routes/metadata');
+ var summary = require('./routes/summary');
+ var adminRouter = require('./routes/admin');
+ var profileRouter = require('./routes/profile');
+ var sqlRouter = require('./routes/sql');
++var agentRouter = require('./routes/agent');
+
+ var passport = require('passport');
+
+ var db = require('./db');
+
+ var app = express();
+
+ // Views engine setup.
+ app.set('views', path.join(__dirname, 'views'));
+ app.set('view engine', 'jade');
+
+ // Site favicon.
+ app.use(favicon(__dirname + '/public/favicon.ico'));
+
+ app.use(logger('dev'));
+
+ app.use(bodyParser.json());
+ app.use(bodyParser.urlencoded({extended: false}));
+
+ app.use(require('node-sass-middleware')({
+ /* Options */
+ src: path.join(__dirname, 'public'),
+ dest: path.join(__dirname, 'public'),
+ debug: true,
+ outputStyle: 'nested'
+ }));
+
+ app.use(express.static(path.join(__dirname, 'public')));
+ app.use(express.static(path.join(__dirname, 'controllers')));
+ app.use(express.static(path.join(__dirname, 'helpers')));
+
+ app.use(cookieParser('keyboard cat'));
+
+ app.use(session({
+ secret: 'keyboard cat',
+ resave: false,
+ saveUninitialized: true,
+ store: new mongoStore({
+ mongooseConnection: db.mongoose.connection
+ })
+ }));
+
+ app.use(flash());
+
+ app.use(passport.initialize());
+ app.use(passport.session());
+
+ passport.serializeUser(db.Account.serializeUser());
+ passport.deserializeUser(db.Account.deserializeUser());
+
+ passport.use(db.Account.createStrategy());
+
+ var mustAuthenticated = function (req, res, next) {
+ req.isAuthenticated() ? next() : res.redirect('/');
+ };
+
+ var adminOnly = function(req, res, next) {
+ req.isAuthenticated() && req.user.admin ? next() : res.sendStatus(403);
+ };
+
+ app.all('/configuration/*', mustAuthenticated);
+
+ app.all('*', function(req, res, next) {
+ var becomeUsed = req.session.viewedUser && req.user.admin;
+
+ res.locals.user = becomeUsed ? req.session.viewedUser : req.user;
+ res.locals.becomeUsed = becomeUsed;
+
+ req.currentUserId = function() {
+ if (!req.user)
+ return null;
+
+ if (req.session.viewedUser && req.user.admin)
+ return req.session.viewedUser._id;
+
+ return req.user._id;
+ };
+
+ next();
+ });
+
+ app.use('/', publicRoutes);
+ app.use('/admin', mustAuthenticated, adminOnly, adminRouter);
+ app.use('/profile', mustAuthenticated, profileRouter);
+
+ app.use('/configuration/clusters', clustersRouter);
+ app.use('/configuration/caches', cachesRouter);
+ app.use('/configuration/metadata', metadataRouter);
+ app.use('/configuration/summary', summary);
+ app.use('/sql', sqlRouter);
++app.use('/agent', agentRouter);
+
+ // Catch 404 and forward to error handler.
+ app.use(function (req, res, next) {
+ var err = new Error('Not Found: ' + req.originalUrl);
+ err.status = 404;
+ next(err);
+ });
+
+ // Error handlers.
+
+ // Development error handler: will print stacktrace.
+ if (app.get('env') === 'development') {
+ app.use(function (err, req, res) {
+ res.status(err.status || 500);
+ res.render('error', {
+ message: err.message,
+ error: err
+ });
+ });
+ }
+
+ // Production error handler: no stacktraces leaked to user.
+ app.use(function (err, req, res) {
+ res.status(err.status || 500);
+ res.render('error', {
+ message: err.message,
+ error: {}
+ });
+ });
+
+ module.exports = app;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1c6280ee/modules/control-center-web/src/main/js/bin/www
----------------------------------------------------------------------
diff --cc modules/control-center-web/src/main/js/bin/www
index 0000000,4cf0583..cbc637a
mode 000000,100644..100644
--- a/modules/control-center-web/src/main/js/bin/www
+++ b/modules/control-center-web/src/main/js/bin/www
@@@ -1,0 -1,85 +1,110 @@@
+ #!/usr/bin/env node
+
+ /**
+ * Module dependencies.
+ */
-var app = require('../app');
++var http = require('http');
++var https = require('https');
+ var config = require('../helpers/configuration-loader.js');
++var app = require('../app');
++var agentManager = require('../agents/agent-manager');
++
++var fs = require('fs');
++
+ var debug = require('debug')('ignite-web-control-center:server');
-var http = require('http');
+
+ /**
+ * Get port from environment and store in Express.
+ */
+ var port = normalizePort(process.env.PORT || config.get('express:port'));
+ app.set('port', port);
+
+ /**
+ * Create HTTP server.
+ */
+ var server = http.createServer(app);
+
+ /**
+ * Listen on provided port, on all network interfaces.
+ */
+ server.listen(port);
+ server.on('error', onError);
+ server.on('listening', onListening);
+
+ /**
++ * Start agent server.
++ */
++var agentServer;
++
++if (config.get('monitor:server:ssl')) {
++ agentServer = https.createServer({
++ key: fs.readFileSync(config.get('monitor:server:key')),
++ cert: fs.readFileSync(config.get('monitor:server:cert')),
++ passphrase: config.get('monitor:server:keyPassphrase')
++ });
++}
++else {
++ agentServer = http.createServer();
++}
++
++agentServer.listen(config.get('monitor:server:port'));
++
++agentManager.createManager(agentServer);
++
++/**
+ * Normalize a port into a number, string, or false.
+ */
+ function normalizePort(val) {
+ var port = parseInt(val, 10);
+
+ if (isNaN(port)) {
+ // named pipe
+ return val;
+ }
+
+ if (port >= 0) {
+ // port number
+ return port;
+ }
+
+ return false;
+ }
+
+ /**
+ * Event listener for HTTP server "error" event.
+ */
+ function onError(error) {
+ if (error.syscall !== 'listen') {
+ throw error;
+ }
+
+ var bind = typeof port === 'string'
+ ? 'Pipe ' + port
+ : 'Port ' + port;
+
+ // handle specific listen errors with friendly messages
+ switch (error.code) {
+ case 'EACCES':
+ console.error(bind + ' requires elevated privileges');
+ process.exit(1);
+ break;
+ case 'EADDRINUSE':
+ console.error(bind + ' is already in use');
+ process.exit(1);
+ break;
+ default:
+ throw error;
+ }
+ }
+
+ /**
+ * Event listener for HTTP server "listening" event.
+ */
+ function onListening() {
+ var addr = server.address();
+ var bind = typeof addr === 'string'
+ ? 'pipe ' + addr
+ : 'port ' + addr.port;
+
+ debug('Listening on ' + bind);
+ }
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1c6280ee/modules/control-center-web/src/main/js/config/default.json
----------------------------------------------------------------------
diff --cc modules/control-center-web/src/main/js/config/default.json
index 0000000,72dbd4e..f7f7a02
mode 000000,100644..100644
--- a/modules/control-center-web/src/main/js/config/default.json
+++ b/modules/control-center-web/src/main/js/config/default.json
@@@ -1,0 -1,8 +1,17 @@@
+ {
+ "express": {
+ "port": 3000
+ },
+ "mongoDB": {
+ "url": "mongodb://localhost/web-control-center"
++ },
++ "monitor": {
++ "server": {
++ "port": 3001,
++ "ssl": true,
++ "key": "keys/test.key",
++ "cert": "keys/test.crt",
++ "keyPassphrase": "password"
++ }
+ }
-}
++}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1c6280ee/modules/control-center-web/src/main/js/package.json
----------------------------------------------------------------------
diff --cc modules/control-center-web/src/main/js/package.json
index 0000000,fd82196..57be345
mode 000000,100644..100644
--- a/modules/control-center-web/src/main/js/package.json
+++ b/modules/control-center-web/src/main/js/package.json
@@@ -1,0 -1,49 +1,52 @@@
+ {
+ "name": "ignite-web-control-center",
+ "version": "1.0.0",
+ "description": "Web application for configuration, monitoring Ignite Cluster",
+ "private": true,
+ "scripts": {
+ "start": "node ./bin/www"
+ },
+ "author": "",
+ "contributors": [
+ {
+ "name": "",
+ "email": ""
+ }
+ ],
+ "license": "Apache-2.0",
+ "keywords": "grid",
+ "homepage": "https://ignite.incubator.apache.org/",
+ "engines": {
+ "node": ">=0.12.4"
+ },
+ "dependencies": {
+ "angular-ui-ace": "^0.2.3",
+ "archiver": "^0.14.4",
+ "body-parser": "~1.12.0",
+ "connect-flash": "^0.1.1",
+ "connect-mongo": "^0.8.1",
+ "cookie-parser": "~1.3.4",
+ "debug": "~2.1.1",
+ "express": "~4.12.2",
+ "express-session": "^1.11.1",
+ "jade": "~1.9.2",
+ "lodash": "3.10.0",
+ "mongoose": "^4.0.2",
+ "mongoose-deep-populate": "1.1.0",
+ "nconf": "^0.7.1",
+ "node-sass-middleware": "^0.9.0",
+ "passport": "^0.2.1",
+ "passport-local": "^1.0.0",
+ "passport-local-mongoose": "^1.0.0",
- "serve-favicon": "~2.2.0"
++ "pg": "^4.4.0",
++ "serve-favicon": "~2.2.0",
++ "util": "^0.10.3",
++ "ws": "~0.7.2"
+ },
+ "devDependencies": {
+ "morgan": "~1.5.1",
+ "supertest": "^1.0.1",
+ "mocha": "~2.0.1",
+ "should": "~3.1.3"
+ }
+ }