diff --git a/admin/admin b/admin/admin index e95d37bf0..1f2ba66f8 100755 --- a/admin/admin +++ b/admin/admin @@ -30,38 +30,6 @@ function exit(error) { process.exit(error ? 1 : 0); } -function logsFromCloudron(ip, fileName, tail) { - assert.strictEqual(typeof ip, 'string'); - assert.strictEqual(typeof fileName, 'string'); - assert.strictEqual(typeof tail, 'boolean'); - - console.log('Fetching logs from'.bold, ip.cyan); - - var options = { - hostname: ip, - port: 886, - path: util.format('/api/v1/installer/logs?filename=%s&tail=%s', fileName, tail), - method: 'GET', - key: fs.readFileSync(path.join(__dirname, '../../keys/installer/server.key')), - cert: fs.readFileSync(path.join(__dirname, '../../keys/installer/server.crt')), - ca: fs.readFileSync(path.join(__dirname, '../../keys/installer_ca/ca.crt')), - rejectUnauthorized: false - }; - - var req = https.request(options, function (res) { - res.setEncoding('utf8'); - res.on('data', function (chunk) { - process.stdout.write(chunk); - }); - }); - - req.on('error', function (error) { - exit(error); - }); - - req.end(); -} - function triggerBackup(ip) { assert.strictEqual(typeof ip, 'string'); @@ -180,16 +148,6 @@ function ssh(ip) { process.stdin.resume(); } -function logs(options) { - var fileName = '/var/log/supervisor/box.log'; - - if (options.installer) fileName = '/var/log/cloudron/installserver.log'; - if (options.nginxAccess) fileName = '/var/log/nginx/access.log'; - if (options.nginxError) fileName = '/var/log/nginx/error.log'; - - logsFromCloudron(options.ip, fileName, !!options.tail); -} - function backup(options) { triggerBackup(options.ip); } @@ -201,16 +159,6 @@ program.command('ssh') .description('SSH to cloudron') .action(ssh); -program.command('logs') - .description('Fetch logs by filename') - .option('--ip ', 'Cloudron IP') - .option('-f, --tail', 'tail the logs') - .option('--installer', 'installer logs') - .option('--nginx-error', 'nginx error logs') - .option('--nginx-access', 'nginx access logs') - .option('--box', 'box logs [default]') - .action(logs); - program.command('hotfix') .description('Hotfix a cloudron') .option('--ip ', 'Cloudron IP') diff --git a/src/server.js b/src/server.js index 7d618c4ee..8119e98dd 100755 --- a/src/server.js +++ b/src/server.js @@ -77,39 +77,6 @@ function retire(req, res, next) { next(new HttpSuccess(202, {})); } -function logs(req, res, next) { - if (!req.query.filename) return next(new HttpError(400, 'No filename provided')); - var tail = req.query.tail === 'true'; - var stream = null; - - var stat = safe.fs.statSync(req.query.filename); - - if (!stat) return res.status(404).send('Not found'); - - if (tail) { - var tailStreamOptions = { - beginAt: 'end', - onMove: 'follow', - detectTruncate: true, - onTruncate: 'end', - endOnError: true - }; - - stream = safe(function () { return ts.createReadStream(req.query.filename, tailStreamOptions); }); - stream.destroy = stream.end; // tail-stream closes it's watchers with this special API - } else { - stream = fs.createReadStream(req.query.filename); - res.set('content-length', stat.size); - } - - if (!stream) return res.status(404).send(safe.error.message); - - stream.on('error', function (error) { res.write(error.message); res.end(); }); - res.on('close', function () { stream.destroy(); }); - res.status(200); - stream.pipe(res); -} - function backup(req, res, next) { // !! below port has to be in sync with box/config.js internalPort superagent.post('http://127.0.0.1:3001/api/v1/backup').end(function (error, result) { @@ -158,7 +125,6 @@ function startProvisionServer(callback) { .use(lastMile()); router.post('/api/v1/installer/retire', retire); - router.get ('/api/v1/installer/logs', logs); router.post('/api/v1/installer/backup', backup); var caPath = path.join(__dirname, process.env.NODE_ENV === 'test' ? '../../keys/installer_ca' : 'certs');