refactor ssh

This commit is contained in:
jysperm
2014-11-09 01:35:04 +08:00
parent 1ab40bb022
commit b4d58de6d9
3 changed files with 27 additions and 13 deletions

View File

@@ -4,25 +4,19 @@
module.exports = exports = express.Router()
ssh = require './ssh'
exports.use requireInService 'ssh'
exports.post '/update_password', (req, res) ->
unless /^.+$/.test req.body.password
return res.error 'invalid_password'
chpasswd = child_process.spawn 'sudo', ['chpasswd']
chpasswd.stdin.end "#{req.account.username}:#{req.body.password}"
chpasswd.on 'error', logger.error
chpasswd.on 'exit', ->
ssh.updatePassword req.account, req.body.password, ->
res.json {}
exports.post '/kill', (req, res) ->
pid = parseInt req.body.pid
child_process.exec "sudo su #{req.account.username} -c 'kill #{pid}'", (err) ->
logger.error err if err
cache.delete 'linux.getProcessList', ->
res.json {}
ssh.killProcess req.account, pid, ->
res.json {}

18
plugin/ssh/ssh.coffee Normal file
View File

@@ -0,0 +1,18 @@
{child_process} = app.libs
{cache, logger} = app
exports.updatePassword = (account, password, callback) ->
chpasswd = child_process.spawn 'sudo', ['chpasswd']
chpasswd.stdin.end "#{account.username}:#{password}"
chpasswd.on 'error', logger.error
chpasswd.on 'exit', ->
callback()
exports.killProcess = (account, pid, callback) ->
child_process.exec "sudo su #{account.username} -c 'kill #{pid}'", (err) ->
logger.error err if err
cache.delete 'linux.getProcessList', ->
callback()

View File

@@ -12,7 +12,9 @@ exports.registerHook 'view.panel.scripts',
exports.registerHook 'view.panel.widgets',
generator: (req, callback) ->
exports.render 'widget', req, {}, callback
exports.render 'widget', req,
programSummary: supervisor.programSummary
, callback
exports.registerServiceHook 'enable',
filter: (req, callback) ->