nginx modify site

This commit is contained in:
jysperm
2014-06-29 12:23:54 +08:00
parent 35dcf80610
commit 360de90f99
3 changed files with 63 additions and 3 deletions

View File

@@ -40,6 +40,9 @@ sample =
phpfpm:
is_enbale: false
nginx:
sites: []
resources_limit:
cpu: 144
storage: 520

View File

@@ -19,4 +19,5 @@ Exception:
* not_in_service
* invalid_action
* invalid_type
* forbidden

View File

@@ -25,6 +25,9 @@ sample =
fastcgi_pass: 'unix:///home/user/phpfpm.sock'
fastcgi_index: ['index.php']
assertJsonConfig = (config) ->
exports.use (req, res, next) ->
req.inject [requestAuthenticate], ->
unless 'nginx' in req.account.attribute.services
@@ -36,7 +39,60 @@ exports.post '/update_site/', (req, res) ->
unless req.body.action in ['create', 'update', 'delete']
return res.error 'invalid_action'
if req.body.type == 'json'
checkSite = (callback) ->
if req.body.action == 'create'
callback null
else
mAccount.findOne
'attribute.plugin.nginx.sites._id': new ObjectID req.body.id
, (err, account) ->
if account?._id.toString() == req.account._id.toString()
callback null
else
callback true
else
return res.json 'invalid_type'
checkSiteConfig = (callback) ->
unless req.body.action == 'delete'
if req.body.type == 'json'
err = assertJsonConfig req.body.config
if err
callback err
else
callback null
else
callback 'invalid_type'
else
callback null
checkSite (err) ->
if err
return res.error 'forbidden'
checkSiteConfig (err) ->
if err
return res.json err
removeSite = (callback) ->
mAccount.update _id: account._id,
$pull:
'attribute.plugin.nginx.sites': new ObjectID req.body.id
, callback
addSite = (callback) ->
mAccount.update _id: req.account._id,
$push:
'attribute.plugin.nginx.sites': req.body.config
, callback
execModification = (callback) ->
if req.body.action = 'create'
addSite callback
else if req.body.action = 'update'
removeSite ->
addSite callback
else if req.body.action = 'delete'
removeSite callback
execModification ->
res.json {}