diff --git a/src/control/cmd/dmg/command_test.go b/src/control/cmd/dmg/command_test.go index 86891104f0c..0eb96613607 100644 --- a/src/control/cmd/dmg/command_test.go +++ b/src/control/cmd/dmg/command_test.go @@ -136,8 +136,6 @@ func (bci *bridgeConnInvoker) InvokeUnaryRPC(ctx context.Context, uReq control.U resp = control.MockMSResponse("", nil, &mgmtpb.SystemExcludeResp{}) case *control.SystemDrainReq: resp = control.MockMSResponse("", nil, &mgmtpb.SystemDrainResp{}) - case *control.SystemReintReq: - resp = control.MockMSResponse("", nil, &mgmtpb.SystemReintResp{}) case *control.SystemQueryReq: if req.FailOnUnavailable { resp = control.MockMSResponse("", system.ErrRaftUnavail, nil) diff --git a/src/control/cmd/dmg/pretty/system.go b/src/control/cmd/dmg/pretty/system.go index 8ade2e6243a..26271f309c3 100644 --- a/src/control/cmd/dmg/pretty/system.go +++ b/src/control/cmd/dmg/pretty/system.go @@ -222,7 +222,14 @@ func PrintSystemCleanupResponse(out io.Writer, resp *control.SystemCleanupResp, fmt.Fprintln(out, "System Cleanup Success") } -func printSysOsaResults(out io.Writer, results []*control.SystemOsaResult) { +// PrintPoolRankResults generates a table showing results of operations on pool ranks. Each row will +// indicate a result for a group of ranks on a pool. +func PrintPoolRankResults(out io.Writer, results []*control.PoolRankResult) { + if len(results) == 0 { + fmt.Fprintln(out, "No pool ranks processed") + return + } + titles := []string{"Pool", "Ranks", "Result", "Reason"} formatter := txtfmt.NewTableFormatter(titles...) @@ -245,23 +252,3 @@ func printSysOsaResults(out io.Writer, results []*control.SystemOsaResult) { fmt.Fprintln(out, formatter.Format(table)) } - -// PrintSystemDrainResponse generates a human-readable representation of the response's -// SystemOsaResults and writes it to the supplied io.Writer. -func PrintSystemDrainResponse(out io.Writer, resp *control.SystemDrainResp) { - if len(resp.Results) == 0 { - fmt.Fprintln(out, "No pool ranks drained") - return - } - printSysOsaResults(out, resp.Results) -} - -// PrintSystemReintResponse generates a human-readable representation of the response's -// SystemOsaResults and writes it to the supplied io.Writer. -func PrintSystemReintResponse(out io.Writer, resp *control.SystemReintResp) { - if len(resp.Results) == 0 { - fmt.Fprintln(out, "No pool ranks reintegrated") - return - } - printSysOsaResults(out, resp.Results) -} diff --git a/src/control/cmd/dmg/pretty/system_test.go b/src/control/cmd/dmg/pretty/system_test.go index 9a45ed6626e..66105cbf6bc 100644 --- a/src/control/cmd/dmg/pretty/system_test.go +++ b/src/control/cmd/dmg/pretty/system_test.go @@ -614,11 +614,11 @@ Unknown 3 hosts: foo[7-9] func TestPretty_printSysOsaResp(t *testing.T) { for name, tc := range map[string]struct { - results []*control.SystemOsaResult + results []*control.PoolRankResult expOut string }{ "normal response": { - results: []*control.SystemOsaResult{ + results: []*control.PoolRankResult{ {PoolID: test.MockUUID(1), Ranks: "0-3"}, {PoolID: test.MockUUID(2), Ranks: "1-4"}, }, @@ -631,7 +631,7 @@ Pool Ranks Result Reason `, }, "normal response; use labels": { - results: []*control.SystemOsaResult{ + results: []*control.PoolRankResult{ {PoolID: "label1", Ranks: "0-3"}, {PoolID: "label2", Ranks: "1-4"}, }, @@ -644,7 +644,7 @@ label2 1-4 OK - `, }, "response with failures": { - results: []*control.SystemOsaResult{ + results: []*control.PoolRankResult{ {PoolID: test.MockUUID(1), Ranks: "1-2"}, {PoolID: test.MockUUID(2), Ranks: "0"}, { @@ -664,7 +664,7 @@ Pool Ranks Result Reason } { t.Run(name, func(t *testing.T) { var out strings.Builder - printSysOsaResults(&out, tc.results) + PrintPoolRankResults(&out, tc.results) if diff := cmp.Diff(strings.TrimLeft(tc.expOut, "\n"), out.String()); diff != "" { t.Fatalf("unexpected stdout (-want, +got):\n%s\n", diff) diff --git a/src/control/cmd/dmg/system.go b/src/control/cmd/dmg/system.go index 06337269a7b..12a2caeb7e3 100644 --- a/src/control/cmd/dmg/system.go +++ b/src/control/cmd/dmg/system.go @@ -309,9 +309,13 @@ type systemDrainCmd struct { baseRankListCmd } -func (cmd *systemDrainCmd) Execute(_ []string) (errOut error) { +func (cmd *systemDrainCmd) execute(reint bool) (errOut error) { defer func() { - errOut = errors.Wrap(errOut, "system drain failed") + op := "drain" + if reint { + op = "reintegrate" + } + errOut = errors.Wrapf(errOut, "system %s failed", op) }() if err := cmd.validateHostsRanks(); err != nil { @@ -325,6 +329,7 @@ func (cmd *systemDrainCmd) Execute(_ []string) (errOut error) { req.SetSystem(cmd.config.SystemName) req.Hosts.Replace(&cmd.Hosts.HostSet) req.Ranks.Replace(&cmd.Ranks.RankSet) + req.Reint = reint resp, err := control.SystemDrain(cmd.MustLogCtx(), cmd.ctlInvoker, req) if err != nil { @@ -336,47 +341,22 @@ func (cmd *systemDrainCmd) Execute(_ []string) (errOut error) { } var out strings.Builder - pretty.PrintSystemDrainResponse(&out, resp) + pretty.PrintPoolRankResults(&out, resp.Results) cmd.Info(out.String()) return resp.Errors() } -type systemReintCmd struct { - baseRankListCmd +func (cmd *systemDrainCmd) Execute(_ []string) error { + return cmd.execute(false) } -func (cmd *systemReintCmd) Execute(_ []string) (errOut error) { - defer func() { - errOut = errors.Wrap(errOut, "system drain failed") - }() - - if err := cmd.validateHostsRanks(); err != nil { - return err - } - if cmd.Ranks.Count() == 0 && cmd.Hosts.Count() == 0 { - return errNoRanks - } - - req := new(control.SystemReintReq) - req.SetSystem(cmd.config.SystemName) - req.Hosts.Replace(&cmd.Hosts.HostSet) - req.Ranks.Replace(&cmd.Ranks.RankSet) - - resp, err := control.SystemReint(cmd.MustLogCtx(), cmd.ctlInvoker, req) - if err != nil { - return err // control api returned an error, disregard response - } - - if cmd.JSONOutputEnabled() { - return cmd.OutputJSON(resp, resp.Errors()) - } - - var out strings.Builder - pretty.PrintSystemReintResponse(&out, resp) - cmd.Info(out.String()) +type systemReintCmd struct { + systemDrainCmd +} - return resp.Errors() +func (cmd *systemReintCmd) Execute(_ []string) error { + return cmd.execute(true) } type systemCleanupCmd struct { diff --git a/src/control/cmd/dmg/system_test.go b/src/control/cmd/dmg/system_test.go index 80f25f3439c..e8b5cf4bc3d 100644 --- a/src/control/cmd/dmg/system_test.go +++ b/src/control/cmd/dmg/system_test.go @@ -289,7 +289,7 @@ func TestDmg_SystemCommands(t *testing.T) { "system reintegrate --rank-hosts foo-[0,1,4]", strings.Join([]string{ printRequest(t, withSystem( - withHosts(&control.SystemReintReq{}, "foo-[0-1,4]"), + withHosts(&control.SystemDrainReq{Reint: true}, "foo-[0-1,4]"), "daos_server")), }, " "), nil, @@ -299,7 +299,7 @@ func TestDmg_SystemCommands(t *testing.T) { "system reintegrate --ranks 0,1,4", strings.Join([]string{ printRequest(t, withSystem( - withRanks(&control.SystemReintReq{}, 0, 1, 4), + withRanks(&control.SystemDrainReq{Reint: true}, 0, 1, 4), "daos_server")), }, " "), nil, diff --git a/src/control/common/proto/mgmt/mgmt.pb.go b/src/control/common/proto/mgmt/mgmt.pb.go index 1a9702d7ade..6b8c8f86146 100644 --- a/src/control/common/proto/mgmt/mgmt.pb.go +++ b/src/control/common/proto/mgmt/mgmt.pb.go @@ -41,7 +41,7 @@ var file_mgmt_mgmt_proto_rawDesc = []byte{ 0x11, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x63, 0x68, 0x6b, 0x2f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x32, 0xfa, 0x15, 0x0a, 0x07, 0x4d, 0x67, 0x6d, 0x74, 0x53, 0x76, 0x63, 0x12, + 0x6f, 0x74, 0x6f, 0x32, 0xbc, 0x15, 0x0a, 0x07, 0x4d, 0x67, 0x6d, 0x74, 0x53, 0x76, 0x63, 0x12, 0x27, 0x0a, 0x04, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, @@ -142,86 +142,82 @@ var file_mgmt_mgmt_proto_rawDesc = []byte{ 0x69, 0x6e, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x69, 0x6e, 0x74, - 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x12, 0x14, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x12, 0x16, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, - 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x3b, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, - 0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, - 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, - 0x70, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, - 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x0e, + 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, + 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, + 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, + 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x4b, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, - 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, - 0x71, 0x1a, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, - 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, - 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x61, - 0x69, 0x72, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, - 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0d, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, - 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x11, 0x46, 0x61, 0x75, 0x6c, 0x74, - 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x10, 0x2e, 0x63, - 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x0e, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x34, 0x0a, 0x14, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x50, - 0x6f, 0x6f, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, - 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x18, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x61, 0x75, - 0x6c, 0x74, 0x12, 0x0a, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0e, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, - 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, - 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x3d, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x3f, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x3c, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, + 0x74, 0x6f, 0x70, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, + 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x41, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, + 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x3c, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x70, 0x61, 0x69, 0x72, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, + 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0d, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0d, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x11, 0x46, 0x61, 0x75, + 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x10, + 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x34, 0x0a, 0x14, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x2e, 0x63, 0x68, 0x6b, + 0x2e, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, + 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x18, 0x46, 0x61, 0x75, 0x6c, + 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x46, + 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, 0x61, 0x75, 0x6c, 0x74, + 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, + 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_mgmt_mgmt_proto_goTypes = []interface{}{ @@ -251,59 +247,57 @@ var file_mgmt_mgmt_proto_goTypes = []interface{}{ (*SystemStartReq)(nil), // 23: mgmt.SystemStartReq (*SystemExcludeReq)(nil), // 24: mgmt.SystemExcludeReq (*SystemDrainReq)(nil), // 25: mgmt.SystemDrainReq - (*SystemReintReq)(nil), // 26: mgmt.SystemReintReq - (*SystemEraseReq)(nil), // 27: mgmt.SystemEraseReq - (*SystemCleanupReq)(nil), // 28: mgmt.SystemCleanupReq - (*CheckEnableReq)(nil), // 29: mgmt.CheckEnableReq - (*CheckDisableReq)(nil), // 30: mgmt.CheckDisableReq - (*CheckStartReq)(nil), // 31: mgmt.CheckStartReq - (*CheckStopReq)(nil), // 32: mgmt.CheckStopReq - (*CheckQueryReq)(nil), // 33: mgmt.CheckQueryReq - (*CheckSetPolicyReq)(nil), // 34: mgmt.CheckSetPolicyReq - (*CheckGetPolicyReq)(nil), // 35: mgmt.CheckGetPolicyReq - (*CheckActReq)(nil), // 36: mgmt.CheckActReq - (*PoolUpgradeReq)(nil), // 37: mgmt.PoolUpgradeReq - (*SystemSetAttrReq)(nil), // 38: mgmt.SystemSetAttrReq - (*SystemGetAttrReq)(nil), // 39: mgmt.SystemGetAttrReq - (*SystemSetPropReq)(nil), // 40: mgmt.SystemSetPropReq - (*SystemGetPropReq)(nil), // 41: mgmt.SystemGetPropReq - (*chk.CheckReport)(nil), // 42: chk.CheckReport - (*chk.Fault)(nil), // 43: chk.Fault - (*JoinResp)(nil), // 44: mgmt.JoinResp - (*shared.ClusterEventResp)(nil), // 45: shared.ClusterEventResp - (*LeaderQueryResp)(nil), // 46: mgmt.LeaderQueryResp - (*PoolCreateResp)(nil), // 47: mgmt.PoolCreateResp - (*PoolDestroyResp)(nil), // 48: mgmt.PoolDestroyResp - (*PoolEvictResp)(nil), // 49: mgmt.PoolEvictResp - (*PoolExcludeResp)(nil), // 50: mgmt.PoolExcludeResp - (*PoolDrainResp)(nil), // 51: mgmt.PoolDrainResp - (*PoolExtendResp)(nil), // 52: mgmt.PoolExtendResp - (*PoolReintResp)(nil), // 53: mgmt.PoolReintResp - (*PoolQueryResp)(nil), // 54: mgmt.PoolQueryResp - (*PoolQueryTargetResp)(nil), // 55: mgmt.PoolQueryTargetResp - (*PoolSetPropResp)(nil), // 56: mgmt.PoolSetPropResp - (*PoolGetPropResp)(nil), // 57: mgmt.PoolGetPropResp - (*ACLResp)(nil), // 58: mgmt.ACLResp - (*GetAttachInfoResp)(nil), // 59: mgmt.GetAttachInfoResp - (*ListPoolsResp)(nil), // 60: mgmt.ListPoolsResp - (*ListContResp)(nil), // 61: mgmt.ListContResp - (*DaosResp)(nil), // 62: mgmt.DaosResp - (*SystemQueryResp)(nil), // 63: mgmt.SystemQueryResp - (*SystemStopResp)(nil), // 64: mgmt.SystemStopResp - (*SystemStartResp)(nil), // 65: mgmt.SystemStartResp - (*SystemExcludeResp)(nil), // 66: mgmt.SystemExcludeResp - (*SystemDrainResp)(nil), // 67: mgmt.SystemDrainResp - (*SystemReintResp)(nil), // 68: mgmt.SystemReintResp - (*SystemEraseResp)(nil), // 69: mgmt.SystemEraseResp - (*SystemCleanupResp)(nil), // 70: mgmt.SystemCleanupResp - (*CheckStartResp)(nil), // 71: mgmt.CheckStartResp - (*CheckStopResp)(nil), // 72: mgmt.CheckStopResp - (*CheckQueryResp)(nil), // 73: mgmt.CheckQueryResp - (*CheckGetPolicyResp)(nil), // 74: mgmt.CheckGetPolicyResp - (*CheckActResp)(nil), // 75: mgmt.CheckActResp - (*PoolUpgradeResp)(nil), // 76: mgmt.PoolUpgradeResp - (*SystemGetAttrResp)(nil), // 77: mgmt.SystemGetAttrResp - (*SystemGetPropResp)(nil), // 78: mgmt.SystemGetPropResp + (*SystemEraseReq)(nil), // 26: mgmt.SystemEraseReq + (*SystemCleanupReq)(nil), // 27: mgmt.SystemCleanupReq + (*CheckEnableReq)(nil), // 28: mgmt.CheckEnableReq + (*CheckDisableReq)(nil), // 29: mgmt.CheckDisableReq + (*CheckStartReq)(nil), // 30: mgmt.CheckStartReq + (*CheckStopReq)(nil), // 31: mgmt.CheckStopReq + (*CheckQueryReq)(nil), // 32: mgmt.CheckQueryReq + (*CheckSetPolicyReq)(nil), // 33: mgmt.CheckSetPolicyReq + (*CheckGetPolicyReq)(nil), // 34: mgmt.CheckGetPolicyReq + (*CheckActReq)(nil), // 35: mgmt.CheckActReq + (*PoolUpgradeReq)(nil), // 36: mgmt.PoolUpgradeReq + (*SystemSetAttrReq)(nil), // 37: mgmt.SystemSetAttrReq + (*SystemGetAttrReq)(nil), // 38: mgmt.SystemGetAttrReq + (*SystemSetPropReq)(nil), // 39: mgmt.SystemSetPropReq + (*SystemGetPropReq)(nil), // 40: mgmt.SystemGetPropReq + (*chk.CheckReport)(nil), // 41: chk.CheckReport + (*chk.Fault)(nil), // 42: chk.Fault + (*JoinResp)(nil), // 43: mgmt.JoinResp + (*shared.ClusterEventResp)(nil), // 44: shared.ClusterEventResp + (*LeaderQueryResp)(nil), // 45: mgmt.LeaderQueryResp + (*PoolCreateResp)(nil), // 46: mgmt.PoolCreateResp + (*PoolDestroyResp)(nil), // 47: mgmt.PoolDestroyResp + (*PoolEvictResp)(nil), // 48: mgmt.PoolEvictResp + (*PoolExcludeResp)(nil), // 49: mgmt.PoolExcludeResp + (*PoolDrainResp)(nil), // 50: mgmt.PoolDrainResp + (*PoolExtendResp)(nil), // 51: mgmt.PoolExtendResp + (*PoolReintResp)(nil), // 52: mgmt.PoolReintResp + (*PoolQueryResp)(nil), // 53: mgmt.PoolQueryResp + (*PoolQueryTargetResp)(nil), // 54: mgmt.PoolQueryTargetResp + (*PoolSetPropResp)(nil), // 55: mgmt.PoolSetPropResp + (*PoolGetPropResp)(nil), // 56: mgmt.PoolGetPropResp + (*ACLResp)(nil), // 57: mgmt.ACLResp + (*GetAttachInfoResp)(nil), // 58: mgmt.GetAttachInfoResp + (*ListPoolsResp)(nil), // 59: mgmt.ListPoolsResp + (*ListContResp)(nil), // 60: mgmt.ListContResp + (*DaosResp)(nil), // 61: mgmt.DaosResp + (*SystemQueryResp)(nil), // 62: mgmt.SystemQueryResp + (*SystemStopResp)(nil), // 63: mgmt.SystemStopResp + (*SystemStartResp)(nil), // 64: mgmt.SystemStartResp + (*SystemExcludeResp)(nil), // 65: mgmt.SystemExcludeResp + (*SystemDrainResp)(nil), // 66: mgmt.SystemDrainResp + (*SystemEraseResp)(nil), // 67: mgmt.SystemEraseResp + (*SystemCleanupResp)(nil), // 68: mgmt.SystemCleanupResp + (*CheckStartResp)(nil), // 69: mgmt.CheckStartResp + (*CheckStopResp)(nil), // 70: mgmt.CheckStopResp + (*CheckQueryResp)(nil), // 71: mgmt.CheckQueryResp + (*CheckGetPolicyResp)(nil), // 72: mgmt.CheckGetPolicyResp + (*CheckActResp)(nil), // 73: mgmt.CheckActResp + (*PoolUpgradeResp)(nil), // 74: mgmt.PoolUpgradeResp + (*SystemGetAttrResp)(nil), // 75: mgmt.SystemGetAttrResp + (*SystemGetPropResp)(nil), // 76: mgmt.SystemGetPropResp } var file_mgmt_mgmt_proto_depIdxs = []int32{ 0, // 0: mgmt.MgmtSvc.Join:input_type -> mgmt.JoinReq @@ -333,73 +327,71 @@ var file_mgmt_mgmt_proto_depIdxs = []int32{ 23, // 24: mgmt.MgmtSvc.SystemStart:input_type -> mgmt.SystemStartReq 24, // 25: mgmt.MgmtSvc.SystemExclude:input_type -> mgmt.SystemExcludeReq 25, // 26: mgmt.MgmtSvc.SystemDrain:input_type -> mgmt.SystemDrainReq - 26, // 27: mgmt.MgmtSvc.SystemReint:input_type -> mgmt.SystemReintReq - 27, // 28: mgmt.MgmtSvc.SystemErase:input_type -> mgmt.SystemEraseReq - 28, // 29: mgmt.MgmtSvc.SystemCleanup:input_type -> mgmt.SystemCleanupReq - 29, // 30: mgmt.MgmtSvc.SystemCheckEnable:input_type -> mgmt.CheckEnableReq - 30, // 31: mgmt.MgmtSvc.SystemCheckDisable:input_type -> mgmt.CheckDisableReq - 31, // 32: mgmt.MgmtSvc.SystemCheckStart:input_type -> mgmt.CheckStartReq - 32, // 33: mgmt.MgmtSvc.SystemCheckStop:input_type -> mgmt.CheckStopReq - 33, // 34: mgmt.MgmtSvc.SystemCheckQuery:input_type -> mgmt.CheckQueryReq - 34, // 35: mgmt.MgmtSvc.SystemCheckSetPolicy:input_type -> mgmt.CheckSetPolicyReq - 35, // 36: mgmt.MgmtSvc.SystemCheckGetPolicy:input_type -> mgmt.CheckGetPolicyReq - 36, // 37: mgmt.MgmtSvc.SystemCheckRepair:input_type -> mgmt.CheckActReq - 37, // 38: mgmt.MgmtSvc.PoolUpgrade:input_type -> mgmt.PoolUpgradeReq - 38, // 39: mgmt.MgmtSvc.SystemSetAttr:input_type -> mgmt.SystemSetAttrReq - 39, // 40: mgmt.MgmtSvc.SystemGetAttr:input_type -> mgmt.SystemGetAttrReq - 40, // 41: mgmt.MgmtSvc.SystemSetProp:input_type -> mgmt.SystemSetPropReq - 41, // 42: mgmt.MgmtSvc.SystemGetProp:input_type -> mgmt.SystemGetPropReq - 42, // 43: mgmt.MgmtSvc.FaultInjectReport:input_type -> chk.CheckReport - 43, // 44: mgmt.MgmtSvc.FaultInjectPoolFault:input_type -> chk.Fault - 43, // 45: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:input_type -> chk.Fault - 44, // 46: mgmt.MgmtSvc.Join:output_type -> mgmt.JoinResp - 45, // 47: mgmt.MgmtSvc.ClusterEvent:output_type -> shared.ClusterEventResp - 46, // 48: mgmt.MgmtSvc.LeaderQuery:output_type -> mgmt.LeaderQueryResp - 47, // 49: mgmt.MgmtSvc.PoolCreate:output_type -> mgmt.PoolCreateResp - 48, // 50: mgmt.MgmtSvc.PoolDestroy:output_type -> mgmt.PoolDestroyResp - 49, // 51: mgmt.MgmtSvc.PoolEvict:output_type -> mgmt.PoolEvictResp - 50, // 52: mgmt.MgmtSvc.PoolExclude:output_type -> mgmt.PoolExcludeResp - 51, // 53: mgmt.MgmtSvc.PoolDrain:output_type -> mgmt.PoolDrainResp - 52, // 54: mgmt.MgmtSvc.PoolExtend:output_type -> mgmt.PoolExtendResp - 53, // 55: mgmt.MgmtSvc.PoolReint:output_type -> mgmt.PoolReintResp - 54, // 56: mgmt.MgmtSvc.PoolQuery:output_type -> mgmt.PoolQueryResp - 55, // 57: mgmt.MgmtSvc.PoolQueryTarget:output_type -> mgmt.PoolQueryTargetResp - 56, // 58: mgmt.MgmtSvc.PoolSetProp:output_type -> mgmt.PoolSetPropResp - 57, // 59: mgmt.MgmtSvc.PoolGetProp:output_type -> mgmt.PoolGetPropResp - 58, // 60: mgmt.MgmtSvc.PoolGetACL:output_type -> mgmt.ACLResp - 58, // 61: mgmt.MgmtSvc.PoolOverwriteACL:output_type -> mgmt.ACLResp - 58, // 62: mgmt.MgmtSvc.PoolUpdateACL:output_type -> mgmt.ACLResp - 58, // 63: mgmt.MgmtSvc.PoolDeleteACL:output_type -> mgmt.ACLResp - 59, // 64: mgmt.MgmtSvc.GetAttachInfo:output_type -> mgmt.GetAttachInfoResp - 60, // 65: mgmt.MgmtSvc.ListPools:output_type -> mgmt.ListPoolsResp - 61, // 66: mgmt.MgmtSvc.ListContainers:output_type -> mgmt.ListContResp - 62, // 67: mgmt.MgmtSvc.ContSetOwner:output_type -> mgmt.DaosResp - 63, // 68: mgmt.MgmtSvc.SystemQuery:output_type -> mgmt.SystemQueryResp - 64, // 69: mgmt.MgmtSvc.SystemStop:output_type -> mgmt.SystemStopResp - 65, // 70: mgmt.MgmtSvc.SystemStart:output_type -> mgmt.SystemStartResp - 66, // 71: mgmt.MgmtSvc.SystemExclude:output_type -> mgmt.SystemExcludeResp - 67, // 72: mgmt.MgmtSvc.SystemDrain:output_type -> mgmt.SystemDrainResp - 68, // 73: mgmt.MgmtSvc.SystemReint:output_type -> mgmt.SystemReintResp - 69, // 74: mgmt.MgmtSvc.SystemErase:output_type -> mgmt.SystemEraseResp - 70, // 75: mgmt.MgmtSvc.SystemCleanup:output_type -> mgmt.SystemCleanupResp - 62, // 76: mgmt.MgmtSvc.SystemCheckEnable:output_type -> mgmt.DaosResp - 62, // 77: mgmt.MgmtSvc.SystemCheckDisable:output_type -> mgmt.DaosResp - 71, // 78: mgmt.MgmtSvc.SystemCheckStart:output_type -> mgmt.CheckStartResp - 72, // 79: mgmt.MgmtSvc.SystemCheckStop:output_type -> mgmt.CheckStopResp - 73, // 80: mgmt.MgmtSvc.SystemCheckQuery:output_type -> mgmt.CheckQueryResp - 62, // 81: mgmt.MgmtSvc.SystemCheckSetPolicy:output_type -> mgmt.DaosResp - 74, // 82: mgmt.MgmtSvc.SystemCheckGetPolicy:output_type -> mgmt.CheckGetPolicyResp - 75, // 83: mgmt.MgmtSvc.SystemCheckRepair:output_type -> mgmt.CheckActResp - 76, // 84: mgmt.MgmtSvc.PoolUpgrade:output_type -> mgmt.PoolUpgradeResp - 62, // 85: mgmt.MgmtSvc.SystemSetAttr:output_type -> mgmt.DaosResp - 77, // 86: mgmt.MgmtSvc.SystemGetAttr:output_type -> mgmt.SystemGetAttrResp - 62, // 87: mgmt.MgmtSvc.SystemSetProp:output_type -> mgmt.DaosResp - 78, // 88: mgmt.MgmtSvc.SystemGetProp:output_type -> mgmt.SystemGetPropResp - 62, // 89: mgmt.MgmtSvc.FaultInjectReport:output_type -> mgmt.DaosResp - 62, // 90: mgmt.MgmtSvc.FaultInjectPoolFault:output_type -> mgmt.DaosResp - 62, // 91: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:output_type -> mgmt.DaosResp - 46, // [46:92] is the sub-list for method output_type - 0, // [0:46] is the sub-list for method input_type + 26, // 27: mgmt.MgmtSvc.SystemErase:input_type -> mgmt.SystemEraseReq + 27, // 28: mgmt.MgmtSvc.SystemCleanup:input_type -> mgmt.SystemCleanupReq + 28, // 29: mgmt.MgmtSvc.SystemCheckEnable:input_type -> mgmt.CheckEnableReq + 29, // 30: mgmt.MgmtSvc.SystemCheckDisable:input_type -> mgmt.CheckDisableReq + 30, // 31: mgmt.MgmtSvc.SystemCheckStart:input_type -> mgmt.CheckStartReq + 31, // 32: mgmt.MgmtSvc.SystemCheckStop:input_type -> mgmt.CheckStopReq + 32, // 33: mgmt.MgmtSvc.SystemCheckQuery:input_type -> mgmt.CheckQueryReq + 33, // 34: mgmt.MgmtSvc.SystemCheckSetPolicy:input_type -> mgmt.CheckSetPolicyReq + 34, // 35: mgmt.MgmtSvc.SystemCheckGetPolicy:input_type -> mgmt.CheckGetPolicyReq + 35, // 36: mgmt.MgmtSvc.SystemCheckRepair:input_type -> mgmt.CheckActReq + 36, // 37: mgmt.MgmtSvc.PoolUpgrade:input_type -> mgmt.PoolUpgradeReq + 37, // 38: mgmt.MgmtSvc.SystemSetAttr:input_type -> mgmt.SystemSetAttrReq + 38, // 39: mgmt.MgmtSvc.SystemGetAttr:input_type -> mgmt.SystemGetAttrReq + 39, // 40: mgmt.MgmtSvc.SystemSetProp:input_type -> mgmt.SystemSetPropReq + 40, // 41: mgmt.MgmtSvc.SystemGetProp:input_type -> mgmt.SystemGetPropReq + 41, // 42: mgmt.MgmtSvc.FaultInjectReport:input_type -> chk.CheckReport + 42, // 43: mgmt.MgmtSvc.FaultInjectPoolFault:input_type -> chk.Fault + 42, // 44: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:input_type -> chk.Fault + 43, // 45: mgmt.MgmtSvc.Join:output_type -> mgmt.JoinResp + 44, // 46: mgmt.MgmtSvc.ClusterEvent:output_type -> shared.ClusterEventResp + 45, // 47: mgmt.MgmtSvc.LeaderQuery:output_type -> mgmt.LeaderQueryResp + 46, // 48: mgmt.MgmtSvc.PoolCreate:output_type -> mgmt.PoolCreateResp + 47, // 49: mgmt.MgmtSvc.PoolDestroy:output_type -> mgmt.PoolDestroyResp + 48, // 50: mgmt.MgmtSvc.PoolEvict:output_type -> mgmt.PoolEvictResp + 49, // 51: mgmt.MgmtSvc.PoolExclude:output_type -> mgmt.PoolExcludeResp + 50, // 52: mgmt.MgmtSvc.PoolDrain:output_type -> mgmt.PoolDrainResp + 51, // 53: mgmt.MgmtSvc.PoolExtend:output_type -> mgmt.PoolExtendResp + 52, // 54: mgmt.MgmtSvc.PoolReint:output_type -> mgmt.PoolReintResp + 53, // 55: mgmt.MgmtSvc.PoolQuery:output_type -> mgmt.PoolQueryResp + 54, // 56: mgmt.MgmtSvc.PoolQueryTarget:output_type -> mgmt.PoolQueryTargetResp + 55, // 57: mgmt.MgmtSvc.PoolSetProp:output_type -> mgmt.PoolSetPropResp + 56, // 58: mgmt.MgmtSvc.PoolGetProp:output_type -> mgmt.PoolGetPropResp + 57, // 59: mgmt.MgmtSvc.PoolGetACL:output_type -> mgmt.ACLResp + 57, // 60: mgmt.MgmtSvc.PoolOverwriteACL:output_type -> mgmt.ACLResp + 57, // 61: mgmt.MgmtSvc.PoolUpdateACL:output_type -> mgmt.ACLResp + 57, // 62: mgmt.MgmtSvc.PoolDeleteACL:output_type -> mgmt.ACLResp + 58, // 63: mgmt.MgmtSvc.GetAttachInfo:output_type -> mgmt.GetAttachInfoResp + 59, // 64: mgmt.MgmtSvc.ListPools:output_type -> mgmt.ListPoolsResp + 60, // 65: mgmt.MgmtSvc.ListContainers:output_type -> mgmt.ListContResp + 61, // 66: mgmt.MgmtSvc.ContSetOwner:output_type -> mgmt.DaosResp + 62, // 67: mgmt.MgmtSvc.SystemQuery:output_type -> mgmt.SystemQueryResp + 63, // 68: mgmt.MgmtSvc.SystemStop:output_type -> mgmt.SystemStopResp + 64, // 69: mgmt.MgmtSvc.SystemStart:output_type -> mgmt.SystemStartResp + 65, // 70: mgmt.MgmtSvc.SystemExclude:output_type -> mgmt.SystemExcludeResp + 66, // 71: mgmt.MgmtSvc.SystemDrain:output_type -> mgmt.SystemDrainResp + 67, // 72: mgmt.MgmtSvc.SystemErase:output_type -> mgmt.SystemEraseResp + 68, // 73: mgmt.MgmtSvc.SystemCleanup:output_type -> mgmt.SystemCleanupResp + 61, // 74: mgmt.MgmtSvc.SystemCheckEnable:output_type -> mgmt.DaosResp + 61, // 75: mgmt.MgmtSvc.SystemCheckDisable:output_type -> mgmt.DaosResp + 69, // 76: mgmt.MgmtSvc.SystemCheckStart:output_type -> mgmt.CheckStartResp + 70, // 77: mgmt.MgmtSvc.SystemCheckStop:output_type -> mgmt.CheckStopResp + 71, // 78: mgmt.MgmtSvc.SystemCheckQuery:output_type -> mgmt.CheckQueryResp + 61, // 79: mgmt.MgmtSvc.SystemCheckSetPolicy:output_type -> mgmt.DaosResp + 72, // 80: mgmt.MgmtSvc.SystemCheckGetPolicy:output_type -> mgmt.CheckGetPolicyResp + 73, // 81: mgmt.MgmtSvc.SystemCheckRepair:output_type -> mgmt.CheckActResp + 74, // 82: mgmt.MgmtSvc.PoolUpgrade:output_type -> mgmt.PoolUpgradeResp + 61, // 83: mgmt.MgmtSvc.SystemSetAttr:output_type -> mgmt.DaosResp + 75, // 84: mgmt.MgmtSvc.SystemGetAttr:output_type -> mgmt.SystemGetAttrResp + 61, // 85: mgmt.MgmtSvc.SystemSetProp:output_type -> mgmt.DaosResp + 76, // 86: mgmt.MgmtSvc.SystemGetProp:output_type -> mgmt.SystemGetPropResp + 61, // 87: mgmt.MgmtSvc.FaultInjectReport:output_type -> mgmt.DaosResp + 61, // 88: mgmt.MgmtSvc.FaultInjectPoolFault:output_type -> mgmt.DaosResp + 61, // 89: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:output_type -> mgmt.DaosResp + 45, // [45:90] is the sub-list for method output_type + 0, // [0:45] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/src/control/common/proto/mgmt/mgmt_grpc.pb.go b/src/control/common/proto/mgmt/mgmt_grpc.pb.go index 5018840b6d7..3b15e682ca2 100644 --- a/src/control/common/proto/mgmt/mgmt_grpc.pb.go +++ b/src/control/common/proto/mgmt/mgmt_grpc.pb.go @@ -54,7 +54,6 @@ const ( MgmtSvc_SystemStart_FullMethodName = "/mgmt.MgmtSvc/SystemStart" MgmtSvc_SystemExclude_FullMethodName = "/mgmt.MgmtSvc/SystemExclude" MgmtSvc_SystemDrain_FullMethodName = "/mgmt.MgmtSvc/SystemDrain" - MgmtSvc_SystemReint_FullMethodName = "/mgmt.MgmtSvc/SystemReint" MgmtSvc_SystemErase_FullMethodName = "/mgmt.MgmtSvc/SystemErase" MgmtSvc_SystemCleanup_FullMethodName = "/mgmt.MgmtSvc/SystemCleanup" MgmtSvc_SystemCheckEnable_FullMethodName = "/mgmt.MgmtSvc/SystemCheckEnable" @@ -132,10 +131,8 @@ type MgmtSvcClient interface { SystemStart(ctx context.Context, in *SystemStartReq, opts ...grpc.CallOption) (*SystemStartResp, error) // Exclude DAOS ranks SystemExclude(ctx context.Context, in *SystemExcludeReq, opts ...grpc.CallOption) (*SystemExcludeResp, error) - // Drain DAOS ranks from all pools + // Drain or reintegrate DAOS ranks from all pools SystemDrain(ctx context.Context, in *SystemDrainReq, opts ...grpc.CallOption) (*SystemDrainResp, error) - // Reintegrate DAOS ranks to all pools - SystemReint(ctx context.Context, in *SystemReintReq, opts ...grpc.CallOption) (*SystemReintResp, error) // Erase DAOS system database prior to reformat SystemErase(ctx context.Context, in *SystemEraseReq, opts ...grpc.CallOption) (*SystemEraseResp, error) // Clean up leaked resources for a given node @@ -425,15 +422,6 @@ func (c *mgmtSvcClient) SystemDrain(ctx context.Context, in *SystemDrainReq, opt return out, nil } -func (c *mgmtSvcClient) SystemReint(ctx context.Context, in *SystemReintReq, opts ...grpc.CallOption) (*SystemReintResp, error) { - out := new(SystemReintResp) - err := c.cc.Invoke(ctx, MgmtSvc_SystemReint_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *mgmtSvcClient) SystemErase(ctx context.Context, in *SystemEraseReq, opts ...grpc.CallOption) (*SystemEraseResp, error) { out := new(SystemEraseResp) err := c.cc.Invoke(ctx, MgmtSvc_SystemErase_FullMethodName, in, out, opts...) @@ -653,10 +641,8 @@ type MgmtSvcServer interface { SystemStart(context.Context, *SystemStartReq) (*SystemStartResp, error) // Exclude DAOS ranks SystemExclude(context.Context, *SystemExcludeReq) (*SystemExcludeResp, error) - // Drain DAOS ranks from all pools + // Drain or reintegrate DAOS ranks from all pools SystemDrain(context.Context, *SystemDrainReq) (*SystemDrainResp, error) - // Reintegrate DAOS ranks to all pools - SystemReint(context.Context, *SystemReintReq) (*SystemReintResp, error) // Erase DAOS system database prior to reformat SystemErase(context.Context, *SystemEraseReq) (*SystemEraseResp, error) // Clean up leaked resources for a given node @@ -781,9 +767,6 @@ func (UnimplementedMgmtSvcServer) SystemExclude(context.Context, *SystemExcludeR func (UnimplementedMgmtSvcServer) SystemDrain(context.Context, *SystemDrainReq) (*SystemDrainResp, error) { return nil, status.Errorf(codes.Unimplemented, "method SystemDrain not implemented") } -func (UnimplementedMgmtSvcServer) SystemReint(context.Context, *SystemReintReq) (*SystemReintResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SystemReint not implemented") -} func (UnimplementedMgmtSvcServer) SystemErase(context.Context, *SystemEraseReq) (*SystemEraseResp, error) { return nil, status.Errorf(codes.Unimplemented, "method SystemErase not implemented") } @@ -1337,24 +1320,6 @@ func _MgmtSvc_SystemDrain_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _MgmtSvc_SystemReint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SystemReintReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MgmtSvcServer).SystemReint(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: MgmtSvc_SystemReint_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MgmtSvcServer).SystemReint(ctx, req.(*SystemReintReq)) - } - return interceptor(ctx, in, info, handler) -} - func _MgmtSvc_SystemErase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SystemEraseReq) if err := dec(in); err != nil { @@ -1794,10 +1759,6 @@ var MgmtSvc_ServiceDesc = grpc.ServiceDesc{ MethodName: "SystemDrain", Handler: _MgmtSvc_SystemDrain_Handler, }, - { - MethodName: "SystemReint", - Handler: _MgmtSvc_SystemReint_Handler, - }, { MethodName: "SystemErase", Handler: _MgmtSvc_SystemErase_Handler, diff --git a/src/control/common/proto/mgmt/system.pb.go b/src/control/common/proto/mgmt/system.pb.go index 8eb8cba4a7c..1857d9fc74b 100644 --- a/src/control/common/proto/mgmt/system.pb.go +++ b/src/control/common/proto/mgmt/system.pb.go @@ -568,7 +568,7 @@ func (x *SystemExcludeResp) GetResults() []*shared.RankResult { } // Results for system OSA calls on multiple pool-ranks. -type SystemOsaResult struct { +type PoolRankResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -579,8 +579,8 @@ type SystemOsaResult struct { Ranks string `protobuf:"bytes,4,opt,name=ranks,proto3" json:"ranks,omitempty"` // Rank-set that has encountered this result } -func (x *SystemOsaResult) Reset() { - *x = SystemOsaResult{} +func (x *PoolRankResult) Reset() { + *x = PoolRankResult{} if protoimpl.UnsafeEnabled { mi := &file_mgmt_system_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -588,13 +588,13 @@ func (x *SystemOsaResult) Reset() { } } -func (x *SystemOsaResult) String() string { +func (x *PoolRankResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SystemOsaResult) ProtoMessage() {} +func (*PoolRankResult) ProtoMessage() {} -func (x *SystemOsaResult) ProtoReflect() protoreflect.Message { +func (x *PoolRankResult) ProtoReflect() protoreflect.Message { mi := &file_mgmt_system_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -606,33 +606,33 @@ func (x *SystemOsaResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SystemOsaResult.ProtoReflect.Descriptor instead. -func (*SystemOsaResult) Descriptor() ([]byte, []int) { +// Deprecated: Use PoolRankResult.ProtoReflect.Descriptor instead. +func (*PoolRankResult) Descriptor() ([]byte, []int) { return file_mgmt_system_proto_rawDescGZIP(), []int{7} } -func (x *SystemOsaResult) GetStatus() int32 { +func (x *PoolRankResult) GetStatus() int32 { if x != nil { return x.Status } return 0 } -func (x *SystemOsaResult) GetMsg() string { +func (x *PoolRankResult) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *SystemOsaResult) GetPoolId() string { +func (x *PoolRankResult) GetPoolId() string { if x != nil { return x.PoolId } return "" } -func (x *SystemOsaResult) GetRanks() string { +func (x *PoolRankResult) GetRanks() string { if x != nil { return x.Ranks } @@ -645,9 +645,10 @@ type SystemDrainReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system name - Ranks string `protobuf:"bytes,2,opt,name=ranks,proto3" json:"ranks,omitempty"` // rankset to drain on all pools - Hosts string `protobuf:"bytes,3,opt,name=hosts,proto3" json:"hosts,omitempty"` // hostset to drain on all pools + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system name + Ranks string `protobuf:"bytes,2,opt,name=ranks,proto3" json:"ranks,omitempty"` // rankset to drain on all pools + Hosts string `protobuf:"bytes,3,opt,name=hosts,proto3" json:"hosts,omitempty"` // hostset to drain on all pools + Reint bool `protobuf:"varint,4,opt,name=reint,proto3" json:"reint,omitempty"` // Flag to indicate if request is for drain or reint. } func (x *SystemDrainReq) Reset() { @@ -703,14 +704,21 @@ func (x *SystemDrainReq) GetHosts() string { return "" } +func (x *SystemDrainReq) GetReint() bool { + if x != nil { + return x.Reint + } + return false +} + // SystemDrainResp returns status of system-drain request. type SystemDrainResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // Status of outer response. - Results []*SystemOsaResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` // Results for system-drain calls on pool-ranks. + Reint bool `protobuf:"varint,1,opt,name=reint,proto3" json:"reint,omitempty"` // Flag to indicate if results are for drain or reint. + Results []*PoolRankResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` // Results for drain or reint calls on pool-ranks. } func (x *SystemDrainResp) Reset() { @@ -745,134 +753,14 @@ func (*SystemDrainResp) Descriptor() ([]byte, []int) { return file_mgmt_system_proto_rawDescGZIP(), []int{9} } -func (x *SystemDrainResp) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *SystemDrainResp) GetResults() []*SystemOsaResult { - if x != nil { - return x.Results - } - return nil -} - -// SystemReintReq supplies system-reintegrate parameters. -type SystemReintReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system name - Ranks string `protobuf:"bytes,2,opt,name=ranks,proto3" json:"ranks,omitempty"` // rankset to reintegrate on all pools - Hosts string `protobuf:"bytes,3,opt,name=hosts,proto3" json:"hosts,omitempty"` // hostset to reintegrate on all pools -} - -func (x *SystemReintReq) Reset() { - *x = SystemReintReq{} - if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SystemReintReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SystemReintReq) ProtoMessage() {} - -func (x *SystemReintReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SystemReintReq.ProtoReflect.Descriptor instead. -func (*SystemReintReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{10} -} - -func (x *SystemReintReq) GetSys() string { - if x != nil { - return x.Sys - } - return "" -} - -func (x *SystemReintReq) GetRanks() string { - if x != nil { - return x.Ranks - } - return "" -} - -func (x *SystemReintReq) GetHosts() string { - if x != nil { - return x.Hosts - } - return "" -} - -// SystemReintResp returns status of system-reintegrate request. -type SystemReintResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // Status of outer response. - Results []*SystemOsaResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` // Results for system-reintegrate calls on pool-ranks. -} - -func (x *SystemReintResp) Reset() { - *x = SystemReintResp{} - if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SystemReintResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SystemReintResp) ProtoMessage() {} - -func (x *SystemReintResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SystemReintResp.ProtoReflect.Descriptor instead. -func (*SystemReintResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{11} -} - -func (x *SystemReintResp) GetStatus() int32 { +func (x *SystemDrainResp) GetReint() bool { if x != nil { - return x.Status + return x.Reint } - return 0 + return false } -func (x *SystemReintResp) GetResults() []*SystemOsaResult { +func (x *SystemDrainResp) GetResults() []*PoolRankResult { if x != nil { return x.Results } @@ -894,7 +782,7 @@ type SystemQueryReq struct { func (x *SystemQueryReq) Reset() { *x = SystemQueryReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[12] + mi := &file_mgmt_system_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +795,7 @@ func (x *SystemQueryReq) String() string { func (*SystemQueryReq) ProtoMessage() {} func (x *SystemQueryReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[12] + mi := &file_mgmt_system_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +808,7 @@ func (x *SystemQueryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemQueryReq.ProtoReflect.Descriptor instead. func (*SystemQueryReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{12} + return file_mgmt_system_proto_rawDescGZIP(), []int{10} } func (x *SystemQueryReq) GetSys() string { @@ -967,7 +855,7 @@ type SystemQueryResp struct { func (x *SystemQueryResp) Reset() { *x = SystemQueryResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[13] + mi := &file_mgmt_system_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +868,7 @@ func (x *SystemQueryResp) String() string { func (*SystemQueryResp) ProtoMessage() {} func (x *SystemQueryResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[13] + mi := &file_mgmt_system_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +881,7 @@ func (x *SystemQueryResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemQueryResp.ProtoReflect.Descriptor instead. func (*SystemQueryResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{13} + return file_mgmt_system_proto_rawDescGZIP(), []int{11} } func (x *SystemQueryResp) GetMembers() []*SystemMember { @@ -1043,7 +931,7 @@ type SystemEraseReq struct { func (x *SystemEraseReq) Reset() { *x = SystemEraseReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[14] + mi := &file_mgmt_system_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1056,7 +944,7 @@ func (x *SystemEraseReq) String() string { func (*SystemEraseReq) ProtoMessage() {} func (x *SystemEraseReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[14] + mi := &file_mgmt_system_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1069,7 +957,7 @@ func (x *SystemEraseReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemEraseReq.ProtoReflect.Descriptor instead. func (*SystemEraseReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{14} + return file_mgmt_system_proto_rawDescGZIP(), []int{12} } func (x *SystemEraseReq) GetSys() string { @@ -1090,7 +978,7 @@ type SystemEraseResp struct { func (x *SystemEraseResp) Reset() { *x = SystemEraseResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[15] + mi := &file_mgmt_system_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1103,7 +991,7 @@ func (x *SystemEraseResp) String() string { func (*SystemEraseResp) ProtoMessage() {} func (x *SystemEraseResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[15] + mi := &file_mgmt_system_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1116,7 +1004,7 @@ func (x *SystemEraseResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemEraseResp.ProtoReflect.Descriptor instead. func (*SystemEraseResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{15} + return file_mgmt_system_proto_rawDescGZIP(), []int{13} } func (x *SystemEraseResp) GetResults() []*shared.RankResult { @@ -1139,7 +1027,7 @@ type SystemCleanupReq struct { func (x *SystemCleanupReq) Reset() { *x = SystemCleanupReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[16] + mi := &file_mgmt_system_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1152,7 +1040,7 @@ func (x *SystemCleanupReq) String() string { func (*SystemCleanupReq) ProtoMessage() {} func (x *SystemCleanupReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[16] + mi := &file_mgmt_system_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1165,7 +1053,7 @@ func (x *SystemCleanupReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemCleanupReq.ProtoReflect.Descriptor instead. func (*SystemCleanupReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{16} + return file_mgmt_system_proto_rawDescGZIP(), []int{14} } func (x *SystemCleanupReq) GetSys() string { @@ -1194,7 +1082,7 @@ type SystemCleanupResp struct { func (x *SystemCleanupResp) Reset() { *x = SystemCleanupResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[17] + mi := &file_mgmt_system_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1207,7 +1095,7 @@ func (x *SystemCleanupResp) String() string { func (*SystemCleanupResp) ProtoMessage() {} func (x *SystemCleanupResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[17] + mi := &file_mgmt_system_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1220,7 +1108,7 @@ func (x *SystemCleanupResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemCleanupResp.ProtoReflect.Descriptor instead. func (*SystemCleanupResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{17} + return file_mgmt_system_proto_rawDescGZIP(), []int{15} } func (x *SystemCleanupResp) GetResults() []*SystemCleanupResp_CleanupResult { @@ -1243,7 +1131,7 @@ type SystemSetAttrReq struct { func (x *SystemSetAttrReq) Reset() { *x = SystemSetAttrReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[18] + mi := &file_mgmt_system_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1256,7 +1144,7 @@ func (x *SystemSetAttrReq) String() string { func (*SystemSetAttrReq) ProtoMessage() {} func (x *SystemSetAttrReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[18] + mi := &file_mgmt_system_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1269,7 +1157,7 @@ func (x *SystemSetAttrReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemSetAttrReq.ProtoReflect.Descriptor instead. func (*SystemSetAttrReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{18} + return file_mgmt_system_proto_rawDescGZIP(), []int{16} } func (x *SystemSetAttrReq) GetSys() string { @@ -1300,7 +1188,7 @@ type SystemGetAttrReq struct { func (x *SystemGetAttrReq) Reset() { *x = SystemGetAttrReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[19] + mi := &file_mgmt_system_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1313,7 +1201,7 @@ func (x *SystemGetAttrReq) String() string { func (*SystemGetAttrReq) ProtoMessage() {} func (x *SystemGetAttrReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[19] + mi := &file_mgmt_system_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1326,7 +1214,7 @@ func (x *SystemGetAttrReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemGetAttrReq.ProtoReflect.Descriptor instead. func (*SystemGetAttrReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{19} + return file_mgmt_system_proto_rawDescGZIP(), []int{17} } func (x *SystemGetAttrReq) GetSys() string { @@ -1355,7 +1243,7 @@ type SystemGetAttrResp struct { func (x *SystemGetAttrResp) Reset() { *x = SystemGetAttrResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[20] + mi := &file_mgmt_system_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1368,7 +1256,7 @@ func (x *SystemGetAttrResp) String() string { func (*SystemGetAttrResp) ProtoMessage() {} func (x *SystemGetAttrResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[20] + mi := &file_mgmt_system_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1381,7 +1269,7 @@ func (x *SystemGetAttrResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemGetAttrResp.ProtoReflect.Descriptor instead. func (*SystemGetAttrResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{20} + return file_mgmt_system_proto_rawDescGZIP(), []int{18} } func (x *SystemGetAttrResp) GetAttributes() map[string]string { @@ -1404,7 +1292,7 @@ type SystemSetPropReq struct { func (x *SystemSetPropReq) Reset() { *x = SystemSetPropReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[21] + mi := &file_mgmt_system_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1417,7 +1305,7 @@ func (x *SystemSetPropReq) String() string { func (*SystemSetPropReq) ProtoMessage() {} func (x *SystemSetPropReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[21] + mi := &file_mgmt_system_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1430,7 +1318,7 @@ func (x *SystemSetPropReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemSetPropReq.ProtoReflect.Descriptor instead. func (*SystemSetPropReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{21} + return file_mgmt_system_proto_rawDescGZIP(), []int{19} } func (x *SystemSetPropReq) GetSys() string { @@ -1461,7 +1349,7 @@ type SystemGetPropReq struct { func (x *SystemGetPropReq) Reset() { *x = SystemGetPropReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[22] + mi := &file_mgmt_system_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1474,7 +1362,7 @@ func (x *SystemGetPropReq) String() string { func (*SystemGetPropReq) ProtoMessage() {} func (x *SystemGetPropReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[22] + mi := &file_mgmt_system_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1487,7 +1375,7 @@ func (x *SystemGetPropReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemGetPropReq.ProtoReflect.Descriptor instead. func (*SystemGetPropReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{22} + return file_mgmt_system_proto_rawDescGZIP(), []int{20} } func (x *SystemGetPropReq) GetSys() string { @@ -1516,7 +1404,7 @@ type SystemGetPropResp struct { func (x *SystemGetPropResp) Reset() { *x = SystemGetPropResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[23] + mi := &file_mgmt_system_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1529,7 +1417,7 @@ func (x *SystemGetPropResp) String() string { func (*SystemGetPropResp) ProtoMessage() {} func (x *SystemGetPropResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[23] + mi := &file_mgmt_system_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1542,7 +1430,7 @@ func (x *SystemGetPropResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemGetPropResp.ProtoReflect.Descriptor instead. func (*SystemGetPropResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{23} + return file_mgmt_system_proto_rawDescGZIP(), []int{21} } func (x *SystemGetPropResp) GetProperties() map[string]string { @@ -1566,7 +1454,7 @@ type SystemCleanupResp_CleanupResult struct { func (x *SystemCleanupResp_CleanupResult) Reset() { *x = SystemCleanupResp_CleanupResult{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[24] + mi := &file_mgmt_system_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1579,7 +1467,7 @@ func (x *SystemCleanupResp_CleanupResult) String() string { func (*SystemCleanupResp_CleanupResult) ProtoMessage() {} func (x *SystemCleanupResp_CleanupResult) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[24] + mi := &file_mgmt_system_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1592,7 +1480,7 @@ func (x *SystemCleanupResp_CleanupResult) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemCleanupResp_CleanupResult.ProtoReflect.Descriptor instead. func (*SystemCleanupResp_CleanupResult) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{17, 0} + return file_mgmt_system_proto_rawDescGZIP(), []int{15, 0} } func (x *SystemCleanupResp_CleanupResult) GetStatus() int32 { @@ -1693,130 +1581,120 @@ var file_mgmt_system_proto_rawDesc = []byte{ 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x6a, 0x0a, 0x0f, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x4f, 0x73, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x4e, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, - 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, - 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x68, 0x6f, 0x73, 0x74, 0x73, 0x22, 0x5a, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, - 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, - 0x73, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x22, 0x4e, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x69, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, - 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, - 0x73, 0x22, 0x5a, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x69, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x07, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x73, 0x61, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x6d, 0x0a, - 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, - 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xc4, 0x01, 0x0a, - 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x6b, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x68, 0x6f, 0x73, - 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x73, 0x22, 0x22, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, - 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x07, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x11, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, - 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, - 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, - 0x68, 0x0a, 0x0d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, - 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6f, - 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, - 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, - 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, - 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, - 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xab, 0x01, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, - 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x69, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, + 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, + 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x64, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, + 0x6f, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x69, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x0f, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x65, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, + 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x22, 0x6d, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, + 0x73, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x73, 0x6b, 0x22, 0xc4, 0x01, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x61, + 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, + 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x62, 0x73, + 0x65, 0x6e, 0x74, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x22, 0x22, 0x0a, 0x0e, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x22, 0x3f, 0x0a, + 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x2c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x3e, + 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x73, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x22, 0xbe, + 0x01, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, + 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x68, 0x0a, 0x0d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xab, 0x01, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, + 0x65, 0x71, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, + 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, - 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, + 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, + 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, - 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, 0x6d, - 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x46, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x9b, 0x01, + 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x3a, 0x5a, 0x38, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, + 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1831,7 +1709,7 @@ func file_mgmt_system_proto_rawDescGZIP() []byte { return file_mgmt_system_proto_rawDescData } -var file_mgmt_system_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_mgmt_system_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_mgmt_system_proto_goTypes = []interface{}{ (*SystemMember)(nil), // 0: mgmt.SystemMember (*SystemStopReq)(nil), // 1: mgmt.SystemStopReq @@ -1840,48 +1718,45 @@ var file_mgmt_system_proto_goTypes = []interface{}{ (*SystemStartResp)(nil), // 4: mgmt.SystemStartResp (*SystemExcludeReq)(nil), // 5: mgmt.SystemExcludeReq (*SystemExcludeResp)(nil), // 6: mgmt.SystemExcludeResp - (*SystemOsaResult)(nil), // 7: mgmt.SystemOsaResult + (*PoolRankResult)(nil), // 7: mgmt.PoolRankResult (*SystemDrainReq)(nil), // 8: mgmt.SystemDrainReq (*SystemDrainResp)(nil), // 9: mgmt.SystemDrainResp - (*SystemReintReq)(nil), // 10: mgmt.SystemReintReq - (*SystemReintResp)(nil), // 11: mgmt.SystemReintResp - (*SystemQueryReq)(nil), // 12: mgmt.SystemQueryReq - (*SystemQueryResp)(nil), // 13: mgmt.SystemQueryResp - (*SystemEraseReq)(nil), // 14: mgmt.SystemEraseReq - (*SystemEraseResp)(nil), // 15: mgmt.SystemEraseResp - (*SystemCleanupReq)(nil), // 16: mgmt.SystemCleanupReq - (*SystemCleanupResp)(nil), // 17: mgmt.SystemCleanupResp - (*SystemSetAttrReq)(nil), // 18: mgmt.SystemSetAttrReq - (*SystemGetAttrReq)(nil), // 19: mgmt.SystemGetAttrReq - (*SystemGetAttrResp)(nil), // 20: mgmt.SystemGetAttrResp - (*SystemSetPropReq)(nil), // 21: mgmt.SystemSetPropReq - (*SystemGetPropReq)(nil), // 22: mgmt.SystemGetPropReq - (*SystemGetPropResp)(nil), // 23: mgmt.SystemGetPropResp - (*SystemCleanupResp_CleanupResult)(nil), // 24: mgmt.SystemCleanupResp.CleanupResult - nil, // 25: mgmt.SystemSetAttrReq.AttributesEntry - nil, // 26: mgmt.SystemGetAttrResp.AttributesEntry - nil, // 27: mgmt.SystemSetPropReq.PropertiesEntry - nil, // 28: mgmt.SystemGetPropResp.PropertiesEntry - (*shared.RankResult)(nil), // 29: shared.RankResult + (*SystemQueryReq)(nil), // 10: mgmt.SystemQueryReq + (*SystemQueryResp)(nil), // 11: mgmt.SystemQueryResp + (*SystemEraseReq)(nil), // 12: mgmt.SystemEraseReq + (*SystemEraseResp)(nil), // 13: mgmt.SystemEraseResp + (*SystemCleanupReq)(nil), // 14: mgmt.SystemCleanupReq + (*SystemCleanupResp)(nil), // 15: mgmt.SystemCleanupResp + (*SystemSetAttrReq)(nil), // 16: mgmt.SystemSetAttrReq + (*SystemGetAttrReq)(nil), // 17: mgmt.SystemGetAttrReq + (*SystemGetAttrResp)(nil), // 18: mgmt.SystemGetAttrResp + (*SystemSetPropReq)(nil), // 19: mgmt.SystemSetPropReq + (*SystemGetPropReq)(nil), // 20: mgmt.SystemGetPropReq + (*SystemGetPropResp)(nil), // 21: mgmt.SystemGetPropResp + (*SystemCleanupResp_CleanupResult)(nil), // 22: mgmt.SystemCleanupResp.CleanupResult + nil, // 23: mgmt.SystemSetAttrReq.AttributesEntry + nil, // 24: mgmt.SystemGetAttrResp.AttributesEntry + nil, // 25: mgmt.SystemSetPropReq.PropertiesEntry + nil, // 26: mgmt.SystemGetPropResp.PropertiesEntry + (*shared.RankResult)(nil), // 27: shared.RankResult } var file_mgmt_system_proto_depIdxs = []int32{ - 29, // 0: mgmt.SystemStopResp.results:type_name -> shared.RankResult - 29, // 1: mgmt.SystemStartResp.results:type_name -> shared.RankResult - 29, // 2: mgmt.SystemExcludeResp.results:type_name -> shared.RankResult - 7, // 3: mgmt.SystemDrainResp.results:type_name -> mgmt.SystemOsaResult - 7, // 4: mgmt.SystemReintResp.results:type_name -> mgmt.SystemOsaResult - 0, // 5: mgmt.SystemQueryResp.members:type_name -> mgmt.SystemMember - 29, // 6: mgmt.SystemEraseResp.results:type_name -> shared.RankResult - 24, // 7: mgmt.SystemCleanupResp.results:type_name -> mgmt.SystemCleanupResp.CleanupResult - 25, // 8: mgmt.SystemSetAttrReq.attributes:type_name -> mgmt.SystemSetAttrReq.AttributesEntry - 26, // 9: mgmt.SystemGetAttrResp.attributes:type_name -> mgmt.SystemGetAttrResp.AttributesEntry - 27, // 10: mgmt.SystemSetPropReq.properties:type_name -> mgmt.SystemSetPropReq.PropertiesEntry - 28, // 11: mgmt.SystemGetPropResp.properties:type_name -> mgmt.SystemGetPropResp.PropertiesEntry - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 27, // 0: mgmt.SystemStopResp.results:type_name -> shared.RankResult + 27, // 1: mgmt.SystemStartResp.results:type_name -> shared.RankResult + 27, // 2: mgmt.SystemExcludeResp.results:type_name -> shared.RankResult + 7, // 3: mgmt.SystemDrainResp.results:type_name -> mgmt.PoolRankResult + 0, // 4: mgmt.SystemQueryResp.members:type_name -> mgmt.SystemMember + 27, // 5: mgmt.SystemEraseResp.results:type_name -> shared.RankResult + 22, // 6: mgmt.SystemCleanupResp.results:type_name -> mgmt.SystemCleanupResp.CleanupResult + 23, // 7: mgmt.SystemSetAttrReq.attributes:type_name -> mgmt.SystemSetAttrReq.AttributesEntry + 24, // 8: mgmt.SystemGetAttrResp.attributes:type_name -> mgmt.SystemGetAttrResp.AttributesEntry + 25, // 9: mgmt.SystemSetPropReq.properties:type_name -> mgmt.SystemSetPropReq.PropertiesEntry + 26, // 10: mgmt.SystemGetPropResp.properties:type_name -> mgmt.SystemGetPropResp.PropertiesEntry + 11, // [11:11] is the sub-list for method output_type + 11, // [11:11] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_mgmt_system_proto_init() } @@ -1975,7 +1850,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemOsaResult); i { + switch v := v.(*PoolRankResult); i { case 0: return &v.state case 1: @@ -2011,30 +1886,6 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemReintReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mgmt_system_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemReintResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mgmt_system_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemQueryReq); i { case 0: return &v.state @@ -2046,7 +1897,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemQueryResp); i { case 0: return &v.state @@ -2058,7 +1909,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemEraseReq); i { case 0: return &v.state @@ -2070,7 +1921,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemEraseResp); i { case 0: return &v.state @@ -2082,7 +1933,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemCleanupReq); i { case 0: return &v.state @@ -2094,7 +1945,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemCleanupResp); i { case 0: return &v.state @@ -2106,7 +1957,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemSetAttrReq); i { case 0: return &v.state @@ -2118,7 +1969,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemGetAttrReq); i { case 0: return &v.state @@ -2130,7 +1981,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemGetAttrResp); i { case 0: return &v.state @@ -2142,7 +1993,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemSetPropReq); i { case 0: return &v.state @@ -2154,7 +2005,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemGetPropReq); i { case 0: return &v.state @@ -2166,7 +2017,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemGetPropResp); i { case 0: return &v.state @@ -2178,7 +2029,7 @@ func file_mgmt_system_proto_init() { return nil } } - file_mgmt_system_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_mgmt_system_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemCleanupResp_CleanupResult); i { case 0: return &v.state @@ -2197,7 +2048,7 @@ func file_mgmt_system_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_mgmt_system_proto_rawDesc, NumEnums: 0, - NumMessages: 29, + NumMessages: 27, NumExtensions: 0, NumServices: 0, }, diff --git a/src/control/lib/control/system.go b/src/control/lib/control/system.go index 36ff3c43e56..69f8ba5525c 100644 --- a/src/control/lib/control/system.go +++ b/src/control/lib/control/system.go @@ -566,36 +566,23 @@ func SystemExclude(ctx context.Context, rpcClient UnaryInvoker, req *SystemExclu return resp, convertMSResponse(ur, resp) } -// SystemOsaResult describes the result of an OSA operation on a pool's ranks. -type SystemOsaResult struct { +// PoolRankResult describes the result of an OSA operation on a pool's ranks. +type PoolRankResult struct { Status int32 `json:"status"` // Status returned from a specific OSA dRPC call Msg string `json:"msg"` // Error message if Status is not Success PoolID string `json:"pool_id"` // Unique identifier for pool Ranks string `json:"ranks"` // RankSet of ranks that should be operated on } -// SystemOsaResults is an alias for a SystemOsaResult slice. -type SystemOsaResults []*SystemOsaResult - -// Errors returns a single error combining all error messages associated with system-OSA results. -// Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be populated in -// system-OSA operation response. -func (sors SystemOsaResults) Errors() (err error) { - for _, r := range sors { - if r.Status != int32(daos.Success) { - err = concatErrs(err, - errors.Errorf("pool %s ranks %s: %s", r.PoolID, r.Ranks, r.Msg)) - } - } - - return -} +// PoolRankResults is an alias for a PoolRankResult slice. +type PoolRankResults []*PoolRankResult // SystemDrainReq contains the inputs for the system drain request. type SystemDrainReq struct { unaryRequest msRequest sysRequest + Reint bool } // SystemDrainResp contains the request response. UnmarshalJSON is not implemented on this type @@ -603,12 +590,19 @@ type SystemDrainReq struct { // in the response so decoding is not required. type SystemDrainResp struct { sysResponse `json:"-"` - Results SystemOsaResults `json:"results"` + Results PoolRankResults `json:"results"` } -// Errors returns error if any of the results indicate a failure. -func (resp *SystemDrainResp) Errors() error { - return resp.Results.Errors() +// Errors returns a single error combining all error messages associated with pool-rank results. +// Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be returned. +func (resp *SystemDrainResp) Errors() (err error) { + for _, r := range resp.Results { + if r.Status != int32(daos.Success) { + err = concatErrs(err, + errors.Errorf("pool %s ranks %s: %s", r.PoolID, r.Ranks, r.Msg)) + } + } + return } // SystemDrain will drain either hosts or ranks from all pools that they are members of. When hosts @@ -623,6 +617,7 @@ func SystemDrain(ctx context.Context, rpcClient UnaryInvoker, req *SystemDrainRe Hosts: req.Hosts.String(), Ranks: req.Ranks.String(), Sys: req.getSystem(rpcClient), + Reint: req.Reint, } req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { return mgmtpb.NewMgmtSvcClient(conn).SystemDrain(ctx, pbReq) @@ -638,52 +633,6 @@ func SystemDrain(ctx context.Context, rpcClient UnaryInvoker, req *SystemDrainRe return resp, convertMSResponse(ur, resp) } -// SystemReintReq contains the inputs for the system drain request. -type SystemReintReq struct { - unaryRequest - msRequest - sysRequest -} - -// SystemReintResp contains the request response. UnmarshalJSON is not implemented on this type -// because missing ranks or hosts specified in requests are not tolerated and therefore not returned -// in the response so decoding is not required. -type SystemReintResp struct { - sysResponse `json:"-"` - Results SystemOsaResults `json:"results"` -} - -// Errors returns error if any of the results indicate a failure. -func (resp *SystemReintResp) Errors() error { - return resp.Results.Errors() -} - -// SystemReint will reintegrate either hosts or ranks to all pools that they are members of. When hosts -// are specified in the request, any ranks that are resident on that host are operated on. -func SystemReint(ctx context.Context, rpcClient UnaryInvoker, req *SystemReintReq) (*SystemReintResp, error) { - if req == nil { - return nil, errors.Errorf("nil %T request", req) - } - - pbReq := &mgmtpb.SystemReintReq{ - Hosts: req.Hosts.String(), - Ranks: req.Ranks.String(), - Sys: req.getSystem(rpcClient), - } - req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { - return mgmtpb.NewMgmtSvcClient(conn).SystemReint(ctx, pbReq) - }) - - rpcClient.Debugf("DAOS system drain request: %s", pbUtil.Debug(pbReq)) - ur, err := rpcClient.InvokeUnaryRPC(ctx, req) - if err != nil { - return nil, err - } - - resp := new(SystemReintResp) - return resp, convertMSResponse(ur, resp) -} - // SystemEraseReq contains the inputs for a system erase request. type SystemEraseReq struct { msRequest diff --git a/src/control/lib/control/system_test.go b/src/control/lib/control/system_test.go index 60c5e6d235d..202aba42f91 100644 --- a/src/control/lib/control/system_test.go +++ b/src/control/lib/control/system_test.go @@ -1089,13 +1089,13 @@ func TestControl_SystemDrain(t *testing.T) { "dual pools; single rank": { req: new(SystemDrainReq), uResp: MockMSResponse("10.0.0.1:10001", nil, &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ {PoolId: test.MockUUID(1), Ranks: "1"}, {PoolId: test.MockUUID(2), Ranks: "1"}, }, }), expResp: &SystemDrainResp{ - Results: []*SystemOsaResult{ + Results: []*PoolRankResult{ {PoolID: test.MockUUID(1), Ranks: "1"}, {PoolID: test.MockUUID(2), Ranks: "1"}, }, @@ -1104,7 +1104,7 @@ func TestControl_SystemDrain(t *testing.T) { "dual pools; single rank; with errors": { req: new(SystemDrainReq), uResp: MockMSResponse("10.0.0.1:10001", nil, &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ { PoolId: test.MockUUID(1), Ranks: "1", Status: -1, Msg: "fail1", @@ -1116,7 +1116,7 @@ func TestControl_SystemDrain(t *testing.T) { }, }), expResp: &SystemDrainResp{ - Results: []*SystemOsaResult{ + Results: []*PoolRankResult{ { PoolID: test.MockUUID(1), Ranks: "1", Status: -1, Msg: "fail1", @@ -1157,100 +1157,6 @@ func TestControl_SystemDrain(t *testing.T) { } } -func TestControl_SystemReint(t *testing.T) { - for name, tc := range map[string]struct { - req *SystemReintReq - uErr error - uResp *UnaryResponse - expErr error - expResp *SystemReintResp - expRespErr error - }{ - "nil req": { - req: nil, - expErr: errors.New("nil *control.SystemReintReq request"), - }, - "local failure": { - req: new(SystemReintReq), - uErr: errors.New("local failed"), - expErr: errors.New("local failed"), - }, - "remote failure": { - req: new(SystemReintReq), - uResp: MockMSResponse("host1", errors.New("remote failed"), nil), - expErr: errors.New("remote failed"), - }, - "dual pools; single rank": { - req: new(SystemReintReq), - uResp: MockMSResponse("10.0.0.1:10001", nil, &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ - {PoolId: test.MockUUID(1), Ranks: "1"}, - {PoolId: test.MockUUID(2), Ranks: "1"}, - }, - }), - expResp: &SystemReintResp{ - Results: []*SystemOsaResult{ - {PoolID: test.MockUUID(1), Ranks: "1"}, - {PoolID: test.MockUUID(2), Ranks: "1"}, - }, - }, - }, - "dual pools; single rank; with errors": { - req: new(SystemReintReq), - uResp: MockMSResponse("10.0.0.1:10001", nil, &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ - { - PoolId: test.MockUUID(1), Ranks: "1", - Status: -1, Msg: "fail1", - }, - { - PoolId: test.MockUUID(2), Ranks: "1", - Status: -1, Msg: "fail2", - }, - }, - }), - expResp: &SystemReintResp{ - Results: []*SystemOsaResult{ - { - PoolID: test.MockUUID(1), Ranks: "1", - Status: -1, Msg: "fail1", - }, - { - PoolID: test.MockUUID(2), Ranks: "1", - Status: -1, Msg: "fail2", - }, - }, - }, - expRespErr: errors.New("pool 00000001-0001-0001-0001-000000000001 ranks 1: fail1, pool 00000002-0002-0002-0002-000000000002 ranks 1: fail2"), - }, - } { - t.Run(name, func(t *testing.T) { - log, buf := logging.NewTestLogger(t.Name()) - defer test.ShowBufferOnFailure(t, buf) - - mi := NewMockInvoker(log, &MockInvokerConfig{ - UnaryError: tc.uErr, - UnaryResponse: tc.uResp, - }) - - gotResp, gotErr := SystemReint(test.Context(t), mi, tc.req) - test.CmpErr(t, tc.expErr, gotErr) - if tc.expErr != nil { - return - } - - cmpOpts := []cmp.Option{ - cmpopts.IgnoreUnexported(SystemReintResp{}), - } - if diff := cmp.Diff(tc.expResp, gotResp, cmpOpts...); diff != "" { - t.Fatalf("unexpected response (-want, +got):\n%s\n", diff) - } - - test.CmpErr(t, tc.expRespErr, gotResp.Errors()) - }) - } -} - func TestControl_SystemCleanup(t *testing.T) { for name, tc := range map[string]struct { req *SystemCleanupReq diff --git a/src/control/security/grpc_authorization.go b/src/control/security/grpc_authorization.go index dddc069ee53..c955b27e417 100644 --- a/src/control/security/grpc_authorization.go +++ b/src/control/security/grpc_authorization.go @@ -52,7 +52,6 @@ var methodAuthorizations = map[string][]Component{ "/mgmt.MgmtSvc/SystemStop": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemExclude": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemDrain": {ComponentAdmin}, - "/mgmt.MgmtSvc/SystemReint": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolCreate": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolDestroy": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolQuery": {ComponentAdmin}, diff --git a/src/control/security/grpc_authorization_test.go b/src/control/security/grpc_authorization_test.go index a886b97f9aa..24662c4004e 100644 --- a/src/control/security/grpc_authorization_test.go +++ b/src/control/security/grpc_authorization_test.go @@ -77,7 +77,6 @@ func TestSecurity_ComponentHasAccess(t *testing.T) { "/mgmt.MgmtSvc/SystemStart": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemExclude": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemDrain": {ComponentAdmin}, - "/mgmt.MgmtSvc/SystemReint": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolCreate": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolDestroy": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolQuery": {ComponentAdmin}, diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index 96f1dc42567..66c9c218638 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -23,7 +23,6 @@ import ( "github.com/pkg/errors" "golang.org/x/sys/unix" "google.golang.org/grpc/peer" - "google.golang.org/protobuf/proto" "github.com/daos-stack/daos/src/control/build" "github.com/daos-stack/daos/src/control/common" @@ -32,6 +31,8 @@ import ( sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" "github.com/daos-stack/daos/src/control/drpc" "github.com/daos-stack/daos/src/control/events" + "github.com/daos-stack/daos/src/control/fault" + "github.com/daos-stack/daos/src/control/fault/code" "github.com/daos-stack/daos/src/control/lib/control" "github.com/daos-stack/daos/src/control/lib/daos" "github.com/daos-stack/daos/src/control/lib/hostlist" @@ -43,11 +44,14 @@ import ( "github.com/daos-stack/daos/src/control/system/raft" ) -const fabricProviderProp = "fabric_providers" -const groupUpdatePauseProp = "group_update_paused" -const domainLabelsProp = "domain_labels" +const ( + fabricProviderProp = "fabric_providers" + groupUpdatePauseProp = "group_update_paused" + domainLabelsProp = "domain_labels" + domainLabelsSep = "=" // invalid in a label name -const domainLabelsSep = "=" // invalid in a label name + msgInvalidRank = "invalid ranks: check rank status" +) // GetAttachInfo handles a request to retrieve a map of ranks to fabric URIs, in addition // to client network autoconfiguration hints. @@ -1098,6 +1102,7 @@ func (svc *mgmtSvc) refuseMissingRanks(hosts, ranks string) (*ranklist.RankSet, // Build mappings of pools to any ranks that match the input filter by iterating through the pool // service list. Identify pools by label if possible. +// TODO: on reintegrate dont allow selection of AdminExcluded ranks? func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksMap, error) { poolRanks := make(poolRanksMap) poolIDs := []string{} // Label or UUID. @@ -1141,12 +1146,12 @@ func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksM return poolIDs, poolRanks, nil } -func osaResultsFromRanks(id string, succeeded *ranklist.RankSet, failed poolRanksMap) []*mgmtpb.SystemOsaResult { - results := []*mgmtpb.SystemOsaResult{} +func resultsFromPoolRanks(id string, succeeded *ranklist.RankSet, failed poolRanksMap) []*mgmtpb.PoolRankResult { + results := []*mgmtpb.PoolRankResult{} // Single result generated for all ranks operated on successfully. if succeeded.Count() > 0 { - results = append(results, &mgmtpb.SystemOsaResult{ + results = append(results, &mgmtpb.PoolRankResult{ PoolId: id, Ranks: succeeded.String(), }) @@ -1160,7 +1165,7 @@ func osaResultsFromRanks(id string, succeeded *ranklist.RankSet, failed poolRank // Result generated for each failure message rank-group. for _, msg := range msgs { - results = append(results, &mgmtpb.SystemOsaResult{ + results = append(results, &mgmtpb.PoolRankResult{ // Status already included in error message. Status: int32(daos.MiscError), Msg: msg, @@ -1174,46 +1179,56 @@ func osaResultsFromRanks(id string, succeeded *ranklist.RankSet, failed poolRank type poolRanksMap map[string]*ranklist.RankSet -type osaPoolRankOpSig func(*mgmtSvc, context.Context, string, string, ranklist.Rank) (int32, string) +type poolRankOpSig func(*mgmtSvc, context.Context, string, string, ranklist.Rank) (int32, error) -// Generate OSA operation results by iterating through pool's ranks and calling supplied fn on each. -func (svc *mgmtSvc) getOsaResults(ctx context.Context, sys string, poolIDs []string, poolRanks poolRanksMap, drpcCall osaPoolRankOpSig) ([]*mgmtpb.SystemOsaResult, error) { - results := []*mgmtpb.SystemOsaResult{} +// Generate operation results by iterating through pool's ranks and calling supplied fn on each. +func (svc *mgmtSvc) getPoolRankResults(ctx context.Context, sys string, poolIDs []string, poolRanks poolRanksMap, drpcCall poolRankOpSig) ([]*mgmtpb.PoolRankResult, error) { + results := []*mgmtpb.PoolRankResult{} for _, id := range poolIDs { rs := poolRanks[id] if rs.Count() == 0 { continue } + svc.log.Tracef("operating on ranks %v on pool %s", rs, id) + succeeded := ranklist.MustCreateRankSet("") failed := make(poolRanksMap) - svc.log.Tracef("operating on ranks %v on pool %s", rs, id) - // TODO DAOS-6611: Operate on multiple pool-ranks per call when // drpc.MethodPool{Drain|Reint} API supports it. for _, r := range rs.Ranks() { - status, errMsg := drpcCall(svc, ctx, sys, id, r) + status, err := drpcCall(svc, ctx, sys, id, r) - // Each rank-drain failure message will produce a single result. - if status != int32(daos.Success) { - if _, exists := failed[errMsg]; !exists { - failed[errMsg] = ranklist.MustCreateRankSet("") - } - failed[errMsg].Add(r) - } else { + if status == int32(daos.Success) { succeeded.Add(r) + continue + } + + msgErr := err.Error() + + // Check fault code to aggregate invalid rank results. + f, ok := errors.Cause(err).(*fault.Fault) + if ok && f.Code == code.ServerPoolInvalidRanks { + msgErr = msgInvalidRank } + + // Each rank-drain failure message will produce a single result. + if _, exists := failed[msgErr]; !exists { + failed[msgErr] = ranklist.MustCreateRankSet("") + } + failed[msgErr].Add(r) } - results = append(results, osaResultsFromRanks(id, succeeded, failed)...) + results = append(results, resultsFromPoolRanks(id, succeeded, failed)...) + svc.log.Tracef("results %+v", results) } return results, nil } -// Drain rank on a pool by calling over dRPC. Function signature satisfies osaPoolRankOpSig type. -func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string) { +// Drain rank on a pool by calling over dRPC. Function signature satisfies poolRankOpSig type. +func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, error) { pbReq := &mgmtpb.PoolDrainReq{ Sys: sys, Rank: rank.Uint32(), @@ -1222,19 +1237,19 @@ func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank rankl pbResp, err := svc.PoolDrain(ctx, pbReq) if err != nil { - return int32(daos.MiscError), err.Error() + return int32(daos.MiscError), err } if pbResp.Status != int32(daos.Success) { - return pbResp.Status, daos.Status(pbResp.Status).Error() + return pbResp.Status, daos.Status(pbResp.Status) } svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", pbResp, pbReq) - return int32(daos.Success), "" + return int32(daos.Success), nil } -// Reint rank on a pool by calling over dRPC. Function signature satisfies osaPoolRankOpSig type. -func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string) { +// Reint rank on a pool by calling over dRPC. Function signature satisfies poolRankOpSig type. +func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, error) { pbReq := &mgmtpb.PoolReintReq{ Sys: sys, Rank: rank.Uint32(), @@ -1243,27 +1258,31 @@ func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank rankl pbResp, err := svc.PoolReint(ctx, pbReq) if err != nil { - return int32(daos.MiscError), err.Error() + return int32(daos.MiscError), err } if pbResp.Status != int32(daos.Success) { - return pbResp.Status, daos.Status(pbResp.Status).Error() + return pbResp.Status, daos.Status(pbResp.Status) } svc.log.Tracef("pool-reint triggered from system-reint: %+v (req: %+v)", pbResp, pbReq) - return int32(daos.Success), "" + return int32(daos.Success), nil } -// Perform leader and requested ranks checks before mapping ranks to existing pools and generating -// results from the relevant dRPC calls to operate on the pool-ranks. -func (svc *mgmtSvc) doSysOsaOp(ctx context.Context, req proto.Message, hosts, ranks, sys string, opCall osaPoolRankOpSig) ([]*mgmtpb.SystemOsaResult, error) { +// SystemDrain marks specified ranks on all pools as being in a drain state. +func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) (*mgmtpb.SystemDrainResp, error) { + if req == nil { + return nil, errors.Errorf("nil %T", req) + } + if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { return nil, err } // Validate requested hosts or ranks exist and fail if any are missing. - hitRanks, err := svc.refuseMissingRanks(hosts, ranks) + hitRanks, err := svc.refuseMissingRanks(req.Hosts, req.Ranks) if err != nil { + svc.log.Errorf("refuse missing ranks: %s", err) return nil, err } @@ -1274,37 +1293,17 @@ func (svc *mgmtSvc) doSysOsaOp(ctx context.Context, req proto.Message, hosts, ra } // Generate results from dRPC calls. - return svc.getOsaResults(ctx, sys, poolIDs, poolRanks, opCall) -} - -// SystemDrain marks specified ranks on all pools as being in a drain state. -func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) (*mgmtpb.SystemDrainResp, error) { - if req == nil { - return nil, errors.Errorf("nil %T", req) + var opCall poolRankOpSig = drainPoolRank + if req.Reint { + opCall = reintPoolRank } - - results, err := svc.doSysOsaOp(ctx, req, req.Hosts, req.Ranks, req.Sys, drainPoolRank) + results, err := svc.getPoolRankResults(ctx, req.Sys, poolIDs, poolRanks, opCall) if err != nil { return nil, err } return &mgmtpb.SystemDrainResp{ - Results: results, - }, nil -} - -// SystemReint marks specified ranks on all pools as being in a reint state. -func (svc *mgmtSvc) SystemReint(ctx context.Context, req *mgmtpb.SystemReintReq) (*mgmtpb.SystemReintResp, error) { - if req == nil { - return nil, errors.Errorf("nil %T", req) - } - - results, err := svc.doSysOsaOp(ctx, req, req.Hosts, req.Ranks, req.Sys, drainPoolRank) - if err != nil { - return nil, err - } - - return &mgmtpb.SystemReintResp{ + Reint: req.Reint, Results: results, }, nil } diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index bbd84c5fe78..7b8d0c0ec69 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1839,17 +1839,26 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { SvcRanks: []uint32{0}, } } + rReq := func(id, rank int) *mgmtpb.PoolReintReq { + return &mgmtpb.PoolReintReq{ + Sys: "daos_server", + Id: test.MockUUID(int32(id)), + Rank: uint32(rank), + SvcRanks: []uint32{0}, + } + } for name, tc := range map[string]struct { - members system.Members - req *mgmtpb.SystemDrainReq - expDrpcReqs []*mgmt.PoolDrainReq - drpcResp *mgmtpb.PoolDrainResp - drpcErr error - poolRanks map[string]string - useLabels bool - expResp *mgmtpb.SystemDrainResp - expErr error + members system.Members + req *mgmtpb.SystemDrainReq + expDrainReqs []*mgmt.PoolDrainReq + expReintReqs []*mgmt.PoolReintReq + drpcResp proto.Message + drpcErr error + poolRanks map[string]string + useLabels bool + expResp *mgmtpb.SystemDrainResp + expErr error }{ "nil req": { req: (*mgmtpb.SystemDrainReq)(nil), @@ -1886,7 +1895,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { test.MockUUID(1): "2-5", }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{}, + Results: []*mgmtpb.PoolRankResult{}, }, }, "matching ranks; multiple pools; no drpc response": { @@ -1896,7 +1905,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { test.MockUUID(2): "1-7", }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ { PoolId: test.MockUUID(1), Ranks: "0-1", @@ -1919,11 +1928,11 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { test.MockUUID(2): "1-7", }, drpcResp: &mgmtpb.PoolDrainResp{}, - expDrpcReqs: []*mgmtpb.PoolDrainReq{ + expDrainReqs: []*mgmtpb.PoolDrainReq{ dReq(1, 0), dReq(1, 1), dReq(2, 1), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ {PoolId: test.MockUUID(1), Ranks: "0-1"}, {PoolId: test.MockUUID(2), Ranks: "1"}, }, @@ -1940,12 +1949,12 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { test.MockUUID(2): "1-7", }, drpcResp: &mgmtpb.PoolDrainResp{}, - expDrpcReqs: []*mgmtpb.PoolDrainReq{ + expDrainReqs: []*mgmtpb.PoolDrainReq{ dReq(1, 0), dReq(1, 1), dReq(1, 2), dReq(1, 3), dReq(2, 1), dReq(2, 2), dReq(2, 3), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ {PoolId: test.MockUUID(1), Ranks: "0-3"}, {PoolId: test.MockUUID(2), Ranks: "1-3"}, }, @@ -1963,12 +1972,12 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { }, useLabels: true, drpcResp: &mgmtpb.PoolDrainResp{}, - expDrpcReqs: []*mgmtpb.PoolDrainReq{ + expDrainReqs: []*mgmtpb.PoolDrainReq{ dReq(1, 0), dReq(1, 1), dReq(1, 2), dReq(1, 3), dReq(2, 1), dReq(2, 2), dReq(2, 3), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ {PoolId: "00000001", Ranks: "0-3"}, {PoolId: "00000002", Ranks: "1-3"}, }, @@ -1985,11 +1994,11 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { test.MockUUID(2): "1-7", }, drpcResp: &mgmtpb.PoolDrainResp{Status: -1}, - expDrpcReqs: []*mgmtpb.PoolDrainReq{ + expDrainReqs: []*mgmtpb.PoolDrainReq{ dReq(1, 1), dReq(1, 2), dReq(2, 1), dReq(2, 2), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemOsaResult{ + Results: []*mgmtpb.PoolRankResult{ { PoolId: test.MockUUID(1), Ranks: "1-2", @@ -2005,215 +2014,33 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { }, }, }, - } { - t.Run(name, func(t *testing.T) { - log, buf := logging.NewTestLogger(t.Name()) - defer test.ShowBufferOnFailure(t, buf) - - if tc.members == nil { - tc.members = system.Members{ - mockMember(t, 0, 1, "joined"), - mockMember(t, 1, 2, "joined"), - mockMember(t, 2, 2, "joined"), - mockMember(t, 3, 1, "joined"), - mockMember(t, 4, 3, "joined"), - mockMember(t, 5, 3, "joined"), - mockMember(t, 6, 4, "joined"), - mockMember(t, 7, 4, "joined"), - } - } - svc := mgmtSystemTestSetup(t, log, tc.members, nil) - - for uuidStr, ranksStr := range tc.poolRanks { - var label string - if tc.useLabels { - label = uuidStr[:8] - } - addTestPoolService(t, svc.sysdb, &system.PoolService{ - PoolUUID: uuid.MustParse(uuidStr), - PoolLabel: label, - State: system.PoolServiceStateReady, - Storage: &system.PoolServiceStorage{ - CurrentRankStr: ranksStr, - }, - Replicas: []ranklist.Rank{0}, - }) - } - - var mockDrpc *mockDrpcClient - if tc.drpcResp != nil { - mockDrpc = getMockDrpcClient(tc.drpcResp, tc.drpcErr) - setupSvcDrpcClient(svc, 0, mockDrpc) - } - - if tc.req != nil && tc.req.Sys == "" { - tc.req.Sys = build.DefaultSystemName - } - - gotResp, gotErr := svc.SystemDrain(test.MustLogContext(t, log), tc.req) - test.CmpErr(t, tc.expErr, gotErr) - if tc.expErr != nil { - return - } - - cmpOpts := []cmp.Option{ - cmpopts.IgnoreUnexported(mgmtpb.SystemDrainResp{}, - mgmtpb.SystemOsaResult{}), - } - if diff := cmp.Diff(tc.expResp, gotResp, cmpOpts...); diff != "" { - t.Fatalf("unexpected response (-want, +got):\n%s\n", diff) - } - - if mockDrpc == nil { - return - } - - gotDrpcCalls := mockDrpc.calls.get() - test.AssertEqual(t, len(tc.expDrpcReqs), len(gotDrpcCalls), - "unexpected number of drpc calls") - - for i := range gotDrpcCalls { - gotReq := new(mgmtpb.PoolDrainReq) - err := proto.Unmarshal(gotDrpcCalls[i].Body, gotReq) - if err != nil { - t.Fatal(err) - } - opt := cmpopts.IgnoreUnexported(mgmtpb.PoolDrainReq{}) - diff := cmp.Diff(tc.expDrpcReqs[i], gotReq, opt) - if diff != "" { - t.Fatalf("want-, got+:\n%s", diff) - } - } - }) - } -} - -func TestServer_MgmtSvc_SystemReint(t *testing.T) { - dReq := func(id, rank int) *mgmtpb.PoolReintReq { - return &mgmtpb.PoolReintReq{ - Sys: "daos_server", - Id: test.MockUUID(int32(id)), - Rank: uint32(rank), - SvcRanks: []uint32{0}, - } - } - - for name, tc := range map[string]struct { - members system.Members - req *mgmtpb.SystemReintReq - expDrpcReqs []*mgmt.PoolReintReq - drpcResp *mgmtpb.PoolReintResp - drpcErr error - poolRanks map[string]string - useLabels bool - expResp *mgmtpb.SystemReintResp - expErr error - }{ - "nil req": { - req: (*mgmtpb.SystemReintReq)(nil), - expErr: errors.New("nil *mgmt.SystemReintReq"), - }, - "not system leader": { - req: &mgmtpb.SystemReintReq{ - Sys: "quack", - }, - expErr: FaultWrongSystem("quack", build.DefaultSystemName), - }, - "no hosts or ranks": { - req: &mgmtpb.SystemReintReq{}, - expErr: errors.New("no hosts or ranks"), - }, - "hosts and ranks": { - req: &mgmtpb.SystemReintReq{ - Hosts: "host1,host2", + "reintegrate; matching ranks; multiple pools": { + req: &mgmtpb.SystemDrainReq{ Ranks: "0,1", + Reint: true, }, - expErr: errors.New("ranklist and hostlist"), - }, - "invalid ranks": { - req: &mgmtpb.SystemReintReq{Ranks: "41,42"}, - expErr: errors.New("invalid rank(s)"), - }, - "invalid hosts": { - req: &mgmtpb.SystemReintReq{Hosts: "host-[1-2]"}, - expErr: errors.New("invalid host(s)"), - }, - "no matching ranks": { - req: &mgmtpb.SystemReintReq{Ranks: "0,1"}, - poolRanks: map[string]string{ - test.MockUUID(1): "2-5", - }, - expResp: &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{}, - }, - }, - "matching ranks; multiple pools; no drpc response": { - req: &mgmtpb.SystemReintReq{Ranks: "0,1"}, - poolRanks: map[string]string{ - test.MockUUID(1): "0-4", - test.MockUUID(2): "1-7", - }, - expResp: &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ - { - PoolId: test.MockUUID(1), - Ranks: "0-1", - Status: -1025, - Msg: FaultDataPlaneNotStarted.Error(), - }, - { - PoolId: test.MockUUID(2), - Ranks: "1", - Status: -1025, - Msg: FaultDataPlaneNotStarted.Error(), - }, - }, - }, - }, - "matching ranks; multiple pools": { - req: &mgmtpb.SystemReintReq{Ranks: "0,1"}, poolRanks: map[string]string{ test.MockUUID(1): "0-4", test.MockUUID(2): "1-7", }, drpcResp: &mgmtpb.PoolReintResp{}, - expDrpcReqs: []*mgmtpb.PoolReintReq{ - dReq(1, 0), dReq(1, 1), dReq(2, 1), + expReintReqs: []*mgmtpb.PoolReintReq{ + rReq(1, 0), rReq(1, 1), rReq(2, 1), }, - expResp: &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ + expResp: &mgmtpb.SystemDrainResp{ + Reint: true, + Results: []*mgmtpb.PoolRankResult{ {PoolId: test.MockUUID(1), Ranks: "0-1"}, {PoolId: test.MockUUID(2), Ranks: "1"}, }, }, }, - "matching hosts; multiple pools": { - req: &mgmtpb.SystemReintReq{ - // Resolves to ranks 0-3. - Hosts: fmt.Sprintf("%s,%s", test.MockHostAddr(1), - test.MockHostAddr(2)), - }, - poolRanks: map[string]string{ - test.MockUUID(1): "0-4", - test.MockUUID(2): "1-7", - }, - drpcResp: &mgmtpb.PoolReintResp{}, - expDrpcReqs: []*mgmtpb.PoolReintReq{ - dReq(1, 0), dReq(1, 1), dReq(1, 2), dReq(1, 3), - dReq(2, 1), dReq(2, 2), dReq(2, 3), - }, - expResp: &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ - {PoolId: test.MockUUID(1), Ranks: "0-3"}, - {PoolId: test.MockUUID(2), Ranks: "1-3"}, - }, - }, - }, - "matching hosts; multiple pools; pool labels": { - req: &mgmtpb.SystemReintReq{ + "reintegrate; matching hosts; multiple pools; pool labels": { + req: &mgmtpb.SystemDrainReq{ // Resolves to ranks 0-3. Hosts: fmt.Sprintf("%s,%s", test.MockHostAddr(1), test.MockHostAddr(2)), + Reint: true, }, poolRanks: map[string]string{ test.MockUUID(1): "0-4", @@ -2221,45 +2048,66 @@ func TestServer_MgmtSvc_SystemReint(t *testing.T) { }, useLabels: true, drpcResp: &mgmtpb.PoolReintResp{}, - expDrpcReqs: []*mgmtpb.PoolReintReq{ - dReq(1, 0), dReq(1, 1), dReq(1, 2), dReq(1, 3), - dReq(2, 1), dReq(2, 2), dReq(2, 3), + expReintReqs: []*mgmtpb.PoolReintReq{ + rReq(1, 0), rReq(1, 1), rReq(1, 2), rReq(1, 3), + rReq(2, 1), rReq(2, 2), rReq(2, 3), }, - expResp: &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ + expResp: &mgmtpb.SystemDrainResp{ + Reint: true, + Results: []*mgmtpb.PoolRankResult{ {PoolId: "00000001", Ranks: "0-3"}, {PoolId: "00000002", Ranks: "1-3"}, }, }, }, - "matching ranks; variable states; drpc fails": { + "reintegrate; matching ranks; variable states; drpc failed": { members: system.Members{ + // Only ranks in joined states can be reintegrated. + mockMember(t, 4, 0, "adminexcluded"), + mockMember(t, 3, 0, "joined"), mockMember(t, 2, 0, "errored"), mockMember(t, 1, 0, "excluded"), }, - req: &mgmtpb.SystemReintReq{Ranks: "1-2"}, + req: &mgmtpb.SystemDrainReq{ + Reint: true, + Ranks: "1-4", + }, poolRanks: map[string]string{ test.MockUUID(1): "0-4", test.MockUUID(2): "1-7", }, drpcResp: &mgmtpb.PoolReintResp{Status: -1}, - expDrpcReqs: []*mgmtpb.PoolReintReq{ - dReq(1, 1), dReq(1, 2), dReq(2, 1), dReq(2, 2), + expReintReqs: []*mgmtpb.PoolReintReq{ + // dRPC only called for joined rank + rReq(1, 3), rReq(2, 3), }, - expResp: &mgmtpb.SystemReintResp{ - Results: []*mgmtpb.SystemOsaResult{ + expResp: &mgmtpb.SystemDrainResp{ + Reint: true, + Results: []*mgmtpb.PoolRankResult{ { PoolId: test.MockUUID(1), - Ranks: "1-2", + Ranks: "3", Status: -1025, Msg: "DER_UNKNOWN(-1): Unknown error code -1", }, + { + PoolId: test.MockUUID(1), + Ranks: "1-2,4", + Status: -1025, + Msg: msgInvalidRank, + }, { PoolId: test.MockUUID(2), - Ranks: "1-2", + Ranks: "3", Status: -1025, Msg: "DER_UNKNOWN(-1): Unknown error code -1", }, + { + PoolId: test.MockUUID(2), + Ranks: "1-2,4", + Status: -1025, + Msg: msgInvalidRank, + }, }, }, }, @@ -2308,15 +2156,15 @@ func TestServer_MgmtSvc_SystemReint(t *testing.T) { tc.req.Sys = build.DefaultSystemName } - gotResp, gotErr := svc.SystemReint(test.MustLogContext(t, log), tc.req) + gotResp, gotErr := svc.SystemDrain(test.MustLogContext(t, log), tc.req) test.CmpErr(t, tc.expErr, gotErr) if tc.expErr != nil { return } cmpOpts := []cmp.Option{ - cmpopts.IgnoreUnexported(mgmtpb.SystemReintResp{}, - mgmtpb.SystemOsaResult{}), + cmpopts.IgnoreUnexported(mgmtpb.SystemDrainResp{}, + mgmtpb.PoolRankResult{}), } if diff := cmp.Diff(tc.expResp, gotResp, cmpOpts...); diff != "" { t.Fatalf("unexpected response (-want, +got):\n%s\n", diff) @@ -2327,19 +2175,49 @@ func TestServer_MgmtSvc_SystemReint(t *testing.T) { } gotDrpcCalls := mockDrpc.calls.get() - test.AssertEqual(t, len(tc.expDrpcReqs), len(gotDrpcCalls), - "unexpected number of drpc calls") - for i := range gotDrpcCalls { - gotReq := new(mgmtpb.PoolReintReq) - err := proto.Unmarshal(gotDrpcCalls[i].Body, gotReq) - if err != nil { - t.Fatal(err) + nrDrpcCalls := len(gotDrpcCalls) + nrDrainReqs := len(tc.expDrainReqs) + nrReintReqs := len(tc.expReintReqs) + + if nrDrainReqs > 0 && nrReintReqs > 0 { + t.Fatal("bad test params, both drain and reint params supplied") + } + if (nrDrainReqs == 0 && nrReintReqs == 0) && nrDrpcCalls != 0 { + t.Fatal("unexpected drpc calls") + } + + if nrDrainReqs > 0 { + test.AssertEqual(t, nrDrainReqs, nrDrpcCalls, + "unexpected number of drpc drain calls") + + for i := range gotDrpcCalls { + gotReq := new(mgmtpb.PoolDrainReq) + err := proto.Unmarshal(gotDrpcCalls[i].Body, gotReq) + if err != nil { + t.Fatal(err) + } + opt := cmpopts.IgnoreUnexported(mgmtpb.PoolDrainReq{}) + diff := cmp.Diff(tc.expDrainReqs[i], gotReq, opt) + if diff != "" { + t.Fatalf("want-, got+:\n%s", diff) + } } - opt := cmpopts.IgnoreUnexported(mgmtpb.PoolReintReq{}) - diff := cmp.Diff(tc.expDrpcReqs[i], gotReq, opt) - if diff != "" { - t.Fatalf("want-, got+:\n%s", diff) + } else if nrReintReqs > 0 { + test.AssertEqual(t, nrReintReqs, nrDrpcCalls, + "unexpected number of drpc reint calls") + + for i := range gotDrpcCalls { + gotReq := new(mgmtpb.PoolReintReq) + err := proto.Unmarshal(gotDrpcCalls[i].Body, gotReq) + if err != nil { + t.Fatal(err) + } + opt := cmpopts.IgnoreUnexported(mgmtpb.PoolReintReq{}) + diff := cmp.Diff(tc.expReintReqs[i], gotReq, opt) + if diff != "" { + t.Fatalf("want-, got+:\n%s", diff) + } } } }) diff --git a/src/proto/mgmt/mgmt.proto b/src/proto/mgmt/mgmt.proto index dae95155550..8ea7c119dbd 100644 --- a/src/proto/mgmt/mgmt.proto +++ b/src/proto/mgmt/mgmt.proto @@ -79,10 +79,8 @@ service MgmtSvc { rpc SystemStart(SystemStartReq) returns(SystemStartResp) {} // Exclude DAOS ranks rpc SystemExclude(SystemExcludeReq) returns(SystemExcludeResp) {} - // Drain DAOS ranks from all pools + // Drain or reintegrate DAOS ranks from all pools rpc SystemDrain(SystemDrainReq) returns (SystemDrainResp) {} - // Reintegrate DAOS ranks to all pools - rpc SystemReint(SystemReintReq) returns (SystemReintResp) {} // Erase DAOS system database prior to reformat rpc SystemErase(SystemEraseReq) returns(SystemEraseResp) {} // Clean up leaked resources for a given node diff --git a/src/proto/mgmt/system.proto b/src/proto/mgmt/system.proto index d109a31915d..df3c2a74d0f 100644 --- a/src/proto/mgmt/system.proto +++ b/src/proto/mgmt/system.proto @@ -79,7 +79,7 @@ message SystemExcludeResp { } // Results for system OSA calls on multiple pool-ranks. -message SystemOsaResult +message PoolRankResult { int32 status = 1; // Status of the OSA operation on a specific pool string msg = 2; // Error message if status indicates an error @@ -93,28 +93,14 @@ message SystemDrainReq string sys = 1; // DAOS system name string ranks = 2; // rankset to drain on all pools string hosts = 3; // hostset to drain on all pools + bool reint = 4; // Flag to indicate if request is for drain or reint. } // SystemDrainResp returns status of system-drain request. message SystemDrainResp { - int32 status = 1; // Status of outer response. - repeated SystemOsaResult results = 2; // Results for system-drain calls on pool-ranks. -} - -// SystemReintReq supplies system-reintegrate parameters. -message SystemReintReq -{ - string sys = 1; // DAOS system name - string ranks = 2; // rankset to reintegrate on all pools - string hosts = 3; // hostset to reintegrate on all pools -} - -// SystemReintResp returns status of system-reintegrate request. -message SystemReintResp -{ - int32 status = 1; // Status of outer response. - repeated SystemOsaResult results = 2; // Results for system-reintegrate calls on pool-ranks. + bool reint = 1; // Flag to indicate if results are for drain or reint. + repeated PoolRankResult results = 2; // Results for drain or reint calls on pool-ranks. } // SystemQueryReq supplies system query parameters.