From 79323b34713ecf2f4bc39997d3b26810208d2208 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Tue, 20 Jun 2023 09:33:32 +0800 Subject: [PATCH] add utils/command.go getpackageversion() --- gala-ops/server/utils/command.go | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 gala-ops/server/utils/command.go diff --git a/gala-ops/server/utils/command.go b/gala-ops/server/utils/command.go new file mode 100644 index 00000000..533ff371 --- /dev/null +++ b/gala-ops/server/utils/command.go @@ -0,0 +1,43 @@ +package utils + +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" +) + +// 获取业务机集群gala-gopher版本信息 +func GetPackageVersion(machines []*database.AopsDepolyStatus, batch *common.Batch, cmd string) ([]*database.AopsDepolyStatus, error) { + cmdresults, err := agentmanager.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 == "" { + logger.Error("%s not installed happened when getpackageversion: %s, %s, %s; ", "gala-gopher", result.MachineUUID, result.MachineIP, result.Stderr) + continue + } else if result.RetCode == 127 && result.Stdout == "" && strings.Contains(result.Stderr, "command not found") { + logger.Error("rpm not installed when getpackageversion: %s, %s, %s", result.MachineUUID, result.MachineIP, result.Stderr) + continue + } else if result.RetCode == 0 && len(result.Stdout) > 0 && result.Stderr == "" { + reader := strings.NewReader(result.Stdout) + v, err := 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 + } + for _, m := range machines { + if m.UUID == result.MachineUUID { + m.Gopher_version = v + } + } + } else { + logger.Error("failed to run command: %s in %s, %s, %s when getpackageversion", "rpm -qi gala-gopher", result.MachineUUID, result.MachineIP, result.Stderr) + continue + } + } + return machines, nil + } + return nil, err +} -- Gitee