提交 d741f24e 编写于 作者: 7 710leo

Not allowed same collect name in same nodepath

上级 22489f2d
......@@ -458,10 +458,42 @@ func GetCollectById(collectType string, cid int64) (interface{}, error) {
}
}
func GetCollectByName(collectType string, name string) (interface{}, error) {
var collect interface{}
_, err := DB["mon"].Table(collectType+"_collect").Where("name = ?", name).Get(&collect)
return collect, err
func GetCollectByNameAndNid(collectType string, name string, nid int64) (interface{}, error) {
switch collectType {
case "port":
collect := new(PortCollect)
has, err := DB["mon"].Where("name = ? and nid = ?", name, nid).Get(collect)
if !has {
return nil, err
}
return collect, err
case "proc":
collect := new(ProcCollect)
has, err := DB["mon"].Where("name = ? and nid = ?", name, nid).Get(collect)
if !has {
return nil, err
}
return collect, err
case "log":
collect := new(LogCollect)
has, err := DB["mon"].Where("name = ? and nid = ?", name, nid).Get(collect)
if !has {
return nil, err
}
collect.Decode()
return collect, err
case "plugin":
collect := new(PluginCollect)
has, err := DB["mon"].Where("name = ? and nid = ?", name, nid).Get(collect)
if !has {
return nil, err
}
return collect, err
default:
return nil, fmt.Errorf("采集类型不合法")
}
return nil, nil
}
func DeleteCollectById(collectType, creator string, cid int64) error {
......
......@@ -48,10 +48,12 @@ func collectPost(c *gin.Context) {
nid := collect.Nid
name := collect.Name
old, _ := model.GetCollectByName(obj.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid {
old, err := model.GetCollectByNameAndNid(obj.Type, name, nid)
errors.Dangerous(err)
if old != nil {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
errors.Dangerous(model.CreateCollect(obj.Type, creator, collect))
case "proc":
......@@ -73,8 +75,9 @@ func collectPost(c *gin.Context) {
nid := collect.Nid
name := collect.Name
old, _ := model.GetCollectByName(obj.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid {
old, err := model.GetCollectByNameAndNid(obj.Type, name, nid)
errors.Dangerous(err)
if old != nil {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
errors.Dangerous(model.CreateCollect(obj.Type, creator, collect))
......@@ -98,10 +101,12 @@ func collectPost(c *gin.Context) {
nid := collect.Nid
name := collect.Name
old, _ := model.GetCollectByName(obj.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid {
old, err := model.GetCollectByNameAndNid(obj.Type, name, nid)
errors.Dangerous(err)
if old != nil {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
errors.Dangerous(model.CreateCollect(obj.Type, creator, collect))
case "plugin":
......@@ -123,10 +128,12 @@ func collectPost(c *gin.Context) {
nid := collect.Nid
name := collect.Name
old, _ := model.GetCollectByName(obj.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid {
old, err := model.GetCollectByNameAndNid(obj.Type, name, nid)
errors.Dangerous(err)
if old != nil {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
errors.Dangerous(model.CreateCollect(obj.Type, creator, collect))
default:
......@@ -208,9 +215,9 @@ func collectPut(c *gin.Context) {
collect.Creator = creator
collect.LastUpdator = creator
old, _ := model.GetCollectByName(recv.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid &&
tmpId != collect.Id {
old, err := model.GetCollectByNameAndNid(recv.Type, name, nid)
errors.Dangerous(err)
if old != nil && old.(*model.PortCollect).Id != tmpId {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
......@@ -247,9 +254,9 @@ func collectPut(c *gin.Context) {
collect.Creator = creator
collect.LastUpdator = creator
old, _ := model.GetCollectByName(recv.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid &&
tmpId != collect.Id {
old, err := model.GetCollectByNameAndNid(recv.Type, name, nid)
errors.Dangerous(err)
if old != nil && old.(*model.ProcCollect).Id != tmpId {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
......@@ -287,9 +294,9 @@ func collectPut(c *gin.Context) {
collect.Creator = creator
collect.LastUpdator = creator
old, _ := model.GetCollectByName(recv.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid &&
tmpId != collect.Id {
old, err := model.GetCollectByNameAndNid(recv.Type, name, nid)
errors.Dangerous(err)
if old != nil && old.(*model.LogCollect).Id != tmpId {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
......@@ -326,9 +333,9 @@ func collectPut(c *gin.Context) {
collect.Creator = creator
collect.LastUpdator = creator
old, _ := model.GetCollectByName(recv.Type, name)
if old != nil && int64(old.(map[string]interface{})["nid"].(float64)) == nid &&
tmpId != collect.Id {
old, err := model.GetCollectByNameAndNid(recv.Type, name, nid)
errors.Dangerous(err)
if old != nil && old.(*model.PluginCollect).Id != tmpId {
errors.Bomb("同节点下策略名称 %s 已存在", name)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册