123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- package controllers
- import (
- "encoding/json"
- "github.com/astaxie/beego/orm"
- "server/models"
- nginx2 "server/nginx"
- )
- type ServerController struct {
- BaseController
- }
- // Get getAllServers
- func (c *ServerController) Get() {
- id, err := c.GetInt("id", 0)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- o := orm.NewOrm()
- server := models.ServerHost{Id: id}
- err = o.Read(&server)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- c.setData(server).json()
- }
- // Post add or update nginx instance
- func (c *ServerController) Post() {
- var server models.ServerHost
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &server)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- o := orm.NewOrm()
- var saveErr error
- if server.Id > 0 {
- tmp := models.ServerHost{Id: server.Id}
- err := o.Read(&tmp, "last_name")
- if err == nil {
- server.LastName = tmp.LastName
- server.ServerConf = tmp.ServerConf
- }
- _, saveErr = o.Update(&server)
- } else {
- _, saveErr = o.Insert(&server)
- }
- if saveErr != nil {
- c.ErrorJson(saveErr)
- } else {
- c.setData(server).json()
- }
- }
- // Delete add or update nginx instance
- func (c *ServerController) Delete() {
- var server models.ServerHost
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &server)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- o := orm.NewOrm()
- err = o.Read(&server)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- nginx := models.Nginx{Id: server.NginxId}
- err = o.Read(&nginx)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- ins := nginx2.GetInstance(&nginx)
- server.Enable = false
- err = ins.RefreshServer(server)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- delServer := models.ServerHost{Id: server.Id}
- _, err = o.Delete(&delServer)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- c.setData("success").json()
- }
- // Refresh check and refresh to disk
- func (c *ServerController) Refresh() {
- var postData models.ServerHost
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &postData)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- o := orm.NewOrm()
- _, err = o.Update(&postData)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- var nginx = models.Nginx{Id: postData.NginxId}
- err = o.Read(&nginx)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- ins := nginx2.GetInstance(&nginx)
- err = ins.RefreshServer(postData)
- if err != nil {
- c.ErrorJson(err)
- return
- }
- postData.LastName = postData.Name
- _, _ = o.Update(&postData)
- c.setData(true).json()
- }
|