diff --git a/configmanage/server/controller/repo.go b/configmanage/server/controller/repo.go new file mode 100644 index 0000000000000000000000000000000000000000..0d6bf78d7f054715a2b704ea69c8db61b4bc23ef --- /dev/null +++ b/configmanage/server/controller/repo.go @@ -0,0 +1,44 @@ +package controller + +import ( + "gitee.com/openeuler/PilotGo/sdk/response" + "github.com/gin-gonic/gin" + "github.com/google/uuid" + "openeuler.org/PilotGo/configmanage-plugin/global" + "openeuler.org/PilotGo/configmanage-plugin/service" +) + +func AddRepoHandler(c *gin.Context) { + //TODO:query 类型需要转变 + var query int + err := c.ShouldBind(query) + if err != nil { + response.Fail(c, gin.H{"status": false}, err.Error()) + return + } + + uuid := uuid.New().String() + config := &service.RepoConfig{ + UUID: uuid, + } + err = config.Record() + if err != nil { + response.Fail(c, gin.H{"status": false}, err.Error()) + return + } + + ci := service.ConfigInstance{ + UUID: uuid, + Type: global.Repo, + Description: "", + BatchIds: []uint{}, + DepartIds: []int{}, + UUIDS: []string{}, + Config: config, + } + err = ci.Record() + if err != nil { + response.Fail(c, gin.H{"status": false}, err.Error()) + return + } +} diff --git a/configmanage/server/service/configinstance.go b/configmanage/server/service/configinstance.go index cf0267886ae93d0b7e5e9aa24a617c46d263e18c..dbf5a5c719da2a789a1a3999057a6b3f67da4f30 100644 --- a/configmanage/server/service/configinstance.go +++ b/configmanage/server/service/configinstance.go @@ -4,7 +4,6 @@ import ( "strconv" "gitee.com/openeuler/PilotGo/sdk/logger" - "github.com/google/uuid" "openeuler.org/PilotGo/configmanage-plugin/internal" ) @@ -14,8 +13,9 @@ type ConfigInstance struct { BatchIds []uint `json:"batchids"` DepartIds []int `json:"departids"` UUIDS []string `json:"uuids"` + UUID string - Config *Config + Config Config } type Config interface { @@ -33,20 +33,27 @@ type ConfigInfo = internal.ConfigInfo type ConfigFile = internal.ConfigFile type ConfigNode = internal.ConfigNode -func (ci *ConfigInstance) Record() (string, error) { +type ConfigResult struct { + ConfigInfo + BatchIds []uint + DepartIds []int + UUIDS []string +} + +func (ci *ConfigInstance) Record() error { cm := ConfigInfo{ - UUID: uuid.New().String(), + UUID: ci.UUID, Type: ci.Type, Description: ci.Description, } err := cm.Add() if err != nil { - return cm.UUID, err + return err } for _, v := range ci.BatchIds { cn := ConfigNode{ - ConfigInfoUUID: cm.UUID, + ConfigInfoUUID: ci.UUID, NodeId: "b" + strconv.Itoa(int(v)), } err := cn.Add() @@ -58,7 +65,7 @@ func (ci *ConfigInstance) Record() (string, error) { for _, v := range ci.DepartIds { cn := ConfigNode{ - ConfigInfoUUID: cm.UUID, + ConfigInfoUUID: ci.UUID, NodeId: "d" + strconv.Itoa(v), } err := cn.Add() @@ -70,7 +77,7 @@ func (ci *ConfigInstance) Record() (string, error) { for _, v := range ci.UUIDS { cn := ConfigNode{ - ConfigInfoUUID: cm.UUID, + ConfigInfoUUID: ci.UUID, NodeId: "n" + v, } err := cn.Add() @@ -79,5 +86,5 @@ func (ci *ConfigInstance) Record() (string, error) { continue } } - return cm.UUID, err + return err } diff --git a/configmanage/server/service/repo.go b/configmanage/server/service/repo.go index 87f02c5a051361dce5860a787e15eb74b0e20269..6aca34afbbea130080cc765644282bfa7de0935c 100644 --- a/configmanage/server/service/repo.go +++ b/configmanage/server/service/repo.go @@ -1,28 +1,19 @@ package service -import ( - "openeuler.org/PilotGo/configmanage-plugin/global" -) - type RepoConfig struct { - ConfigInstance ConfigInstance - Name string - File string + UUID string + Name string + File string } func (c *RepoConfig) Record() error { - c.ConfigInstance.Type = global.Repo - uuid, err := c.ConfigInstance.Record() - if err != nil { - return err - } cf := ConfigFile{ - ConfigInfoUUID: uuid, + ConfigInfoUUID: c.UUID, Name: c.Name, File: c.File, } - err = cf.Add() - return err + return cf.Add() + } func (c *RepoConfig) Load() error {