This repository has been archived by the owner on Jan 6, 2022. It is now read-only.
/
service.go
120 lines (108 loc) · 2.94 KB
/
service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package controllers
import (
"encoding/json"
"github.com/golang/glog"
"k8s/models"
"k8s/models/service"
)
// CreateService struct
type CreateService struct {
baseController
}
// GetService struct
type GetService struct {
baseController
}
// DeleteService struct
type DeleteService struct {
baseController
}
// Post to delete the specify service.
// /v1/service/delete
// @Title Delete a Service
// @Description Delete a Service
// @Param service body models.Delete true
// @Success 200 {object} models.Response
// @Failure 400 "连接超时"
// @Failure 500 "内部服务器错误"
// @router /delete [post]
func (d *DeleteService) Post() {
defer d.catchException()
glog.V(2).Infof("delete a Service URL[%s] body[%s]\n", d.Ctx.Input.URI(), string(d.Ctx.Input.RequestBody))
req := models.Delete{}
if err := json.Unmarshal(d.Ctx.Input.RequestBody, &req); err != nil {
d.badRequest(models.Error{Error: err.Error()})
return
}
if len(req.Name) == 0 {
d.badRequest(models.Error{Error: "名称为空"})
return
}
if code, err := service.DeleteService(&req); err != nil {
d.customError(models.Error{Error: err.Error()}, code)
return
}
d.success(models.Response{Action: "delete service successs", Status: "success"})
return
}
// Post create a new Service.
// /v1/service/create
// @Title Create a Service
// @Description Create a Service
// @Param service body models.Service true
// @Success 200 {object} models.Response
// @Failure 400 连接超时
// @Failure 500 内部服务器错误
// @router /create [post]
func (d *CreateService) Post() {
defer d.catchException()
glog.V(2).Infof("add a service URL[%s] body[%s]\n", d.Ctx.Input.URI(), string(d.Ctx.Input.RequestBody))
req := models.Service{}
if err := json.Unmarshal(d.Ctx.Input.RequestBody, &req); err != nil {
d.badRequest(models.Error{Error: err.Error()})
return
}
if len(req.Name) == 0 {
d.badRequest(models.Error{Error: "名称为空"})
return
}
if len(req.Namespace) == 0 {
d.badRequest(models.Error{Error: "命名空间为空"})
return
}
if code, err := service.AddService(&req); err != nil {
d.customError(models.Error{Error: err.Error()}, code)
return
}
d.success(models.Response{Action: "add service successs", Status: "success"})
return
}
// @router /create [get]
func (c *CreateService) Get() {
if c.GetSession("username") == "root" {
c.TplName = "createservice.html"
} else {
c.TplName = "404.html"
}
}
// Get to get all service's information.
// /v1/service/getinfo
// @Title Get Services information
// @Description Get Service information
// @Success 200 {object} models.Response
// @Failure 400 "连接超时"
// @Failure 500 "内部服务器错误"
// @router /getjson [get]
func (c *GetService) Getjson() {
serviceinfo := service.GetServiceinfo()
c.Data["json"] = serviceinfo
c.ServeJSON()
}
// @router /getinfo [get]
func (c *GetService) Get() {
if c.GetSession("username") == "root" {
c.TplName = "getservice.html"
} else {
c.TplName = "404.html"
}
}