Skip to content

Commit 10e393a

Browse files
committed
add server version and fcv to report
1 parent 4f62e0c commit 10e393a

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

sdk/util.go

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/percona/percona-backup-mongodb/pbm/lock"
1616
"github.com/percona/percona-backup-mongodb/pbm/log"
1717
"github.com/percona/percona-backup-mongodb/pbm/topo"
18+
"github.com/percona/percona-backup-mongodb/pbm/version"
1819
)
1920

2021
type (
@@ -111,12 +112,14 @@ func FindCommandIDByName(ctx context.Context, c *Client, name string) (CommandID
111112
}
112113

113114
type DiagnosticReport struct {
114-
ClusterTime primitive.Timestamp `json:"cluster_time" bson:"cluster_time"`
115-
Command *Command `json:"command" bson:"command"`
116-
Members []topo.Shard `json:"replsets" bson:"replsets"`
117-
Agents []AgentStatus `json:"agents" bson:"agents"`
118-
Locks []lock.LockData `json:"locks,omitempty" bson:"locks,omitempty"`
119-
OpLocks []lock.LockData `json:"op_locks,omitempty" bson:"op_locks,omitempty"`
115+
ClusterTime primitive.Timestamp `json:"cluster_time" bson:"cluster_time"`
116+
ServerVersion string `json:"server_version" bson:"server_version"`
117+
FCV string `json:"fcv" bson:"fcv"`
118+
Command *Command `json:"command" bson:"command"`
119+
Members []topo.Shard `json:"replsets" bson:"replsets"`
120+
Agents []AgentStatus `json:"agents" bson:"agents"`
121+
Locks []lock.LockData `json:"locks,omitempty" bson:"locks,omitempty"`
122+
OpLocks []lock.LockData `json:"op_locks,omitempty" bson:"op_locks,omitempty"`
120123
}
121124

122125
func Diagnostic(ctx context.Context, c *Client, cid CommandID) (*DiagnosticReport, error) {
@@ -127,8 +130,19 @@ func Diagnostic(ctx context.Context, c *Client, cid CommandID) (*DiagnosticRepor
127130
if err != nil {
128131
return nil, errors.Wrap(err, "get cluster time")
129132
}
130-
rv.Command, err = c.CommandInfo(ctx, cid)
133+
serVer, err := version.GetMongoVersion(ctx, c.conn.MongoClient())
134+
if err != nil {
135+
return nil, errors.Wrap(err, "get server version")
136+
}
137+
rv.ServerVersion = serVer.String()
138+
139+
rv.FCV, err = version.GetFCV(ctx, c.conn.MongoClient())
131140
if err != nil {
141+
return nil, errors.Wrap(err, "get fcv")
142+
}
143+
144+
rv.Command, err = c.CommandInfo(ctx, cid)
145+
if err != nil && !errors.Is(err, ErrNotFound) {
132146
return nil, errors.Wrap(err, "get command info")
133147
}
134148
rv.Members, err = topo.ClusterMembers(ctx, c.conn.MongoClient())

0 commit comments

Comments
 (0)