diff --git a/gala-ops/server/utils/command.go b/gala-ops/server/agentmanager/command.go similarity index 89% rename from gala-ops/server/utils/command.go rename to gala-ops/server/agentmanager/command.go index 533ff371edf56b24c7c4b76116f3d8f5d7874613..1351e925a816c92c655847e264e1ecf55c56f413 100644 --- a/gala-ops/server/utils/command.go +++ b/gala-ops/server/agentmanager/command.go @@ -1,17 +1,17 @@ -package utils +package agentmanager import ( "strings" "gitee.com/openeuler/PilotGo-plugins/sdk/common" "gitee.com/openeuler/PilotGo-plugins/sdk/logger" - "openeuler.org/PilotGo/gala-ops-plugin/agentmanager" "openeuler.org/PilotGo/gala-ops-plugin/database" + "openeuler.org/PilotGo/gala-ops-plugin/utils" ) // 获取业务机集群gala-gopher版本信息 func GetPackageVersion(machines []*database.AopsDepolyStatus, batch *common.Batch, cmd string) ([]*database.AopsDepolyStatus, error) { - cmdresults, err := agentmanager.Galaops.Sdkmethod.RunCommand(batch, cmd) + cmdresults, err := Galaops.Sdkmethod.RunCommand(batch, cmd) if err == nil { for _, result := range cmdresults { if result.RetCode == 1 && strings.Contains(result.Stdout, "is not installed") && result.Stderr == "" { @@ -22,7 +22,7 @@ func GetPackageVersion(machines []*database.AopsDepolyStatus, batch *common.Batc continue } else if result.RetCode == 0 && len(result.Stdout) > 0 && result.Stderr == "" { reader := strings.NewReader(result.Stdout) - v, err := ReadInfo(reader, `^Version.*`) + v, err := utils.ReadInfo(reader, `^Version.*`) if err != nil && len(v) != 0 { logger.Error("failed to read RPM package version when getpackageversion: %s, %s, %s", result.MachineUUID, result.MachineIP, result.Stderr) continue diff --git a/gala-ops/server/agentmanager/component.go b/gala-ops/server/agentmanager/component.go index 4aab178630d15d717b02e8c2bd9395ff64baa80e..74d530002d3810b4d7397e2d81761b1d090a7a9a 100644 --- a/gala-ops/server/agentmanager/component.go +++ b/gala-ops/server/agentmanager/component.go @@ -14,6 +14,7 @@ import ( "strings" "time" + "gitee.com/openeuler/PilotGo-plugins/sdk/common" "gitee.com/openeuler/PilotGo-plugins/sdk/plugin/client" "gitee.com/openeuler/PilotGo-plugins/sdk/utils/httputils" "openeuler.org/PilotGo/gala-ops-plugin/database" @@ -159,3 +160,29 @@ func (o *Opsclient) GetMachineList() ([]*database.AopsDepolyStatus, error) { return results, nil } + +func (o *Opsclient) DeployStatusCheck() error { + machines, err := Galaops.GetMachineList() + if err != nil { + return err + } + + batch := &common.Batch{} + for _, m := range machines { + batch.MachineUUIDs = append(batch.MachineUUIDs, m.UUID) + } + + // 获取业务机集群gala-gopher版本信息 + machines, err = GetPackageVersion(machines, batch, "rpm -qi gala-gopher") + if err != nil { + return err + } + + // 更新DB中业务机集群的信息 + dberr := database.GlobalDB.Save(&machines).Error + if dberr != nil { + return fmt.Errorf("failed to update table: %s", dberr.Error()) + } + + return nil +} diff --git a/gala-ops/server/main.go b/gala-ops/server/main.go index 81484f9a649b120c51eae042a99dfcf250b7c31f..3abe86880b4fce99b6f6dd2f47acf3698befae58 100644 --- a/gala-ops/server/main.go +++ b/gala-ops/server/main.go @@ -45,6 +45,12 @@ func main() { PromePlugin: nil, } + // 业务机集群aops组件状态自检 + err := agentmanager.Galaops.DeployStatusCheck() + if err != nil { + logger.Error(err.Error()) + } + // 临时自定义获取prometheus地址方式 promeplugin, err := agentmanager.Galaops.Getplugininfo(PluginClient.Server, "Prometheus") if err != nil { @@ -58,7 +64,7 @@ func main() { logger.Error("prometheus plugin is not running") } - // 向prometheus插件发送可视化插件json模板 TODO: prometheus plugin 注册接收jsonmode的路由 + // 向prometheus插件发送可视化插件json模板 TODO: prometheus plugin 实现接收jsonmode的接口 respbody, retcode, err := agentmanager.Galaops.SendJsonMode("/abc") if err != nil || retcode != 201 { logger.Error("failed to send jsonmode to prometheus plugin: ", respbody, retcode, err)