redis export function (commented out for now)

v1.18.x
Julian Lam 12 years ago
parent de1e3230f5
commit 1ae51ef5ea

@ -223,4 +223,26 @@ var utils = require('./../public/src/utils.js'),
});
}
};
Meta.db = {
getFile: function (callback) {
var multi = RDB.multi();
multi.config('get', 'dir');
multi.config('get', 'dbfilename');
multi.exec(function (err, results) {
if (err) {
return callback(err);
} else {
results = results.reduce(function (memo, config) {
memo[config[0]] = config[1];
return memo;
}, {});
var dbFile = path.join(results.dir, results.dbfilename);
callback(null, dbFile);
}
});
}
};
}(exports));

@ -4,9 +4,11 @@ var user = require('./../user.js'),
RDB = require('./../redis.js'),
pkg = require('./../../package.json'),
categories = require('./../categories.js'),
Meta = require('../meta'),
plugins = require('../plugins'),
winston = require('winston'),
nconf = require('nconf');
nconf = require('nconf'),
fs = require('fs');
(function (Admin) {
Admin.isAdmin = function (req, res, next) {
@ -153,31 +155,55 @@ var user = require('./../user.js'),
});
});
app.get('/redis', function (req, res) {
RDB.info(function (err, data) {
data = data.split("\r\n");
var finalData = {};
app.namespace('/redis', function () {
app.get('/', function (req, res) {
RDB.info(function (err, data) {
data = data.split("\r\n");
var finalData = {};
for (var i in data) {
for (var i in data) {
if (data[i].indexOf(':') == -1 || !data[i])
continue;
if (data[i].indexOf(':') == -1 || !data[i])
continue;
try {
data[i] = data[i].replace(/:/, "\":\"");
var json = "{\"" + data[i] + "\"}";
try {
data[i] = data[i].replace(/:/, "\":\"");
var json = "{\"" + data[i] + "\"}";
var jsonObject = JSON.parse(json);
for (var key in jsonObject) {
finalData[key] = jsonObject[key];
var jsonObject = JSON.parse(json);
for (var key in jsonObject) {
finalData[key] = jsonObject[key];
}
} catch (err) {
winston.warn('can\'t parse redis status variable, ignoring', i, data[i], err);
}
} catch (err) {
winston.warn('can\'t parse redis status variable, ignoring', i, data[i], err);
}
}
res.json(finalData);
res.json(finalData);
});
});
// app.get('/export', Admin.isAdmin, function (req, res) {
// Meta.db.getFile(function (err, dbFile) {
// if (!err) {
// res.download(dbFile, 'redis.rdb', function (err) {
// console.log(err);
// res.send(500);
// if (err) {
// res.send(500);
// switch (err.code) {
// case 'EACCES':
// res.send(500, 'Require permissions from Redis database file: ', dbFile);
// break;
// default:
// res.send(500);
// break;
// }
// }
// });
// } else res.send(500);
// });
// });
});
app.get('/plugins', function (req, res) {

Loading…
Cancel
Save