From 83635af814de7fb04fdcd14e6d3ba94a8086bb1f Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 3 Dec 2024 13:48:30 +0000 Subject: [PATCH 01/19] DAOS-7485 control: Add system cmd to reint ranks to all pools Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/pretty/system.go | 32 +++++++--- src/control/cmd/dmg/pretty/system_test.go | 44 +++++--------- src/control/cmd/dmg/system.go | 38 ++++++++++++ src/control/lib/control/system.go | 74 ++++++++++++++++++++--- src/control/lib/control/system_test.go | 8 +-- src/control/server/mgmt_system.go | 4 +- src/control/server/mgmt_system_test.go | 10 +-- 7 files changed, 152 insertions(+), 58 deletions(-) diff --git a/src/control/cmd/dmg/pretty/system.go b/src/control/cmd/dmg/pretty/system.go index aa0f0cce546..05f27902cfb 100644 --- a/src/control/cmd/dmg/pretty/system.go +++ b/src/control/cmd/dmg/pretty/system.go @@ -222,20 +222,12 @@ func PrintSystemCleanupResponse(out io.Writer, resp *control.SystemCleanupResp, fmt.Fprintln(out, "System Cleanup Success") } -// PrintSystemDrainResponse generates a human-readable representation of the supplied -// SystemDrainResp struct and writes it to the supplied io.Writer. Result related errors written to -// error io.Writer. -func PrintSystemDrainResponse(out io.Writer, resp *control.SystemDrainResp) { - if len(resp.Results) == 0 { - fmt.Fprintln(out, "No pool ranks drained") - return - } - +func printSysOsaResults(out io.Writer, results []*control.SystemOsaResult) { titles := []string{"Pool", "Ranks", "Result", "Reason"} formatter := txtfmt.NewTableFormatter(titles...) var table []txtfmt.TableRow - for _, r := range resp.Results { + for _, r := range results { result := "OK" reason := "N/A" if r.Status != 0 { @@ -253,3 +245,23 @@ func PrintSystemDrainResponse(out io.Writer, resp *control.SystemDrainResp) { 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 bfc33bb7c33..4ca630d1904 100644 --- a/src/control/cmd/dmg/pretty/system_test.go +++ b/src/control/cmd/dmg/pretty/system_test.go @@ -612,23 +612,15 @@ Unknown 3 hosts: foo[7-9] } } -func TestPretty_PrintSystemDrainResp(t *testing.T) { +func TestPretty_printSysOsaResp(t *testing.T) { for name, tc := range map[string]struct { - resp *control.SystemDrainResp - expOut string + results []*control.SystemOsaResult + expOut string }{ - "empty response": { - resp: &control.SystemDrainResp{}, - expOut: ` -No pool ranks drained -`, - }, "normal response": { - resp: &control.SystemDrainResp{ - Results: []*control.DrainResult{ - {PoolID: test.MockUUID(1), Ranks: "0-3"}, - {PoolID: test.MockUUID(2), Ranks: "1-4"}, - }, + results: []*control.SystemOsaResult{ + {PoolID: test.MockUUID(1), Ranks: "0-3"}, + {PoolID: test.MockUUID(2), Ranks: "1-4"}, }, expOut: ` Pool Ranks Result Reason @@ -639,11 +631,9 @@ Pool Ranks Result Reason `, }, "normal response; use labels": { - resp: &control.SystemDrainResp{ - Results: []*control.DrainResult{ - {PoolID: "label1", Ranks: "0-3"}, - {PoolID: "label2", Ranks: "1-4"}, - }, + results: []*control.SystemOsaResult{ + {PoolID: "label1", Ranks: "0-3"}, + {PoolID: "label2", Ranks: "1-4"}, }, expOut: ` Pool Ranks Result Reason @@ -654,14 +644,12 @@ label2 1-4 OK N/A `, }, "response with failures": { - resp: &control.SystemDrainResp{ - Results: []*control.DrainResult{ - {PoolID: test.MockUUID(1), Ranks: "1-2"}, - {PoolID: test.MockUUID(2), Ranks: "0"}, - { - PoolID: test.MockUUID(2), Ranks: "1-2", - Status: -1, Msg: "fail1", - }, + results: []*control.SystemOsaResult{ + {PoolID: test.MockUUID(1), Ranks: "1-2"}, + {PoolID: test.MockUUID(2), Ranks: "0"}, + { + PoolID: test.MockUUID(2), Ranks: "1-2", + Status: -1, Msg: "fail1", }, }, expOut: ` @@ -676,7 +664,7 @@ Pool Ranks Result Reason } { t.Run(name, func(t *testing.T) { var out strings.Builder - PrintSystemDrainResponse(&out, tc.resp) + printSysOsaResults(&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 a507a05004f..06337269a7b 100644 --- a/src/control/cmd/dmg/system.go +++ b/src/control/cmd/dmg/system.go @@ -34,6 +34,7 @@ type SystemCmd struct { Exclude systemExcludeCmd `command:"exclude" description:"Exclude ranks from DAOS system"` ClearExclude systemClearExcludeCmd `command:"clear-exclude" description:"Clear excluded state for ranks"` Drain systemDrainCmd `command:"drain" description:"Drain ranks or hosts from all relevant pools in DAOS system"` + Reint systemReintCmd `command:"reintegrate" alias:"reint" description:"Reintegrate ranks or hosts into all relevant pools in DAOS system"` Erase systemEraseCmd `command:"erase" description:"Erase system metadata prior to reformat"` ListPools poolListCmd `command:"list-pools" description:"List all pools in the DAOS system"` Cleanup systemCleanupCmd `command:"cleanup" description:"Clean up all resources associated with the specified machine"` @@ -341,6 +342,43 @@ func (cmd *systemDrainCmd) Execute(_ []string) (errOut error) { return resp.Errors() } +type systemReintCmd struct { + baseRankListCmd +} + +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()) + + return resp.Errors() +} + type systemCleanupCmd struct { baseCtlCmd Args struct { diff --git a/src/control/lib/control/system.go b/src/control/lib/control/system.go index 3579a606f31..218c1a18f1a 100644 --- a/src/control/lib/control/system.go +++ b/src/control/lib/control/system.go @@ -566,6 +566,14 @@ 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 { + 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 +} + // SystemDrainReq contains the inputs for the system drain request. type SystemDrainReq struct { unaryRequest @@ -573,22 +581,15 @@ type SystemDrainReq struct { sysRequest } -// DrainResult describes the result of a drain operation on a pool's ranks. -type DrainResult struct { - Status int32 `json:"status"` // Status returned from a specific drain 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 drained on pool -} - // SystemDrainResp 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 SystemDrainResp struct { sysResponse `json:"-"` - Results []*DrainResult `json:"results"` + Results []*SystemOsaResult `json:"results"` } +// TODO: implement on the results type // Errors returns a single error combining all error messages associated with a system drain // response. Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be // populated in SystemDrainResp. @@ -630,6 +631,61 @@ 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 []*SystemOsaResult `json:"results"` +} + +// Errors returns a single error combining all error messages associated with a system drain +// response. Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be +// populated in SystemReintResp. +func (sdr *SystemReintResp) Errors() (errOut error) { + for _, r := range sdr.Results { + if r.Status != int32(daos.Success) { + errOut = concatErrs(errOut, + errors.Errorf("pool %s ranks %s: %s", r.PoolID, r.Ranks, r.Msg)) + } + } + + return +} + +// 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 f4abbfc7b05..e5f43996386 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.SystemDrainResp_DrainResult{ + Results: []*mgmtpb.SystemOsaResult{ {PoolId: test.MockUUID(1), Ranks: "1"}, {PoolId: test.MockUUID(2), Ranks: "1"}, }, }), expResp: &SystemDrainResp{ - Results: []*DrainResult{ + Results: []*SystemOsaResult{ {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.SystemDrainResp_DrainResult{ + Results: []*mgmtpb.SystemOsaResult{ { PoolId: test.MockUUID(1), Ranks: "1", Status: -1, Msg: "fail1", @@ -1116,7 +1116,7 @@ func TestControl_SystemDrain(t *testing.T) { }, }), expResp: &SystemDrainResp{ - Results: []*DrainResult{ + Results: []*SystemOsaResult{ { PoolID: test.MockUUID(1), Ranks: "1", Status: -1, Msg: "fail1", diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index 4dab1724b37..1bcfa84e912 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -1188,7 +1188,7 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) // Single result generated for all ranks drained successfully. if drained.Count() > 0 { - resp.Results = append(resp.Results, &mgmtpb.SystemDrainResp_DrainResult{ + resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ PoolId: id, Ranks: drained.String(), }) @@ -1202,7 +1202,7 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) // Result generated for each failure message rank-group. for _, msg := range msgs { - resp.Results = append(resp.Results, &mgmtpb.SystemDrainResp_DrainResult{ + resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ // Status already included in error message. Status: -1, Msg: msg, diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 50b58a5ab87..5bca3ab228a 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1906,7 +1906,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { dReq(1, 0), dReq(1, 1), dReq(2, 1), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemDrainResp_DrainResult{ + Results: []*mgmtpb.SystemOsaResult{ {PoolId: test.MockUUID(1), Ranks: "0-1"}, {PoolId: test.MockUUID(2), Ranks: "1"}, }, @@ -1928,7 +1928,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { dReq(2, 1), dReq(2, 2), dReq(2, 3), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemDrainResp_DrainResult{ + Results: []*mgmtpb.SystemOsaResult{ {PoolId: test.MockUUID(1), Ranks: "0-3"}, {PoolId: test.MockUUID(2), Ranks: "1-3"}, }, @@ -1951,7 +1951,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { dReq(2, 1), dReq(2, 2), dReq(2, 3), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemDrainResp_DrainResult{ + Results: []*mgmtpb.SystemOsaResult{ {PoolId: "00000001", Ranks: "0-3"}, {PoolId: "00000002", Ranks: "1-3"}, }, @@ -1972,7 +1972,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { dReq(1, 1), dReq(1, 2), dReq(2, 1), dReq(2, 2), }, expResp: &mgmtpb.SystemDrainResp{ - Results: []*mgmtpb.SystemDrainResp_DrainResult{ + Results: []*mgmtpb.SystemOsaResult{ { PoolId: test.MockUUID(1), Ranks: "1-2", @@ -2041,7 +2041,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { cmpOpts := []cmp.Option{ cmpopts.IgnoreUnexported(mgmtpb.SystemDrainResp{}, - mgmtpb.SystemDrainResp_DrainResult{}), + mgmtpb.SystemOsaResult{}), } if diff := cmp.Diff(tc.expResp, gotResp, cmpOpts...); diff != "" { t.Fatalf("unexpected response (-want, +got):\n%s\n", diff) From 4fe74fbf352ffe62f7495f4b5b0611225e6c1c12 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 3 Dec 2024 14:13:27 +0000 Subject: [PATCH 02/19] update drpc method names Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/drpc/modules.go | 20 +++++++++---------- src/control/security/grpc_authorization.go | 3 ++- .../security/grpc_authorization_test.go | 3 ++- src/include/daos/drpc_modules.h | 8 ++++---- src/mgmt/srv.c | 14 ++++++------- 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/control/drpc/modules.go b/src/control/drpc/modules.go index 626f3d7426b..77e7ddde42d 100644 --- a/src/control/drpc/modules.go +++ b/src/control/drpc/modules.go @@ -134,7 +134,7 @@ func (m MgmtMethod) String() string { MethodPoolExclude: "PoolExclude", MethodPoolDrain: "PoolDrain", MethodPoolExtend: "PoolExtend", - MethodPoolReintegrate: "PoolReintegrate", + MethodPoolReint: "PoolReint", MethodBioHealth: "BioHealth", MethodSetUp: "SetUp", MethodSmdDevs: "SmdDevs", @@ -191,16 +191,16 @@ const ( MethodPoolCreate MgmtMethod = C.DRPC_METHOD_MGMT_POOL_CREATE // MethodPoolDestroy is a ModuleMgmt method MethodPoolDestroy MgmtMethod = C.DRPC_METHOD_MGMT_POOL_DESTROY - // MethodPoolEvict is a ModuleMgmt method + // MethodPoolEvict is a ModuleMgmt method to evict pool connections MethodPoolEvict MgmtMethod = C.DRPC_METHOD_MGMT_POOL_EVICT - // MethodPoolExclude is a ModuleMgmt method - MethodPoolExclude MgmtMethod = C.DRPC_METHOD_MGMT_EXCLUDE - // MethodPoolDrain is a ModuleMgmt method - MethodPoolDrain MgmtMethod = C.DRPC_METHOD_MGMT_DRAIN - // MethodPoolExtend is a ModuleMgmt method - MethodPoolExtend MgmtMethod = C.DRPC_METHOD_MGMT_EXTEND - // MethodPoolReintegrate is a ModuleMgmt method - MethodPoolReintegrate MgmtMethod = C.DRPC_METHOD_MGMT_REINTEGRATE + // MethodPoolExclude is a ModuleMgmt method for excluding pool ranks + MethodPoolExclude MgmtMethod = C.DRPC_METHOD_MGMT_POOL_EXCLUDE + // MethodPoolDrain is a ModuleMgmt method for draining pool ranks + MethodPoolDrain MgmtMethod = C.DRPC_METHOD_MGMT_POOL_DRAIN + // MethodPoolReint is a ModuleMgmt method for reintegrating pool ranks + MethodPoolReint MgmtMethod = C.DRPC_METHOD_MGMT_POOL_REINT + // MethodPoolExtend is a ModuleMgmt method for extending pool + MethodPoolExtend MgmtMethod = C.DRPC_METHOD_MGMT_POOL_EXTEND // MethodBioHealth is a ModuleMgmt method MethodBioHealth MgmtMethod = C.DRPC_METHOD_MGMT_BIO_HEALTH_QUERY // MethodSetUp is a ModuleMgmt method diff --git a/src/control/security/grpc_authorization.go b/src/control/security/grpc_authorization.go index dc80a114921..dddc069ee53 100644 --- a/src/control/security/grpc_authorization.go +++ b/src/control/security/grpc_authorization.go @@ -52,6 +52,7 @@ 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}, @@ -64,7 +65,7 @@ var methodAuthorizations = map[string][]Component{ "/mgmt.MgmtSvc/PoolDeleteACL": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolExclude": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolDrain": {ComponentAdmin}, - "/mgmt.MgmtSvc/PoolReintegrate": {ComponentAdmin}, + "/mgmt.MgmtSvc/PoolReint": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolEvict": {ComponentAdmin, ComponentAgent}, "/mgmt.MgmtSvc/PoolExtend": {ComponentAdmin}, "/mgmt.MgmtSvc/GetAttachInfo": {ComponentAgent}, diff --git a/src/control/security/grpc_authorization_test.go b/src/control/security/grpc_authorization_test.go index cbb6026ea0f..a886b97f9aa 100644 --- a/src/control/security/grpc_authorization_test.go +++ b/src/control/security/grpc_authorization_test.go @@ -77,6 +77,7 @@ 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}, @@ -89,7 +90,7 @@ func TestSecurity_ComponentHasAccess(t *testing.T) { "/mgmt.MgmtSvc/PoolDeleteACL": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolExclude": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolDrain": {ComponentAdmin}, - "/mgmt.MgmtSvc/PoolReintegrate": {ComponentAdmin}, + "/mgmt.MgmtSvc/PoolReint": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolEvict": {ComponentAdmin, ComponentAgent}, "/mgmt.MgmtSvc/PoolExtend": {ComponentAdmin}, "/mgmt.MgmtSvc/GetAttachInfo": {ComponentAgent}, diff --git a/src/include/daos/drpc_modules.h b/src/include/daos/drpc_modules.h index 16a7903a395..78d8abd6fa0 100644 --- a/src/include/daos/drpc_modules.h +++ b/src/include/daos/drpc_modules.h @@ -53,12 +53,8 @@ enum drpc_mgmt_method { DRPC_METHOD_MGMT_POOL_QUERY = 223, DRPC_METHOD_MGMT_POOL_SET_PROP = 224, DRPC_METHOD_MGMT_PING_RANK = 225, - DRPC_METHOD_MGMT_REINTEGRATE = 226, DRPC_METHOD_MGMT_CONT_SET_OWNER = 227, - DRPC_METHOD_MGMT_EXCLUDE = 228, - DRPC_METHOD_MGMT_EXTEND = 229, DRPC_METHOD_MGMT_POOL_EVICT = 230, - DRPC_METHOD_MGMT_DRAIN = 231, DRPC_METHOD_MGMT_GROUP_UPDATE = 232, DRPC_METHOD_MGMT_NOTIFY_EXIT = 233, DRPC_METHOD_MGMT_NOTIFY_POOL_CONNECT = 235, @@ -74,6 +70,10 @@ enum drpc_mgmt_method { DRPC_METHOD_MGMT_CHK_PROP = 245, DRPC_METHOD_MGMT_CHK_ACT = 246, DRPC_METHOD_MGMT_SETUP_CLIENT_TELEM = 247, + DRPC_METHOD_MGMT_POOL_REINT = 248, + DRPC_METHOD_MGMT_POOL_DRAIN = 249, + DRPC_METHOD_MGMT_POOL_EXCLUDE = 250, + DRPC_METHOD_MGMT_POOL_EXTEND = 251, NUM_DRPC_MGMT_METHODS /* Must be last */ }; diff --git a/src/mgmt/srv.c b/src/mgmt/srv.c index ebd3e29e09f..46bc78d10fe 100644 --- a/src/mgmt/srv.c +++ b/src/mgmt/srv.c @@ -74,6 +74,9 @@ process_drpc_request(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) case DRPC_METHOD_MGMT_PING_RANK: ds_mgmt_drpc_ping_rank(drpc_req, drpc_resp); break; + case DRPC_METHOD_MGMT_SET_UP: + ds_mgmt_drpc_set_up(drpc_req, drpc_resp); + break; case DRPC_METHOD_MGMT_SET_LOG_MASKS: ds_mgmt_drpc_set_log_masks(drpc_req, drpc_resp); break; @@ -92,19 +95,16 @@ process_drpc_request(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) case DRPC_METHOD_MGMT_POOL_EVICT: ds_mgmt_drpc_pool_evict(drpc_req, drpc_resp); break; - case DRPC_METHOD_MGMT_SET_UP: - ds_mgmt_drpc_set_up(drpc_req, drpc_resp); - break; - case DRPC_METHOD_MGMT_EXCLUDE: + case DRPC_METHOD_MGMT_POOL_EXCLUDE: ds_mgmt_drpc_pool_exclude(drpc_req, drpc_resp); break; - case DRPC_METHOD_MGMT_DRAIN: + case DRPC_METHOD_MGMT_POOL_DRAIN: ds_mgmt_drpc_pool_drain(drpc_req, drpc_resp); break; - case DRPC_METHOD_MGMT_REINTEGRATE: + case DRPC_METHOD_MGMT_POOL_REINT: ds_mgmt_drpc_pool_reintegrate(drpc_req, drpc_resp); break; - case DRPC_METHOD_MGMT_EXTEND: + case DRPC_METHOD_MGMT_POOL_EXTEND: ds_mgmt_drpc_pool_extend(drpc_req, drpc_resp); break; case DRPC_METHOD_MGMT_BIO_HEALTH_QUERY: From 1d0919d94394bf5fd5a10a2a3348c0c3aec84d8c Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 3 Dec 2024 14:17:05 +0000 Subject: [PATCH 03/19] protobuf related changes Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/common/proto/mgmt/mgmt.pb.go | 531 ++++++------- src/control/common/proto/mgmt/mgmt_grpc.pb.go | 69 +- src/control/common/proto/mgmt/pool.pb.go | 495 ++++++------ src/control/common/proto/mgmt/system.pb.go | 734 +++++++++++------- src/mgmt/pool.pb-c.c | 345 ++++---- src/mgmt/pool.pb-c.h | 186 ++--- src/proto/mgmt/mgmt.proto | 4 +- src/proto/mgmt/pool.proto | 10 +- src/proto/mgmt/system.proto | 34 +- 9 files changed, 1278 insertions(+), 1130 deletions(-) diff --git a/src/control/common/proto/mgmt/mgmt.pb.go b/src/control/common/proto/mgmt/mgmt.pb.go index 24da4c98de9..1a9702d7ade 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, 0xce, 0x15, 0x0a, 0x07, 0x4d, 0x67, 0x6d, 0x74, 0x53, 0x76, 0x63, 0x12, + 0x6f, 0x74, 0x6f, 0x32, 0xfa, 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, @@ -74,151 +74,154 @@ var file_mgmt_mgmt_proto_rawDesc = []byte{ 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, - 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, - 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x48, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x47, + 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, + 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, + 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, - 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, - 0x41, 0x43, 0x4c, 0x12, 0x0f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x43, - 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, - 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, - 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, - 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, - 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, - 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x12, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x37, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x12, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, - 0x72, 0x61, 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, 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, + 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x41, 0x43, + 0x4c, 0x12, 0x0f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x43, 0x4c, 0x52, + 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, + 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, + 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, + 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, + 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x37, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, + 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x53, 0x74, 0x6f, 0x70, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, + 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, + 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, 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, + 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{}{ @@ -231,7 +234,7 @@ var file_mgmt_mgmt_proto_goTypes = []interface{}{ (*PoolExcludeReq)(nil), // 6: mgmt.PoolExcludeReq (*PoolDrainReq)(nil), // 7: mgmt.PoolDrainReq (*PoolExtendReq)(nil), // 8: mgmt.PoolExtendReq - (*PoolReintegrateReq)(nil), // 9: mgmt.PoolReintegrateReq + (*PoolReintReq)(nil), // 9: mgmt.PoolReintReq (*PoolQueryReq)(nil), // 10: mgmt.PoolQueryReq (*PoolQueryTargetReq)(nil), // 11: mgmt.PoolQueryTargetReq (*PoolSetPropReq)(nil), // 12: mgmt.PoolSetPropReq @@ -248,57 +251,59 @@ var file_mgmt_mgmt_proto_goTypes = []interface{}{ (*SystemStartReq)(nil), // 23: mgmt.SystemStartReq (*SystemExcludeReq)(nil), // 24: mgmt.SystemExcludeReq (*SystemDrainReq)(nil), // 25: mgmt.SystemDrainReq - (*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 - (*PoolReintegrateResp)(nil), // 52: mgmt.PoolReintegrateResp - (*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 + (*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 } var file_mgmt_mgmt_proto_depIdxs = []int32{ 0, // 0: mgmt.MgmtSvc.Join:input_type -> mgmt.JoinReq @@ -310,7 +315,7 @@ var file_mgmt_mgmt_proto_depIdxs = []int32{ 6, // 6: mgmt.MgmtSvc.PoolExclude:input_type -> mgmt.PoolExcludeReq 7, // 7: mgmt.MgmtSvc.PoolDrain:input_type -> mgmt.PoolDrainReq 8, // 8: mgmt.MgmtSvc.PoolExtend:input_type -> mgmt.PoolExtendReq - 9, // 9: mgmt.MgmtSvc.PoolReintegrate:input_type -> mgmt.PoolReintegrateReq + 9, // 9: mgmt.MgmtSvc.PoolReint:input_type -> mgmt.PoolReintReq 10, // 10: mgmt.MgmtSvc.PoolQuery:input_type -> mgmt.PoolQueryReq 11, // 11: mgmt.MgmtSvc.PoolQueryTarget:input_type -> mgmt.PoolQueryTargetReq 12, // 12: mgmt.MgmtSvc.PoolSetProp:input_type -> mgmt.PoolSetPropReq @@ -328,71 +333,73 @@ 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.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.PoolReintegrate:output_type -> mgmt.PoolReintegrateResp - 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 + 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 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 dc9e2b1555a..5018840b6d7 100644 --- a/src/control/common/proto/mgmt/mgmt_grpc.pb.go +++ b/src/control/common/proto/mgmt/mgmt_grpc.pb.go @@ -36,7 +36,7 @@ const ( MgmtSvc_PoolExclude_FullMethodName = "/mgmt.MgmtSvc/PoolExclude" MgmtSvc_PoolDrain_FullMethodName = "/mgmt.MgmtSvc/PoolDrain" MgmtSvc_PoolExtend_FullMethodName = "/mgmt.MgmtSvc/PoolExtend" - MgmtSvc_PoolReintegrate_FullMethodName = "/mgmt.MgmtSvc/PoolReintegrate" + MgmtSvc_PoolReint_FullMethodName = "/mgmt.MgmtSvc/PoolReint" MgmtSvc_PoolQuery_FullMethodName = "/mgmt.MgmtSvc/PoolQuery" MgmtSvc_PoolQueryTarget_FullMethodName = "/mgmt.MgmtSvc/PoolQueryTarget" MgmtSvc_PoolSetProp_FullMethodName = "/mgmt.MgmtSvc/PoolSetProp" @@ -54,6 +54,7 @@ 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" @@ -98,7 +99,7 @@ type MgmtSvcClient interface { // Extend a pool. PoolExtend(ctx context.Context, in *PoolExtendReq, opts ...grpc.CallOption) (*PoolExtendResp, error) // Reintegrate a pool target. - PoolReintegrate(ctx context.Context, in *PoolReintegrateReq, opts ...grpc.CallOption) (*PoolReintegrateResp, error) + PoolReint(ctx context.Context, in *PoolReintReq, opts ...grpc.CallOption) (*PoolReintResp, error) // PoolQuery queries a DAOS pool. PoolQuery(ctx context.Context, in *PoolQueryReq, opts ...grpc.CallOption) (*PoolQueryResp, error) // PoolQueryTarget queries a DAOS storage target. @@ -133,6 +134,8 @@ type MgmtSvcClient interface { SystemExclude(ctx context.Context, in *SystemExcludeReq, opts ...grpc.CallOption) (*SystemExcludeResp, error) // Drain 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 @@ -260,9 +263,9 @@ func (c *mgmtSvcClient) PoolExtend(ctx context.Context, in *PoolExtendReq, opts return out, nil } -func (c *mgmtSvcClient) PoolReintegrate(ctx context.Context, in *PoolReintegrateReq, opts ...grpc.CallOption) (*PoolReintegrateResp, error) { - out := new(PoolReintegrateResp) - err := c.cc.Invoke(ctx, MgmtSvc_PoolReintegrate_FullMethodName, in, out, opts...) +func (c *mgmtSvcClient) PoolReint(ctx context.Context, in *PoolReintReq, opts ...grpc.CallOption) (*PoolReintResp, error) { + out := new(PoolReintResp) + err := c.cc.Invoke(ctx, MgmtSvc_PoolReint_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -422,6 +425,15 @@ 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...) @@ -608,7 +620,7 @@ type MgmtSvcServer interface { // Extend a pool. PoolExtend(context.Context, *PoolExtendReq) (*PoolExtendResp, error) // Reintegrate a pool target. - PoolReintegrate(context.Context, *PoolReintegrateReq) (*PoolReintegrateResp, error) + PoolReint(context.Context, *PoolReintReq) (*PoolReintResp, error) // PoolQuery queries a DAOS pool. PoolQuery(context.Context, *PoolQueryReq) (*PoolQueryResp, error) // PoolQueryTarget queries a DAOS storage target. @@ -643,6 +655,8 @@ type MgmtSvcServer interface { SystemExclude(context.Context, *SystemExcludeReq) (*SystemExcludeResp, error) // Drain 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 @@ -713,8 +727,8 @@ func (UnimplementedMgmtSvcServer) PoolDrain(context.Context, *PoolDrainReq) (*Po func (UnimplementedMgmtSvcServer) PoolExtend(context.Context, *PoolExtendReq) (*PoolExtendResp, error) { return nil, status.Errorf(codes.Unimplemented, "method PoolExtend not implemented") } -func (UnimplementedMgmtSvcServer) PoolReintegrate(context.Context, *PoolReintegrateReq) (*PoolReintegrateResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method PoolReintegrate not implemented") +func (UnimplementedMgmtSvcServer) PoolReint(context.Context, *PoolReintReq) (*PoolReintResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method PoolReint not implemented") } func (UnimplementedMgmtSvcServer) PoolQuery(context.Context, *PoolQueryReq) (*PoolQueryResp, error) { return nil, status.Errorf(codes.Unimplemented, "method PoolQuery not implemented") @@ -767,6 +781,9 @@ 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") } @@ -996,20 +1013,20 @@ func _MgmtSvc_PoolExtend_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _MgmtSvc_PoolReintegrate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PoolReintegrateReq) +func _MgmtSvc_PoolReint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PoolReintReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MgmtSvcServer).PoolReintegrate(ctx, in) + return srv.(MgmtSvcServer).PoolReint(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: MgmtSvc_PoolReintegrate_FullMethodName, + FullMethod: MgmtSvc_PoolReint_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MgmtSvcServer).PoolReintegrate(ctx, req.(*PoolReintegrateReq)) + return srv.(MgmtSvcServer).PoolReint(ctx, req.(*PoolReintReq)) } return interceptor(ctx, in, info, handler) } @@ -1320,6 +1337,24 @@ 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 { @@ -1688,8 +1723,8 @@ var MgmtSvc_ServiceDesc = grpc.ServiceDesc{ Handler: _MgmtSvc_PoolExtend_Handler, }, { - MethodName: "PoolReintegrate", - Handler: _MgmtSvc_PoolReintegrate_Handler, + MethodName: "PoolReint", + Handler: _MgmtSvc_PoolReint_Handler, }, { MethodName: "PoolQuery", @@ -1759,6 +1794,10 @@ 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/pool.pb.go b/src/control/common/proto/mgmt/pool.pb.go index df23fa87504..1a99da5f699 100644 --- a/src/control/common/proto/mgmt/pool.pb.go +++ b/src/control/common/proto/mgmt/pool.pb.go @@ -6,7 +6,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.33.0 +// protoc-gen-go v1.31.0 // protoc v3.5.0 // source: mgmt/pool.proto @@ -1224,8 +1224,8 @@ func (x *PoolExtendResp) GetTierBytes() []uint64 { return nil } -// PoolReintegrateReq supplies pool identifier, rank, and target_idxs. -type PoolReintegrateReq struct { +// PoolReintReq supplies pool identifier, rank, and target_idxs. +type PoolReintReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1239,8 +1239,8 @@ type PoolReintegrateReq struct { MemRatio float32 `protobuf:"fixed32,7,opt,name=mem_ratio,json=memRatio,proto3" json:"mem_ratio,omitempty"` // Fraction of meta-blob-sz to use as mem-file-sz } -func (x *PoolReintegrateReq) Reset() { - *x = PoolReintegrateReq{} +func (x *PoolReintReq) Reset() { + *x = PoolReintReq{} if protoimpl.UnsafeEnabled { mi := &file_mgmt_pool_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1248,13 +1248,13 @@ func (x *PoolReintegrateReq) Reset() { } } -func (x *PoolReintegrateReq) String() string { +func (x *PoolReintReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PoolReintegrateReq) ProtoMessage() {} +func (*PoolReintReq) ProtoMessage() {} -func (x *PoolReintegrateReq) ProtoReflect() protoreflect.Message { +func (x *PoolReintReq) ProtoReflect() protoreflect.Message { mi := &file_mgmt_pool_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1266,62 +1266,62 @@ func (x *PoolReintegrateReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PoolReintegrateReq.ProtoReflect.Descriptor instead. -func (*PoolReintegrateReq) Descriptor() ([]byte, []int) { +// Deprecated: Use PoolReintReq.ProtoReflect.Descriptor instead. +func (*PoolReintReq) Descriptor() ([]byte, []int) { return file_mgmt_pool_proto_rawDescGZIP(), []int{12} } -func (x *PoolReintegrateReq) GetSys() string { +func (x *PoolReintReq) GetSys() string { if x != nil { return x.Sys } return "" } -func (x *PoolReintegrateReq) GetId() string { +func (x *PoolReintReq) GetId() string { if x != nil { return x.Id } return "" } -func (x *PoolReintegrateReq) GetRank() uint32 { +func (x *PoolReintReq) GetRank() uint32 { if x != nil { return x.Rank } return 0 } -func (x *PoolReintegrateReq) GetTargetIdx() []uint32 { +func (x *PoolReintReq) GetTargetIdx() []uint32 { if x != nil { return x.TargetIdx } return nil } -func (x *PoolReintegrateReq) GetSvcRanks() []uint32 { +func (x *PoolReintReq) GetSvcRanks() []uint32 { if x != nil { return x.SvcRanks } return nil } -func (x *PoolReintegrateReq) GetTierBytes() []uint64 { +func (x *PoolReintReq) GetTierBytes() []uint64 { if x != nil { return x.TierBytes } return nil } -func (x *PoolReintegrateReq) GetMemRatio() float32 { +func (x *PoolReintReq) GetMemRatio() float32 { if x != nil { return x.MemRatio } return 0 } -// PoolReintegrateResp returns resultant state of Reintegrate operation. -type PoolReintegrateResp struct { +// PoolReintResp returns resultant state of Reintegrate operation. +type PoolReintResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1329,8 +1329,8 @@ type PoolReintegrateResp struct { Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code } -func (x *PoolReintegrateResp) Reset() { - *x = PoolReintegrateResp{} +func (x *PoolReintResp) Reset() { + *x = PoolReintResp{} if protoimpl.UnsafeEnabled { mi := &file_mgmt_pool_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1338,13 +1338,13 @@ func (x *PoolReintegrateResp) Reset() { } } -func (x *PoolReintegrateResp) String() string { +func (x *PoolReintResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PoolReintegrateResp) ProtoMessage() {} +func (*PoolReintResp) ProtoMessage() {} -func (x *PoolReintegrateResp) ProtoReflect() protoreflect.Message { +func (x *PoolReintResp) ProtoReflect() protoreflect.Message { mi := &file_mgmt_pool_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1356,12 +1356,12 @@ func (x *PoolReintegrateResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PoolReintegrateResp.ProtoReflect.Descriptor instead. -func (*PoolReintegrateResp) Descriptor() ([]byte, []int) { +// Deprecated: Use PoolReintResp.ProtoReflect.Descriptor instead. +func (*PoolReintResp) Descriptor() ([]byte, []int) { return file_mgmt_pool_proto_rawDescGZIP(), []int{13} } -func (x *PoolReintegrateResp) GetStatus() int32 { +func (x *PoolReintResp) GetStatus() int32 { if x != nil { return x.Status } @@ -3000,229 +3000,228 @@ var file_mgmt_pool_proto_rawDesc = []byte{ 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, - 0xc2, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, - 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, - 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, - 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x5f, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x52, - 0x61, 0x74, 0x69, 0x6f, 0x22, 0x2d, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0xbc, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x49, 0x64, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, + 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, + 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x27, + 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x22, 0x20, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x22, 0x83, 0x02, 0x0a, 0x0d, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 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, 0x22, 0x20, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x73, 0x79, 0x73, 0x22, 0x83, 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, - 0x6f, 0x6c, 0x73, 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, - 0x2e, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x1a, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x70, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x52, 0x65, 0x70, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, - 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x4c, 0x0a, 0x0b, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, + 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, + 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, + 0x6f, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x63, + 0x5f, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, + 0x52, 0x65, 0x70, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x4c, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x7b, 0x0a, + 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 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, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x1a, 0x1a, + 0x0a, 0x04, 0x43, 0x6f, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x6c, 0x0a, 0x0c, 0x50, 0x6f, + 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x7b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 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, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x1a, 0x1a, 0x0a, 0x04, 0x43, 0x6f, - 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x6c, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, - 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, - 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x66, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x61, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x6d, 0x65, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x0a, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x25, 0x0a, 0x05, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x53, 0x59, 0x10, - 0x02, 0x22, 0x8b, 0x06, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 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, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x07, - 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x07, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, - 0x36, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x74, 0x69, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x25, - 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, - 0x6f, 0x6c, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x6f, 0x6c, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x56, - 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x6c, 0x61, - 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, - 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x56, 0x65, 0x72, - 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x73, 0x76, 0x63, 0x5f, 0x6c, 0x64, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x73, 0x76, 0x63, 0x4c, 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x63, 0x5f, 0x72, - 0x65, 0x70, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x52, 0x65, - 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x46, 0x69, - 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x4a, 0x04, 0x08, 0x09, - 0x10, 0x0a, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, - 0x63, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, - 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x76, 0x61, - 0x6c, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x29, 0x0a, 0x0f, 0x50, 0x6f, - 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, + 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x6d, 0x65, 0x61, 0x6e, + 0x12, 0x35, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x50, - 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 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, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x4f, 0x0a, 0x0e, 0x50, 0x6f, - 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x25, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, + 0x55, 0x53, 0x59, 0x10, 0x02, 0x22, 0x8b, 0x06, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, + 0x65, 0x72, 0x79, 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, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x07, 0x72, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, + 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, + 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x65, + 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x6f, 0x6c, 0x4c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x56, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x56, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x5f, 0x6c, 0x64, 0x72, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x76, 0x63, 0x4c, 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x76, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, + 0x76, 0x63, 0x52, 0x65, 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, + 0x65, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, + 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x73, + 0x74, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, + 0x74, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x42, + 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, + 0x6c, 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, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x29, + 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 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, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, + 0x6f, 0x6c, 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, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x29, 0x0a, 0x0f, 0x50, - 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 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, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x6f, 0x6c, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, - 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x75, 0x0a, 0x12, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x80, 0x03, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, - 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x46, 0x69, 0x6c, - 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x0a, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x00, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x44, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x53, - 0x44, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x4d, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x56, - 0x4d, 0x10, 0x04, 0x22, 0x5f, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x55, - 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x06, 0x0a, - 0x02, 0x55, 0x50, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x50, 0x5f, 0x49, 0x4e, 0x10, 0x04, - 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x41, - 0x49, 0x4e, 0x10, 0x06, 0x22, 0x5e, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 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, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, - 0x6e, 0x66, 0x6f, 0x73, 0x2a, 0x25, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x4d, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x56, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x56, 0x0a, 0x10, 0x50, - 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x0c, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x65, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x10, 0x04, 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, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, + 0x5d, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 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, 0x32, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x4f, + 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, + 0x29, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 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, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x50, + 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x75, + 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, + 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x35, + 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0x80, 0x03, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, + 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x0a, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x44, 0x44, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x53, 0x53, 0x44, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x4d, 0x10, 0x03, 0x12, + 0x06, 0x0a, 0x02, 0x56, 0x4d, 0x10, 0x04, 0x22, 0x5f, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, + 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, + 0x02, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x50, 0x5f, + 0x49, 0x4e, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x05, 0x12, 0x09, 0x0a, + 0x05, 0x44, 0x52, 0x41, 0x49, 0x4e, 0x10, 0x06, 0x22, 0x5e, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 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, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x2a, 0x25, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, + 0x53, 0x43, 0x4d, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x56, 0x4d, 0x45, 0x10, 0x01, 0x2a, + 0x56, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x44, 0x65, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x04, 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 ( @@ -3257,8 +3256,8 @@ var file_mgmt_pool_proto_goTypes = []interface{}{ (*PoolDrainResp)(nil), // 14: mgmt.PoolDrainResp (*PoolExtendReq)(nil), // 15: mgmt.PoolExtendReq (*PoolExtendResp)(nil), // 16: mgmt.PoolExtendResp - (*PoolReintegrateReq)(nil), // 17: mgmt.PoolReintegrateReq - (*PoolReintegrateResp)(nil), // 18: mgmt.PoolReintegrateResp + (*PoolReintReq)(nil), // 17: mgmt.PoolReintReq + (*PoolReintResp)(nil), // 18: mgmt.PoolReintResp (*ListPoolsReq)(nil), // 19: mgmt.ListPoolsReq (*ListPoolsResp)(nil), // 20: mgmt.ListPoolsResp (*ListContReq)(nil), // 21: mgmt.ListContReq @@ -3456,7 +3455,7 @@ func file_mgmt_pool_proto_init() { } } file_mgmt_pool_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PoolReintegrateReq); i { + switch v := v.(*PoolReintReq); i { case 0: return &v.state case 1: @@ -3468,7 +3467,7 @@ func file_mgmt_pool_proto_init() { } } file_mgmt_pool_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PoolReintegrateResp); i { + switch v := v.(*PoolReintResp); i { case 0: return &v.state case 1: diff --git a/src/control/common/proto/mgmt/system.pb.go b/src/control/common/proto/mgmt/system.pb.go index 186b22c91c4..8eb8cba4a7c 100644 --- a/src/control/common/proto/mgmt/system.pb.go +++ b/src/control/common/proto/mgmt/system.pb.go @@ -567,6 +567,78 @@ func (x *SystemExcludeResp) GetResults() []*shared.RankResult { return nil } +// Results for system OSA calls on multiple pool-ranks. +type SystemOsaResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // Status of the OSA operation on a specific pool + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // Error message if status indicates an error + PoolId string `protobuf:"bytes,3,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` // Label or uuid of pool + 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{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_system_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SystemOsaResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SystemOsaResult) ProtoMessage() {} + +func (x *SystemOsaResult) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_system_proto_msgTypes[7] + 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 SystemOsaResult.ProtoReflect.Descriptor instead. +func (*SystemOsaResult) Descriptor() ([]byte, []int) { + return file_mgmt_system_proto_rawDescGZIP(), []int{7} +} + +func (x *SystemOsaResult) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *SystemOsaResult) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *SystemOsaResult) GetPoolId() string { + if x != nil { + return x.PoolId + } + return "" +} + +func (x *SystemOsaResult) GetRanks() string { + if x != nil { + return x.Ranks + } + return "" +} + // SystemDrainReq supplies system-drain parameters. type SystemDrainReq struct { state protoimpl.MessageState @@ -581,7 +653,7 @@ type SystemDrainReq struct { func (x *SystemDrainReq) Reset() { *x = SystemDrainReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[7] + mi := &file_mgmt_system_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -594,7 +666,7 @@ func (x *SystemDrainReq) String() string { func (*SystemDrainReq) ProtoMessage() {} func (x *SystemDrainReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[7] + mi := &file_mgmt_system_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -607,7 +679,7 @@ func (x *SystemDrainReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemDrainReq.ProtoReflect.Descriptor instead. func (*SystemDrainReq) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{7} + return file_mgmt_system_proto_rawDescGZIP(), []int{8} } func (x *SystemDrainReq) GetSys() string { @@ -637,13 +709,14 @@ type SystemDrainResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Results []*SystemDrainResp_DrainResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` // Results for pool-ranks drain calls. + 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. } func (x *SystemDrainResp) Reset() { *x = SystemDrainResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[8] + mi := &file_mgmt_system_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -656,7 +729,7 @@ func (x *SystemDrainResp) String() string { func (*SystemDrainResp) ProtoMessage() {} func (x *SystemDrainResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[8] + mi := &file_mgmt_system_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -669,10 +742,137 @@ func (x *SystemDrainResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemDrainResp.ProtoReflect.Descriptor instead. func (*SystemDrainResp) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{8} + return file_mgmt_system_proto_rawDescGZIP(), []int{9} } -func (x *SystemDrainResp) GetResults() []*SystemDrainResp_DrainResult { +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 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *SystemReintResp) GetResults() []*SystemOsaResult { if x != nil { return x.Results } @@ -694,7 +894,7 @@ type SystemQueryReq struct { func (x *SystemQueryReq) Reset() { *x = SystemQueryReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[9] + mi := &file_mgmt_system_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -707,7 +907,7 @@ func (x *SystemQueryReq) String() string { func (*SystemQueryReq) ProtoMessage() {} func (x *SystemQueryReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[9] + mi := &file_mgmt_system_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -720,7 +920,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{9} + return file_mgmt_system_proto_rawDescGZIP(), []int{12} } func (x *SystemQueryReq) GetSys() string { @@ -767,7 +967,7 @@ type SystemQueryResp struct { func (x *SystemQueryResp) Reset() { *x = SystemQueryResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[10] + mi := &file_mgmt_system_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -780,7 +980,7 @@ func (x *SystemQueryResp) String() string { func (*SystemQueryResp) ProtoMessage() {} func (x *SystemQueryResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[10] + mi := &file_mgmt_system_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -793,7 +993,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{10} + return file_mgmt_system_proto_rawDescGZIP(), []int{13} } func (x *SystemQueryResp) GetMembers() []*SystemMember { @@ -843,7 +1043,7 @@ type SystemEraseReq struct { func (x *SystemEraseReq) Reset() { *x = SystemEraseReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[11] + mi := &file_mgmt_system_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -856,7 +1056,7 @@ func (x *SystemEraseReq) String() string { func (*SystemEraseReq) ProtoMessage() {} func (x *SystemEraseReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[11] + mi := &file_mgmt_system_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -869,7 +1069,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{11} + return file_mgmt_system_proto_rawDescGZIP(), []int{14} } func (x *SystemEraseReq) GetSys() string { @@ -890,7 +1090,7 @@ type SystemEraseResp struct { func (x *SystemEraseResp) Reset() { *x = SystemEraseResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[12] + mi := &file_mgmt_system_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -903,7 +1103,7 @@ func (x *SystemEraseResp) String() string { func (*SystemEraseResp) ProtoMessage() {} func (x *SystemEraseResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[12] + mi := &file_mgmt_system_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -916,7 +1116,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{12} + return file_mgmt_system_proto_rawDescGZIP(), []int{15} } func (x *SystemEraseResp) GetResults() []*shared.RankResult { @@ -939,7 +1139,7 @@ type SystemCleanupReq struct { func (x *SystemCleanupReq) Reset() { *x = SystemCleanupReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[13] + mi := &file_mgmt_system_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -952,7 +1152,7 @@ func (x *SystemCleanupReq) String() string { func (*SystemCleanupReq) ProtoMessage() {} func (x *SystemCleanupReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[13] + mi := &file_mgmt_system_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -965,7 +1165,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{13} + return file_mgmt_system_proto_rawDescGZIP(), []int{16} } func (x *SystemCleanupReq) GetSys() string { @@ -994,7 +1194,7 @@ type SystemCleanupResp struct { func (x *SystemCleanupResp) Reset() { *x = SystemCleanupResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[14] + mi := &file_mgmt_system_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1007,7 +1207,7 @@ func (x *SystemCleanupResp) String() string { func (*SystemCleanupResp) ProtoMessage() {} func (x *SystemCleanupResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[14] + mi := &file_mgmt_system_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1020,7 +1220,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{14} + return file_mgmt_system_proto_rawDescGZIP(), []int{17} } func (x *SystemCleanupResp) GetResults() []*SystemCleanupResp_CleanupResult { @@ -1043,7 +1243,7 @@ type SystemSetAttrReq struct { func (x *SystemSetAttrReq) Reset() { *x = SystemSetAttrReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[15] + mi := &file_mgmt_system_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1056,7 +1256,7 @@ func (x *SystemSetAttrReq) String() string { func (*SystemSetAttrReq) ProtoMessage() {} func (x *SystemSetAttrReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[15] + mi := &file_mgmt_system_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1069,7 +1269,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{15} + return file_mgmt_system_proto_rawDescGZIP(), []int{18} } func (x *SystemSetAttrReq) GetSys() string { @@ -1100,7 +1300,7 @@ type SystemGetAttrReq struct { func (x *SystemGetAttrReq) Reset() { *x = SystemGetAttrReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[16] + mi := &file_mgmt_system_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1113,7 +1313,7 @@ func (x *SystemGetAttrReq) String() string { func (*SystemGetAttrReq) ProtoMessage() {} func (x *SystemGetAttrReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[16] + mi := &file_mgmt_system_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1126,7 +1326,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{16} + return file_mgmt_system_proto_rawDescGZIP(), []int{19} } func (x *SystemGetAttrReq) GetSys() string { @@ -1155,7 +1355,7 @@ type SystemGetAttrResp struct { func (x *SystemGetAttrResp) Reset() { *x = SystemGetAttrResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[17] + mi := &file_mgmt_system_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1168,7 +1368,7 @@ func (x *SystemGetAttrResp) String() string { func (*SystemGetAttrResp) ProtoMessage() {} func (x *SystemGetAttrResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[17] + mi := &file_mgmt_system_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1181,7 +1381,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{17} + return file_mgmt_system_proto_rawDescGZIP(), []int{20} } func (x *SystemGetAttrResp) GetAttributes() map[string]string { @@ -1204,7 +1404,7 @@ type SystemSetPropReq struct { func (x *SystemSetPropReq) Reset() { *x = SystemSetPropReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[18] + mi := &file_mgmt_system_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1217,7 +1417,7 @@ func (x *SystemSetPropReq) String() string { func (*SystemSetPropReq) ProtoMessage() {} func (x *SystemSetPropReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[18] + mi := &file_mgmt_system_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1230,7 +1430,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{18} + return file_mgmt_system_proto_rawDescGZIP(), []int{21} } func (x *SystemSetPropReq) GetSys() string { @@ -1261,7 +1461,7 @@ type SystemGetPropReq struct { func (x *SystemGetPropReq) Reset() { *x = SystemGetPropReq{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[19] + mi := &file_mgmt_system_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1274,7 +1474,7 @@ func (x *SystemGetPropReq) String() string { func (*SystemGetPropReq) ProtoMessage() {} func (x *SystemGetPropReq) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[19] + mi := &file_mgmt_system_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1287,7 +1487,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{19} + return file_mgmt_system_proto_rawDescGZIP(), []int{22} } func (x *SystemGetPropReq) GetSys() string { @@ -1316,7 +1516,7 @@ type SystemGetPropResp struct { func (x *SystemGetPropResp) Reset() { *x = SystemGetPropResp{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[20] + mi := &file_mgmt_system_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1329,7 +1529,7 @@ func (x *SystemGetPropResp) String() string { func (*SystemGetPropResp) ProtoMessage() {} func (x *SystemGetPropResp) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[20] + mi := &file_mgmt_system_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1342,7 +1542,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{20} + return file_mgmt_system_proto_rawDescGZIP(), []int{23} } func (x *SystemGetPropResp) GetProperties() map[string]string { @@ -1352,77 +1552,6 @@ func (x *SystemGetPropResp) GetProperties() map[string]string { return nil } -type SystemDrainResp_DrainResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // Status of the evict on the specific pool - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // Error message if status indicates an error - PoolId string `protobuf:"bytes,3,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` // Label or uuid of pool - Ranks string `protobuf:"bytes,4,opt,name=ranks,proto3" json:"ranks,omitempty"` // Rank-set that has encountered this result -} - -func (x *SystemDrainResp_DrainResult) Reset() { - *x = SystemDrainResp_DrainResult{} - if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SystemDrainResp_DrainResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SystemDrainResp_DrainResult) ProtoMessage() {} - -func (x *SystemDrainResp_DrainResult) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[21] - 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 SystemDrainResp_DrainResult.ProtoReflect.Descriptor instead. -func (*SystemDrainResp_DrainResult) Descriptor() ([]byte, []int) { - return file_mgmt_system_proto_rawDescGZIP(), []int{8, 0} -} - -func (x *SystemDrainResp_DrainResult) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *SystemDrainResp_DrainResult) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -func (x *SystemDrainResp_DrainResult) GetPoolId() string { - if x != nil { - return x.PoolId - } - return "" -} - -func (x *SystemDrainResp_DrainResult) GetRanks() string { - if x != nil { - return x.Ranks - } - return "" -} - type SystemCleanupResp_CleanupResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1437,7 +1566,7 @@ type SystemCleanupResp_CleanupResult struct { func (x *SystemCleanupResp_CleanupResult) Reset() { *x = SystemCleanupResp_CleanupResult{} if protoimpl.UnsafeEnabled { - mi := &file_mgmt_system_proto_msgTypes[22] + mi := &file_mgmt_system_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1450,7 +1579,7 @@ func (x *SystemCleanupResp_CleanupResult) String() string { func (*SystemCleanupResp_CleanupResult) ProtoMessage() {} func (x *SystemCleanupResp_CleanupResult) ProtoReflect() protoreflect.Message { - mi := &file_mgmt_system_proto_msgTypes[22] + mi := &file_mgmt_system_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1463,7 +1592,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{14, 0} + return file_mgmt_system_proto_rawDescGZIP(), []int{17, 0} } func (x *SystemCleanupResp_CleanupResult) GetStatus() int32 { @@ -1564,118 +1693,130 @@ 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, 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, 0xb6, 0x01, 0x0a, 0x0f, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x66, 0x0a, 0x0b, 0x44, 0x72, - 0x61, 0x69, 0x6e, 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, 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, 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, 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, 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, + 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, + 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 ( @@ -1690,7 +1831,7 @@ func file_mgmt_system_proto_rawDescGZIP() []byte { return file_mgmt_system_proto_rawDescData } -var file_mgmt_system_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_mgmt_system_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_mgmt_system_proto_goTypes = []interface{}{ (*SystemMember)(nil), // 0: mgmt.SystemMember (*SystemStopReq)(nil), // 1: mgmt.SystemStopReq @@ -1699,45 +1840,48 @@ var file_mgmt_system_proto_goTypes = []interface{}{ (*SystemStartResp)(nil), // 4: mgmt.SystemStartResp (*SystemExcludeReq)(nil), // 5: mgmt.SystemExcludeReq (*SystemExcludeResp)(nil), // 6: mgmt.SystemExcludeResp - (*SystemDrainReq)(nil), // 7: mgmt.SystemDrainReq - (*SystemDrainResp)(nil), // 8: mgmt.SystemDrainResp - (*SystemQueryReq)(nil), // 9: mgmt.SystemQueryReq - (*SystemQueryResp)(nil), // 10: mgmt.SystemQueryResp - (*SystemEraseReq)(nil), // 11: mgmt.SystemEraseReq - (*SystemEraseResp)(nil), // 12: mgmt.SystemEraseResp - (*SystemCleanupReq)(nil), // 13: mgmt.SystemCleanupReq - (*SystemCleanupResp)(nil), // 14: mgmt.SystemCleanupResp - (*SystemSetAttrReq)(nil), // 15: mgmt.SystemSetAttrReq - (*SystemGetAttrReq)(nil), // 16: mgmt.SystemGetAttrReq - (*SystemGetAttrResp)(nil), // 17: mgmt.SystemGetAttrResp - (*SystemSetPropReq)(nil), // 18: mgmt.SystemSetPropReq - (*SystemGetPropReq)(nil), // 19: mgmt.SystemGetPropReq - (*SystemGetPropResp)(nil), // 20: mgmt.SystemGetPropResp - (*SystemDrainResp_DrainResult)(nil), // 21: mgmt.SystemDrainResp.DrainResult - (*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 + (*SystemOsaResult)(nil), // 7: mgmt.SystemOsaResult + (*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 } var file_mgmt_system_proto_depIdxs = []int32{ - 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 - 21, // 3: mgmt.SystemDrainResp.results:type_name -> mgmt.SystemDrainResp.DrainResult - 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 + 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 } func init() { file_mgmt_system_proto_init() } @@ -1831,7 +1975,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemDrainReq); i { + switch v := v.(*SystemOsaResult); i { case 0: return &v.state case 1: @@ -1843,7 +1987,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemDrainResp); i { + switch v := v.(*SystemDrainReq); i { case 0: return &v.state case 1: @@ -1855,7 +1999,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemQueryReq); i { + switch v := v.(*SystemDrainResp); i { case 0: return &v.state case 1: @@ -1867,7 +2011,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemQueryResp); i { + switch v := v.(*SystemReintReq); i { case 0: return &v.state case 1: @@ -1879,7 +2023,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemEraseReq); i { + switch v := v.(*SystemReintResp); i { case 0: return &v.state case 1: @@ -1891,7 +2035,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemEraseResp); i { + switch v := v.(*SystemQueryReq); i { case 0: return &v.state case 1: @@ -1903,7 +2047,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemCleanupReq); i { + switch v := v.(*SystemQueryResp); i { case 0: return &v.state case 1: @@ -1915,7 +2059,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemCleanupResp); i { + switch v := v.(*SystemEraseReq); i { case 0: return &v.state case 1: @@ -1927,7 +2071,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemSetAttrReq); i { + switch v := v.(*SystemEraseResp); i { case 0: return &v.state case 1: @@ -1939,7 +2083,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemGetAttrReq); i { + switch v := v.(*SystemCleanupReq); i { case 0: return &v.state case 1: @@ -1951,7 +2095,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemGetAttrResp); i { + switch v := v.(*SystemCleanupResp); i { case 0: return &v.state case 1: @@ -1963,7 +2107,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemSetPropReq); i { + switch v := v.(*SystemSetAttrReq); i { case 0: return &v.state case 1: @@ -1975,7 +2119,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemGetPropReq); i { + switch v := v.(*SystemGetAttrReq); i { case 0: return &v.state case 1: @@ -1987,7 +2131,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemGetPropResp); i { + switch v := v.(*SystemGetAttrResp); i { case 0: return &v.state case 1: @@ -1999,7 +2143,7 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemDrainResp_DrainResult); i { + switch v := v.(*SystemSetPropReq); i { case 0: return &v.state case 1: @@ -2011,6 +2155,30 @@ func file_mgmt_system_proto_init() { } } file_mgmt_system_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SystemGetPropReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_system_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SystemGetPropResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_system_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemCleanupResp_CleanupResult); i { case 0: return &v.state @@ -2029,7 +2197,7 @@ func file_mgmt_system_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_mgmt_system_proto_rawDesc, NumEnums: 0, - NumMessages: 27, + NumMessages: 29, NumExtensions: 0, NumServices: 0, }, diff --git a/src/mgmt/pool.pb-c.c b/src/mgmt/pool.pb-c.c index f733660ccf4..c4f5a2214f4 100644 --- a/src/mgmt/pool.pb-c.c +++ b/src/mgmt/pool.pb-c.c @@ -547,94 +547,80 @@ void mgmt__pool_extend_resp__free_unpacked assert(message->base.descriptor == &mgmt__pool_extend_resp__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void mgmt__pool_reintegrate_req__init - (Mgmt__PoolReintegrateReq *message) +void +mgmt__pool_reint_req__init(Mgmt__PoolReintReq *message) { - static const Mgmt__PoolReintegrateReq init_value = MGMT__POOL_REINTEGRATE_REQ__INIT; - *message = init_value; + static const Mgmt__PoolReintReq init_value = MGMT__POOL_REINT_REQ__INIT; + *message = init_value; } -size_t mgmt__pool_reintegrate_req__get_packed_size - (const Mgmt__PoolReintegrateReq *message) +size_t +mgmt__pool_reint_req__get_packed_size(const Mgmt__PoolReintReq *message) { - assert(message->base.descriptor == &mgmt__pool_reintegrate_req__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); + assert(message->base.descriptor == &mgmt__pool_reint_req__descriptor); + return protobuf_c_message_get_packed_size((const ProtobufCMessage *)(message)); } -size_t mgmt__pool_reintegrate_req__pack - (const Mgmt__PoolReintegrateReq *message, - uint8_t *out) +size_t +mgmt__pool_reint_req__pack(const Mgmt__PoolReintReq *message, uint8_t *out) { - assert(message->base.descriptor == &mgmt__pool_reintegrate_req__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); + assert(message->base.descriptor == &mgmt__pool_reint_req__descriptor); + return protobuf_c_message_pack((const ProtobufCMessage *)message, out); } -size_t mgmt__pool_reintegrate_req__pack_to_buffer - (const Mgmt__PoolReintegrateReq *message, - ProtobufCBuffer *buffer) +size_t +mgmt__pool_reint_req__pack_to_buffer(const Mgmt__PoolReintReq *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &mgmt__pool_reintegrate_req__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); + assert(message->base.descriptor == &mgmt__pool_reint_req__descriptor); + return protobuf_c_message_pack_to_buffer((const ProtobufCMessage *)message, buffer); } -Mgmt__PoolReintegrateReq * - mgmt__pool_reintegrate_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) +Mgmt__PoolReintReq * +mgmt__pool_reint_req__unpack(ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Mgmt__PoolReintegrateReq *) - protobuf_c_message_unpack (&mgmt__pool_reintegrate_req__descriptor, - allocator, len, data); + return (Mgmt__PoolReintReq *)protobuf_c_message_unpack(&mgmt__pool_reint_req__descriptor, + allocator, len, data); } -void mgmt__pool_reintegrate_req__free_unpacked - (Mgmt__PoolReintegrateReq *message, - ProtobufCAllocator *allocator) +void +mgmt__pool_reint_req__free_unpacked(Mgmt__PoolReintReq *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &mgmt__pool_reintegrate_req__descriptor); + assert(message->base.descriptor == &mgmt__pool_reint_req__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void mgmt__pool_reintegrate_resp__init - (Mgmt__PoolReintegrateResp *message) +void +mgmt__pool_reint_resp__init(Mgmt__PoolReintResp *message) { - static const Mgmt__PoolReintegrateResp init_value = MGMT__POOL_REINTEGRATE_RESP__INIT; - *message = init_value; + static const Mgmt__PoolReintResp init_value = MGMT__POOL_REINT_RESP__INIT; + *message = init_value; } -size_t mgmt__pool_reintegrate_resp__get_packed_size - (const Mgmt__PoolReintegrateResp *message) +size_t +mgmt__pool_reint_resp__get_packed_size(const Mgmt__PoolReintResp *message) { - assert(message->base.descriptor == &mgmt__pool_reintegrate_resp__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); + assert(message->base.descriptor == &mgmt__pool_reint_resp__descriptor); + return protobuf_c_message_get_packed_size((const ProtobufCMessage *)(message)); } -size_t mgmt__pool_reintegrate_resp__pack - (const Mgmt__PoolReintegrateResp *message, - uint8_t *out) +size_t +mgmt__pool_reint_resp__pack(const Mgmt__PoolReintResp *message, uint8_t *out) { - assert(message->base.descriptor == &mgmt__pool_reintegrate_resp__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); + assert(message->base.descriptor == &mgmt__pool_reint_resp__descriptor); + return protobuf_c_message_pack((const ProtobufCMessage *)message, out); } -size_t mgmt__pool_reintegrate_resp__pack_to_buffer - (const Mgmt__PoolReintegrateResp *message, - ProtobufCBuffer *buffer) +size_t +mgmt__pool_reint_resp__pack_to_buffer(const Mgmt__PoolReintResp *message, ProtobufCBuffer *buffer) { - assert(message->base.descriptor == &mgmt__pool_reintegrate_resp__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); + assert(message->base.descriptor == &mgmt__pool_reint_resp__descriptor); + return protobuf_c_message_pack_to_buffer((const ProtobufCMessage *)message, buffer); } -Mgmt__PoolReintegrateResp * - mgmt__pool_reintegrate_resp__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) +Mgmt__PoolReintResp * +mgmt__pool_reint_resp__unpack(ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { - return (Mgmt__PoolReintegrateResp *) - protobuf_c_message_unpack (&mgmt__pool_reintegrate_resp__descriptor, - allocator, len, data); + return (Mgmt__PoolReintResp *)protobuf_c_message_unpack(&mgmt__pool_reint_resp__descriptor, + allocator, len, data); } -void mgmt__pool_reintegrate_resp__free_unpacked - (Mgmt__PoolReintegrateResp *message, - ProtobufCAllocator *allocator) +void +mgmt__pool_reint_resp__free_unpacked(Mgmt__PoolReintResp *message, ProtobufCAllocator *allocator) { if(!message) return; - assert(message->base.descriptor == &mgmt__pool_reintegrate_resp__descriptor); + assert(message->base.descriptor == &mgmt__pool_reint_resp__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } void mgmt__list_pools_req__init @@ -2532,159 +2518,100 @@ const ProtobufCMessageDescriptor mgmt__pool_extend_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_extend_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_reintegrate_req__field_descriptors[7] = -{ - { - "sys", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolReintegrateReq, sys), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "id", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolReintegrateReq, id), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rank", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolReintegrateReq, rank), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "target_idx", - 4, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolReintegrateReq, n_target_idx), - offsetof(Mgmt__PoolReintegrateReq, target_idx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", - 5, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolReintegrateReq, n_svc_ranks), - offsetof(Mgmt__PoolReintegrateReq, svc_ranks), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "tier_bytes", - 6, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_UINT64, - offsetof(Mgmt__PoolReintegrateReq, n_tier_bytes), - offsetof(Mgmt__PoolReintegrateReq, tier_bytes), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mem_ratio", +static const ProtobufCFieldDescriptor mgmt__pool_reint_req__field_descriptors[7] = { + { + "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ + offsetof(Mgmt__PoolReintReq, sys), NULL, &protobuf_c_empty_string, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, + { + "id", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ + offsetof(Mgmt__PoolReintReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, + { + "rank", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ + offsetof(Mgmt__PoolReintReq, rank), NULL, NULL, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, + { + "target_idx", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolReintReq, n_target_idx), offsetof(Mgmt__PoolReintReq, target_idx), NULL, + NULL, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolReintReq, n_svc_ranks), offsetof(Mgmt__PoolReintReq, svc_ranks), NULL, + NULL, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, + { + "tier_bytes", 6, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT64, + offsetof(Mgmt__PoolReintReq, n_tier_bytes), offsetof(Mgmt__PoolReintReq, tier_bytes), NULL, + NULL, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, + { + "mem_ratio", 7, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_FLOAT, 0, /* quantifier_offset */ + offsetof(Mgmt__PoolReintReq, mem_ratio), NULL, NULL, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_reint_req__field_indices_by_name[] = { + 1, /* field[1] = id */ + 6, /* field[6] = mem_ratio */ + 2, /* field[2] = rank */ + 4, /* field[4] = svc_ranks */ + 0, /* field[0] = sys */ + 3, /* field[3] = target_idx */ + 5, /* field[5] = tier_bytes */ +}; +static const ProtobufCIntRange mgmt__pool_reint_req__number_ranges[1 + 1] = {{1, 0}, {0, 7}}; +const ProtobufCMessageDescriptor mgmt__pool_reint_req__descriptor = { + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolReintReq", + "PoolReintReq", + "Mgmt__PoolReintReq", + "mgmt", + sizeof(Mgmt__PoolReintReq), 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_FLOAT, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolReintegrateReq, mem_ratio), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_reintegrate_req__field_indices_by_name[] = { - 1, /* field[1] = id */ - 6, /* field[6] = mem_ratio */ - 2, /* field[2] = rank */ - 4, /* field[4] = svc_ranks */ - 0, /* field[0] = sys */ - 3, /* field[3] = target_idx */ - 5, /* field[5] = tier_bytes */ -}; -static const ProtobufCIntRange mgmt__pool_reintegrate_req__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor mgmt__pool_reintegrate_req__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolReintegrateReq", - "PoolReintegrateReq", - "Mgmt__PoolReintegrateReq", - "mgmt", - sizeof(Mgmt__PoolReintegrateReq), - 7, - mgmt__pool_reintegrate_req__field_descriptors, - mgmt__pool_reintegrate_req__field_indices_by_name, - 1, mgmt__pool_reintegrate_req__number_ranges, - (ProtobufCMessageInit) mgmt__pool_reintegrate_req__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_reintegrate_resp__field_descriptors[1] = -{ - { - "status", + mgmt__pool_reint_req__field_descriptors, + mgmt__pool_reint_req__field_indices_by_name, 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolReintegrateResp, status), + mgmt__pool_reint_req__number_ranges, + (ProtobufCMessageInit)mgmt__pool_reint_req__init, + NULL, + NULL, + NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_reint_resp__field_descriptors[1] = { + { + "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ + offsetof(Mgmt__PoolReintResp, status), NULL, NULL, 0, /* flags */ + 0, NULL, NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_reint_resp__field_indices_by_name[] = { + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange mgmt__pool_reint_resp__number_ranges[1 + 1] = {{1, 0}, {0, 1}}; +const ProtobufCMessageDescriptor mgmt__pool_reint_resp__descriptor = { + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolReintResp", + "PoolReintResp", + "Mgmt__PoolReintResp", + "mgmt", + sizeof(Mgmt__PoolReintResp), + 1, + mgmt__pool_reint_resp__field_descriptors, + mgmt__pool_reint_resp__field_indices_by_name, + 1, + mgmt__pool_reint_resp__number_ranges, + (ProtobufCMessageInit)mgmt__pool_reint_resp__init, NULL, NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_reintegrate_resp__field_indices_by_name[] = { - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange mgmt__pool_reintegrate_resp__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor mgmt__pool_reintegrate_resp__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolReintegrateResp", - "PoolReintegrateResp", - "Mgmt__PoolReintegrateResp", - "mgmt", - sizeof(Mgmt__PoolReintegrateResp), - 1, - mgmt__pool_reintegrate_resp__field_descriptors, - mgmt__pool_reintegrate_resp__field_indices_by_name, - 1, mgmt__pool_reintegrate_resp__number_ranges, - (ProtobufCMessageInit) mgmt__pool_reintegrate_resp__init, - NULL,NULL,NULL /* reserved[123] */ + NULL /* reserved[123] */ }; static const ProtobufCFieldDescriptor mgmt__list_pools_req__field_descriptors[1] = { diff --git a/src/mgmt/pool.pb-c.h b/src/mgmt/pool.pb-c.h index d7468ff90d0..8ae0980ff87 100644 --- a/src/mgmt/pool.pb-c.h +++ b/src/mgmt/pool.pb-c.h @@ -27,8 +27,8 @@ typedef struct _Mgmt__PoolDrainReq Mgmt__PoolDrainReq; typedef struct _Mgmt__PoolDrainResp Mgmt__PoolDrainResp; typedef struct _Mgmt__PoolExtendReq Mgmt__PoolExtendReq; typedef struct _Mgmt__PoolExtendResp Mgmt__PoolExtendResp; -typedef struct _Mgmt__PoolReintegrateReq Mgmt__PoolReintegrateReq; -typedef struct _Mgmt__PoolReintegrateResp Mgmt__PoolReintegrateResp; +typedef struct _Mgmt__PoolReintReq Mgmt__PoolReintReq; +typedef struct _Mgmt__PoolReintResp Mgmt__PoolReintResp; typedef struct _Mgmt__ListPoolsReq Mgmt__ListPoolsReq; typedef struct _Mgmt__ListPoolsResp Mgmt__ListPoolsResp; typedef struct _Mgmt__ListPoolsResp__Pool Mgmt__ListPoolsResp__Pool; @@ -533,65 +533,67 @@ struct _Mgmt__PoolExtendResp { PROTOBUF_C_MESSAGE_INIT (&mgmt__pool_extend_resp__descriptor) \ , 0, 0,NULL } - /* - * PoolReintegrateReq supplies pool identifier, rank, and target_idxs. + * PoolReintReq supplies pool identifier, rank, and target_idxs. */ -struct _Mgmt__PoolReintegrateReq -{ - ProtobufCMessage base; - /* - * DAOS system identifier - */ - char *sys; - /* - * uuid or label of pool to add target up to - */ - char *id; - /* - * target to move to the up state - */ - uint32_t rank; - /* - * target ranks - */ - size_t n_target_idx; - uint32_t *target_idx; - /* - * List of pool service ranks - */ - size_t n_svc_ranks; - uint32_t *svc_ranks; - /* - * Size in bytes of storage tiers - */ - size_t n_tier_bytes; - uint64_t *tier_bytes; - /* - * Fraction of meta-blob-sz to use as mem-file-sz - */ - float mem_ratio; +struct _Mgmt__PoolReintReq { + ProtobufCMessage base; + /* + * DAOS system identifier + */ + char *sys; + /* + * uuid or label of pool to add target up to + */ + char *id; + /* + * target to move to the up state + */ + uint32_t rank; + /* + * target ranks + */ + size_t n_target_idx; + uint32_t *target_idx; + /* + * List of pool service ranks + */ + size_t n_svc_ranks; + uint32_t *svc_ranks; + /* + * Size in bytes of storage tiers + */ + size_t n_tier_bytes; + uint64_t *tier_bytes; + /* + * Fraction of meta-blob-sz to use as mem-file-sz + */ + float mem_ratio; }; -#define MGMT__POOL_REINTEGRATE_REQ__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&mgmt__pool_reintegrate_req__descriptor) \ - , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0,NULL, 0,NULL, 0,NULL, 0 } - +#define MGMT__POOL_REINT_REQ__INIT \ + {PROTOBUF_C_MESSAGE_INIT(&mgmt__pool_reint_req__descriptor), \ + (char *)protobuf_c_empty_string, \ + (char *)protobuf_c_empty_string, \ + 0, \ + 0, \ + NULL, \ + 0, \ + NULL, \ + 0, \ + NULL, \ + 0} /* - * PoolReintegrateResp returns resultant state of Reintegrate operation. + * PoolReintResp returns resultant state of Reintegrate operation. */ -struct _Mgmt__PoolReintegrateResp -{ - ProtobufCMessage base; - /* - * DAOS error code - */ - int32_t status; +struct _Mgmt__PoolReintResp { + ProtobufCMessage base; + /* + * DAOS error code + */ + int32_t status; }; -#define MGMT__POOL_REINTEGRATE_RESP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&mgmt__pool_reintegrate_resp__descriptor) \ - , 0 } - +#define MGMT__POOL_REINT_RESP__INIT {PROTOBUF_C_MESSAGE_INIT(&mgmt__pool_reint_resp__descriptor), 0} /* * ListPoolsReq represents a request to list pools on a given DAOS system. @@ -1381,44 +1383,32 @@ Mgmt__PoolExtendResp * void mgmt__pool_extend_resp__free_unpacked (Mgmt__PoolExtendResp *message, ProtobufCAllocator *allocator); -/* Mgmt__PoolReintegrateReq methods */ -void mgmt__pool_reintegrate_req__init - (Mgmt__PoolReintegrateReq *message); -size_t mgmt__pool_reintegrate_req__get_packed_size - (const Mgmt__PoolReintegrateReq *message); -size_t mgmt__pool_reintegrate_req__pack - (const Mgmt__PoolReintegrateReq *message, - uint8_t *out); -size_t mgmt__pool_reintegrate_req__pack_to_buffer - (const Mgmt__PoolReintegrateReq *message, - ProtobufCBuffer *buffer); -Mgmt__PoolReintegrateReq * - mgmt__pool_reintegrate_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void mgmt__pool_reintegrate_req__free_unpacked - (Mgmt__PoolReintegrateReq *message, - ProtobufCAllocator *allocator); -/* Mgmt__PoolReintegrateResp methods */ -void mgmt__pool_reintegrate_resp__init - (Mgmt__PoolReintegrateResp *message); -size_t mgmt__pool_reintegrate_resp__get_packed_size - (const Mgmt__PoolReintegrateResp *message); -size_t mgmt__pool_reintegrate_resp__pack - (const Mgmt__PoolReintegrateResp *message, - uint8_t *out); -size_t mgmt__pool_reintegrate_resp__pack_to_buffer - (const Mgmt__PoolReintegrateResp *message, - ProtobufCBuffer *buffer); -Mgmt__PoolReintegrateResp * - mgmt__pool_reintegrate_resp__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void mgmt__pool_reintegrate_resp__free_unpacked - (Mgmt__PoolReintegrateResp *message, - ProtobufCAllocator *allocator); +/* Mgmt__PoolReintReq methods */ +void +mgmt__pool_reint_req__init(Mgmt__PoolReintReq *message); +size_t +mgmt__pool_reint_req__get_packed_size(const Mgmt__PoolReintReq *message); +size_t +mgmt__pool_reint_req__pack(const Mgmt__PoolReintReq *message, uint8_t *out); +size_t +mgmt__pool_reint_req__pack_to_buffer(const Mgmt__PoolReintReq *message, ProtobufCBuffer *buffer); +Mgmt__PoolReintReq * +mgmt__pool_reint_req__unpack(ProtobufCAllocator *allocator, size_t len, const uint8_t *data); +void +mgmt__pool_reint_req__free_unpacked(Mgmt__PoolReintReq *message, ProtobufCAllocator *allocator); +/* Mgmt__PoolReintResp methods */ +void +mgmt__pool_reint_resp__init(Mgmt__PoolReintResp *message); +size_t +mgmt__pool_reint_resp__get_packed_size(const Mgmt__PoolReintResp *message); +size_t +mgmt__pool_reint_resp__pack(const Mgmt__PoolReintResp *message, uint8_t *out); +size_t +mgmt__pool_reint_resp__pack_to_buffer(const Mgmt__PoolReintResp *message, ProtobufCBuffer *buffer); +Mgmt__PoolReintResp * +mgmt__pool_reint_resp__unpack(ProtobufCAllocator *allocator, size_t len, const uint8_t *data); +void +mgmt__pool_reint_resp__free_unpacked(Mgmt__PoolReintResp *message, ProtobufCAllocator *allocator); /* Mgmt__ListPoolsReq methods */ void mgmt__list_pools_req__init (Mgmt__ListPoolsReq *message); @@ -1824,12 +1814,8 @@ typedef void (*Mgmt__PoolExtendReq_Closure) typedef void (*Mgmt__PoolExtendResp_Closure) (const Mgmt__PoolExtendResp *message, void *closure_data); -typedef void (*Mgmt__PoolReintegrateReq_Closure) - (const Mgmt__PoolReintegrateReq *message, - void *closure_data); -typedef void (*Mgmt__PoolReintegrateResp_Closure) - (const Mgmt__PoolReintegrateResp *message, - void *closure_data); +typedef void (*Mgmt__PoolReintReq_Closure)(const Mgmt__PoolReintReq *message, void *closure_data); +typedef void (*Mgmt__PoolReintResp_Closure)(const Mgmt__PoolReintResp *message, void *closure_data); typedef void (*Mgmt__ListPoolsReq_Closure) (const Mgmt__ListPoolsReq *message, void *closure_data); @@ -1913,8 +1899,8 @@ extern const ProtobufCMessageDescriptor mgmt__pool_drain_req__descriptor; extern const ProtobufCMessageDescriptor mgmt__pool_drain_resp__descriptor; extern const ProtobufCMessageDescriptor mgmt__pool_extend_req__descriptor; extern const ProtobufCMessageDescriptor mgmt__pool_extend_resp__descriptor; -extern const ProtobufCMessageDescriptor mgmt__pool_reintegrate_req__descriptor; -extern const ProtobufCMessageDescriptor mgmt__pool_reintegrate_resp__descriptor; +extern const ProtobufCMessageDescriptor mgmt__pool_reint_req__descriptor; +extern const ProtobufCMessageDescriptor mgmt__pool_reint_resp__descriptor; extern const ProtobufCMessageDescriptor mgmt__list_pools_req__descriptor; extern const ProtobufCMessageDescriptor mgmt__list_pools_resp__descriptor; extern const ProtobufCMessageDescriptor mgmt__list_pools_resp__pool__descriptor; diff --git a/src/proto/mgmt/mgmt.proto b/src/proto/mgmt/mgmt.proto index c0b8c13919d..dae95155550 100644 --- a/src/proto/mgmt/mgmt.proto +++ b/src/proto/mgmt/mgmt.proto @@ -46,7 +46,7 @@ service MgmtSvc { // Extend a pool. rpc PoolExtend(PoolExtendReq) returns (PoolExtendResp) {} // Reintegrate a pool target. - rpc PoolReintegrate(PoolReintegrateReq) returns (PoolReintegrateResp) {} + rpc PoolReint(PoolReintReq) returns (PoolReintResp) {} // PoolQuery queries a DAOS pool. rpc PoolQuery(PoolQueryReq) returns (PoolQueryResp) {} // PoolQueryTarget queries a DAOS storage target. @@ -81,6 +81,8 @@ service MgmtSvc { rpc SystemExclude(SystemExcludeReq) returns(SystemExcludeResp) {} // Drain 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/pool.proto b/src/proto/mgmt/pool.proto index ce1615d498e..0b167edd1c1 100644 --- a/src/proto/mgmt/pool.proto +++ b/src/proto/mgmt/pool.proto @@ -121,8 +121,9 @@ message PoolExtendResp { repeated uint64 tier_bytes = 2; // storage tiers allocated to pool } -// PoolReintegrateReq supplies pool identifier, rank, and target_idxs. -message PoolReintegrateReq { +// PoolReintReq supplies pool identifier, rank, and target_idxs. +message PoolReintReq +{ string sys = 1; // DAOS system identifier string id = 2; // uuid or label of pool to add target up to uint32 rank = 3; // target to move to the up state @@ -132,8 +133,9 @@ message PoolReintegrateReq { float mem_ratio = 7; // Fraction of meta-blob-sz to use as mem-file-sz } -// PoolReintegrateResp returns resultant state of Reintegrate operation. -message PoolReintegrateResp { +// PoolReintResp returns resultant state of Reintegrate operation. +message PoolReintResp +{ int32 status = 1; // DAOS error code } diff --git a/src/proto/mgmt/system.proto b/src/proto/mgmt/system.proto index 86cb26a02ef..d109a31915d 100644 --- a/src/proto/mgmt/system.proto +++ b/src/proto/mgmt/system.proto @@ -78,6 +78,15 @@ message SystemExcludeResp { repeated shared.RankResult results = 1; } +// Results for system OSA calls on multiple pool-ranks. +message SystemOsaResult +{ + int32 status = 1; // Status of the OSA operation on a specific pool + string msg = 2; // Error message if status indicates an error + string pool_id = 3; // Label or uuid of pool + string ranks = 4; // Rank-set that has encountered this result +} + // SystemDrainReq supplies system-drain parameters. message SystemDrainReq { @@ -89,14 +98,23 @@ message SystemDrainReq // SystemDrainResp returns status of system-drain request. message SystemDrainResp { - message DrainResult - { - int32 status = 1; // Status of the evict on the specific pool - string msg = 2; // Error message if status indicates an error - string pool_id = 3; // Label or uuid of pool - string ranks = 4; // Rank-set that has encountered this result - } - repeated DrainResult results = 1; // Results for pool-ranks drain calls. + 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. } // SystemQueryReq supplies system query parameters. From d06ee0ef82315ea0f7fc1ff7b777643aa54552cc Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 3 Dec 2024 14:19:36 +0000 Subject: [PATCH 04/19] renaming changes reintegrate->reint Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/command_test.go | 6 ++-- src/control/cmd/dmg/json_test.go | 3 +- src/control/cmd/dmg/pool.go | 46 ++++++++++++------------- src/control/cmd/dmg/pool_test.go | 6 ++-- src/control/common/proto/mgmt/addons.go | 4 +-- src/control/lib/control/pool.go | 14 ++++---- src/control/server/mgmt_pool.go | 10 +++--- src/control/server/mgmt_pool_test.go | 22 ++++++------ src/mgmt/srv_drpc.c | 16 ++++----- src/mgmt/tests/srv_drpc_tests.c | 31 ++++++++--------- 10 files changed, 78 insertions(+), 80 deletions(-) diff --git a/src/control/cmd/dmg/command_test.go b/src/control/cmd/dmg/command_test.go index 8f70322f328..86891104f0c 100644 --- a/src/control/cmd/dmg/command_test.go +++ b/src/control/cmd/dmg/command_test.go @@ -136,6 +136,8 @@ 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) @@ -165,8 +167,8 @@ func (bci *bridgeConnInvoker) InvokeUnaryRPC(ctx context.Context, uReq control.U resp = control.MockMSResponse("", nil, &mgmtpb.PoolDrainResp{}) case *control.PoolExtendReq: resp = control.MockMSResponse("", nil, &mgmtpb.PoolExtendResp{}) - case *control.PoolReintegrateReq: - resp = control.MockMSResponse("", nil, &mgmtpb.PoolReintegrateResp{}) + case *control.PoolReintReq: + resp = control.MockMSResponse("", nil, &mgmtpb.PoolReintResp{}) case *control.SystemCheckEnableReq: resp = control.MockMSResponse("", nil, &mgmtpb.DaosResp{}) case *control.SystemCheckDisableReq: diff --git a/src/control/cmd/dmg/json_test.go b/src/control/cmd/dmg/json_test.go index 84fc87a7293..89cfdf5edd2 100644 --- a/src/control/cmd/dmg/json_test.go +++ b/src/control/cmd/dmg/json_test.go @@ -113,7 +113,8 @@ func TestDmg_JsonOutput(t *testing.T) { testArgs = append(testArgs, "foo:bar") case "system del-attr": testArgs = append(testArgs, "foo") - case "system exclude", "system clear-exclude", "system drain": + case "system exclude", "system clear-exclude", "system drain", + "system reintegrate": testArgs = append(testArgs, "--ranks", "0") } diff --git a/src/control/cmd/dmg/pool.go b/src/control/cmd/dmg/pool.go index 0b74128990b..90a4763aaf0 100644 --- a/src/control/cmd/dmg/pool.go +++ b/src/control/cmd/dmg/pool.go @@ -37,7 +37,7 @@ type PoolCmd struct { Extend poolExtendCmd `command:"extend" description:"Extend a DAOS pool to include new ranks."` Exclude poolExcludeCmd `command:"exclude" description:"Exclude targets from a rank"` Drain poolDrainCmd `command:"drain" description:"Drain targets from a rank"` - Reintegrate poolReintegrateCmd `command:"reintegrate" alias:"reint" description:"Reintegrate targets for a rank"` + Reint poolReintCmd `command:"reintegrate" alias:"reint" description:"Reintegrate targets for a rank"` Query poolQueryCmd `command:"query" description:"Query a DAOS pool"` QueryTargets poolQueryTargetsCmd `command:"query-targets" description:"Query pool target info"` GetACL poolGetACLCmd `command:"get-acl" description:"Get a DAOS pool's Access Control List"` @@ -162,7 +162,7 @@ func (psf *poolSizeFlag) UnmarshalFlag(fv string) error { return psf.ByteSizeFlag.UnmarshalFlag(fv) } -// PoolCreateCmd is the struct representing the command to create a DAOS pool. +// poolCreateCmd is the struct representing the command to create a DAOS pool. type poolCreateCmd struct { baseCmd cfgCmd @@ -401,7 +401,7 @@ func (cmd *poolCreateCmd) Execute(args []string) error { return nil } -// PoolListCmd represents the command to fetch a list of all DAOS pools in the system. +// poolListCmd represents the command to fetch a list of all DAOS pools in the system. type poolListCmd struct { baseCmd cfgCmd @@ -481,7 +481,7 @@ func (cmd *poolCmd) PoolID() *PoolID { return &cmd.Args.Pool } -// PoolDestroyCmd is the struct representing the command to destroy a DAOS pool. +// poolDestroyCmd is the struct representing the command to destroy a DAOS pool. type poolDestroyCmd struct { poolCmd Recursive bool `short:"r" long:"recursive" description:"Remove pool with existing containers"` @@ -509,7 +509,7 @@ func (cmd *poolDestroyCmd) Execute(args []string) error { return err } -// PoolEvictCmd is the struct representing the command to evict a DAOS pool. +// poolEvictCmd is the struct representing the command to evict a DAOS pool. type poolEvictCmd struct { poolCmd } @@ -530,7 +530,7 @@ func (cmd *poolEvictCmd) Execute(args []string) error { return err } -// PoolExcludeCmd is the struct representing the command to exclude a DAOS target. +// poolExcludeCmd is the struct representing the command to exclude a DAOS target. type poolExcludeCmd struct { poolCmd Rank uint32 `long:"rank" required:"1" description:"Engine rank of the targets to be excluded"` @@ -558,7 +558,7 @@ func (cmd *poolExcludeCmd) Execute(args []string) error { return err } -// PoolDrainCmd is the struct representing the command to Drain a DAOS target. +// poolDrainCmd is the struct representing the command to Drain a DAOS target. type poolDrainCmd struct { poolCmd Rank uint32 `long:"rank" required:"1" description:"Engine rank of the targets to be drained"` @@ -591,7 +591,7 @@ func (cmd *poolDrainCmd) Execute(args []string) error { return err } -// PoolExtendCmd is the struct representing the command to Extend a DAOS pool. +// poolExtendCmd is the struct representing the command to Extend a DAOS pool. type poolExtendCmd struct { poolCmd RankList ui.RankSetFlag `long:"ranks" required:"1" description:"Comma-separated list of ranks to add to the pool"` @@ -616,15 +616,15 @@ func (cmd *poolExtendCmd) Execute(args []string) error { return err } -// PoolReintegrateCmd is the struct representing the command to Add a DAOS target. -type poolReintegrateCmd struct { +// poolReintCmd is the struct representing the command to Add a DAOS target. +type poolReintCmd struct { poolCmd Rank uint32 `long:"rank" required:"1" description:"Engine rank of the targets to be reintegrated"` TargetIdx string `long:"target-idx" description:"Comma-separated list of target idx(s) to be reintegrated into the rank"` } -// Execute is run when PoolReintegrateCmd subcommand is activated -func (cmd *poolReintegrateCmd) Execute(args []string) error { +// Execute is run when PoolReintCmd subcommand is activated +func (cmd *poolReintCmd) Execute(args []string) error { msg := "succeeded" var idxList []uint32 @@ -633,13 +633,13 @@ func (cmd *poolReintegrateCmd) Execute(args []string) error { return err } - req := &control.PoolReintegrateReq{ + req := &control.PoolReintReq{ ID: cmd.PoolID().String(), Rank: ranklist.Rank(cmd.Rank), TargetIdx: idxList, } - err := control.PoolReintegrate(cmd.MustLogCtx(), cmd.ctlInvoker, req) + err := control.PoolReint(cmd.MustLogCtx(), cmd.ctlInvoker, req) if err != nil { msg = errors.WithMessage(err, "failed").Error() } @@ -649,7 +649,7 @@ func (cmd *poolReintegrateCmd) Execute(args []string) error { return err } -// PoolQueryCmd is the struct representing the command to query a DAOS pool. +// poolQueryCmd is the struct representing the command to query a DAOS pool. type poolQueryCmd struct { poolCmd ShowEnabledRanks bool `short:"e" long:"show-enabled" description:"Show engine unique identifiers (ranks) which are enabled"` @@ -694,7 +694,7 @@ func (cmd *poolQueryCmd) Execute(args []string) error { return nil } -// PoolQueryTargetsCmd is the struct representing the command to query a DAOS pool engine's targets +// poolQueryTargetsCmd is the struct representing the command to query a DAOS pool engine's targets type poolQueryTargetsCmd struct { poolCmd @@ -752,7 +752,7 @@ func (cmd *poolQueryTargetsCmd) Execute(args []string) error { return nil } -// PoolUpgradeCmd is the struct representing the command to update a DAOS pool. +// poolUpgradeCmd is the struct representing the command to update a DAOS pool. type poolUpgradeCmd struct { poolCmd } @@ -772,7 +772,7 @@ func (cmd *poolUpgradeCmd) Execute(args []string) error { return nil } -// PoolSetPropCmd represents the command to set a property on a pool. +// poolSetPropCmd represents the command to set a property on a pool. type poolSetPropCmd struct { poolCmd @@ -816,7 +816,7 @@ func (cmd *poolSetPropCmd) Execute(_ []string) error { return nil } -// PoolGetPropCmd represents the command to set a property on a pool. +// poolGetPropCmd represents the command to set a property on a pool. type poolGetPropCmd struct { poolCmd Args struct { @@ -847,7 +847,7 @@ func (cmd *poolGetPropCmd) Execute(_ []string) error { return nil } -// PoolGetACLCmd represents the command to fetch an Access Control List of a +// poolGetACLCmd represents the command to fetch an Access Control List of a // DAOS pool. type poolGetACLCmd struct { poolCmd @@ -911,7 +911,7 @@ func (cmd *poolGetACLCmd) writeACLToFile(acl string) error { return nil } -// PoolOverwriteACLCmd represents the command to overwrite the Access Control +// poolOverwriteACLCmd represents the command to overwrite the Access Control // List of a DAOS pool. type poolOverwriteACLCmd struct { poolCmd @@ -946,7 +946,7 @@ func (cmd *poolOverwriteACLCmd) Execute(args []string) error { return nil } -// PoolUpdateACLCmd represents the command to update the Access Control List of +// poolUpdateACLCmd represents the command to update the Access Control List of // a DAOS pool. type poolUpdateACLCmd struct { poolCmd @@ -994,7 +994,7 @@ func (cmd *poolUpdateACLCmd) Execute(args []string) error { return nil } -// PoolDeleteACLCmd represents the command to delete an entry from the Access +// poolDeleteACLCmd represents the command to delete an entry from the Access // Control List of a DAOS pool. type poolDeleteACLCmd struct { poolCmd diff --git a/src/control/cmd/dmg/pool_test.go b/src/control/cmd/dmg/pool_test.go index 4681abd9f17..c01ed1bff9c 100644 --- a/src/control/cmd/dmg/pool_test.go +++ b/src/control/cmd/dmg/pool_test.go @@ -718,7 +718,7 @@ func TestPoolCommands(t *testing.T) { "Reintegrate a target with single target idx", "pool reintegrate 031bcaf8-f0f5-42ef-b3c5-ee048676dceb --rank 0 --target-idx 1", strings.Join([]string{ - printRequest(t, &control.PoolReintegrateReq{ + printRequest(t, &control.PoolReintReq{ ID: "031bcaf8-f0f5-42ef-b3c5-ee048676dceb", Rank: 0, TargetIdx: []uint32{1}, @@ -730,7 +730,7 @@ func TestPoolCommands(t *testing.T) { "Reintegrate a target with multiple idx", "pool reintegrate 031bcaf8-f0f5-42ef-b3c5-ee048676dceb --rank 0 --target-idx 1,2,3", strings.Join([]string{ - printRequest(t, &control.PoolReintegrateReq{ + printRequest(t, &control.PoolReintReq{ ID: "031bcaf8-f0f5-42ef-b3c5-ee048676dceb", Rank: 0, TargetIdx: []uint32{1, 2, 3}, @@ -742,7 +742,7 @@ func TestPoolCommands(t *testing.T) { "Reintegrate a target with no idx given", "pool reintegrate 031bcaf8-f0f5-42ef-b3c5-ee048676dceb --rank 0", strings.Join([]string{ - printRequest(t, &control.PoolReintegrateReq{ + printRequest(t, &control.PoolReintReq{ ID: "031bcaf8-f0f5-42ef-b3c5-ee048676dceb", Rank: 0, TargetIdx: []uint32{}, diff --git a/src/control/common/proto/mgmt/addons.go b/src/control/common/proto/mgmt/addons.go index 7f049b29b39..a9da94cdf8c 100644 --- a/src/control/common/proto/mgmt/addons.go +++ b/src/control/common/proto/mgmt/addons.go @@ -121,12 +121,12 @@ func (r *PoolDrainReq) SetUUID(id uuid.UUID) { } // SetSvcRanks sets the request's Pool Service Ranks. -func (r *PoolReintegrateReq) SetSvcRanks(rl []uint32) { +func (r *PoolReintReq) SetSvcRanks(rl []uint32) { r.SvcRanks = rl } // SetUUID sets the request's ID to a UUID. -func (r *PoolReintegrateReq) SetUUID(id uuid.UUID) { +func (r *PoolReintReq) SetUUID(id uuid.UUID) { r.Id = id.String() } diff --git a/src/control/lib/control/pool.go b/src/control/lib/control/pool.go index c5f3edac531..1ad7739cb1d 100644 --- a/src/control/lib/control/pool.go +++ b/src/control/lib/control/pool.go @@ -846,21 +846,19 @@ func PoolExtend(ctx context.Context, rpcClient UnaryInvoker, req *PoolExtendReq) return errors.Wrap(ur.getMSError(), "pool extend failed") } -// PoolReintegrateReq struct contains request -type PoolReintegrateReq struct { +// PoolReintReq struct contains request +type PoolReintReq struct { poolRequest ID string Rank ranklist.Rank TargetIdx []uint32 } -// ReintegrateResp has no other parameters other than success/failure for now. - -// PoolReintegrate will set a pool target for a specific rank back to up. +// PoolReint will set a pool target for a specific rank back to up. // This should automatically start the reintegration process. // Returns an error (including any DER code from DAOS). -func PoolReintegrate(ctx context.Context, rpcClient UnaryInvoker, req *PoolReintegrateReq) error { - pbReq := &mgmtpb.PoolReintegrateReq{ +func PoolReint(ctx context.Context, rpcClient UnaryInvoker, req *PoolReintReq) error { + pbReq := &mgmtpb.PoolReintReq{ Sys: req.getSystem(rpcClient), Id: req.ID, Rank: req.Rank.Uint32(), @@ -868,7 +866,7 @@ func PoolReintegrate(ctx context.Context, rpcClient UnaryInvoker, req *PoolReint } req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { - return mgmtpb.NewMgmtSvcClient(conn).PoolReintegrate(ctx, pbReq) + return mgmtpb.NewMgmtSvcClient(conn).PoolReint(ctx, pbReq) }) rpcClient.Debugf("Reintegrate DAOS pool target request: %s\n", pbUtil.Debug(pbReq)) diff --git a/src/control/server/mgmt_pool.go b/src/control/server/mgmt_pool.go index ef30d975bb8..c78f4da56c5 100644 --- a/src/control/server/mgmt_pool.go +++ b/src/control/server/mgmt_pool.go @@ -896,8 +896,8 @@ func (svc *mgmtSvc) PoolExtend(ctx context.Context, req *mgmtpb.PoolExtendReq) ( return resp, nil } -// PoolReintegrate implements the method defined for the Management Service. -func (svc *mgmtSvc) PoolReintegrate(ctx context.Context, req *mgmtpb.PoolReintegrateReq) (*mgmtpb.PoolReintegrateResp, error) { +// PoolReint implements the method defined for the Management Service. +func (svc *mgmtSvc) PoolReint(ctx context.Context, req *mgmtpb.PoolReintReq) (*mgmtpb.PoolReintResp, error) { if err := svc.checkLeaderRequest(req); err != nil { return nil, err } @@ -924,14 +924,14 @@ func (svc *mgmtSvc) PoolReintegrate(ctx context.Context, req *mgmtpb.PoolReinteg req.TierBytes = ps.Storage.PerRankTierStorage req.MemRatio = ps.Storage.MemRatio - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReintegrate, req) + dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReint, req) if err != nil { return nil, err } - resp := &mgmtpb.PoolReintegrateResp{} + resp := &mgmtpb.PoolReintResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolReintegrate response") + return nil, errors.Wrap(err, "unmarshal PoolReint response") } return resp, nil diff --git a/src/control/server/mgmt_pool_test.go b/src/control/server/mgmt_pool_test.go index 25b45d07567..270149bfe36 100644 --- a/src/control/server/mgmt_pool_test.go +++ b/src/control/server/mgmt_pool_test.go @@ -1478,7 +1478,7 @@ func TestServer_MgmtSvc_PoolExtend(t *testing.T) { } } -func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { +func TestServer_MgmtSvc_PoolReint(t *testing.T) { log, buf := logging.NewTestLogger(t.Name()) missingSB := newTestMgmtSvc(t, log) missingSB.harness.instances[0].(*EngineInstance)._superblock = nil @@ -1488,9 +1488,9 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { nilReq bool getMockDrpc func(error) *mockDrpcClient mgmtSvc *mgmtSvc - reqIn *mgmtpb.PoolReintegrateReq - drpcResp *mgmtpb.PoolReintegrateResp - expDrpcReq *mgmtpb.PoolReintegrateReq + reqIn *mgmtpb.PoolReintReq + drpcResp *mgmtpb.PoolReintResp + expDrpcReq *mgmtpb.PoolReintReq expErr error }{ "nil request": { @@ -1498,7 +1498,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { expErr: errors.New("nil request"), }, "wrong system": { - reqIn: &mgmtpb.PoolReintegrateReq{Id: mockUUID, Sys: "bad"}, + reqIn: &mgmtpb.PoolReintReq{Id: mockUUID, Sys: "bad"}, expErr: FaultWrongSystem("bad", build.DefaultSystemName), }, "missing superblock": { @@ -1522,13 +1522,13 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { expErr: errors.New("unmarshal"), }, "missing uuid": { - reqIn: &mgmtpb.PoolReintegrateReq{Rank: 1}, + reqIn: &mgmtpb.PoolReintReq{Rank: 1}, expErr: errors.New("empty pool id"), }, "successfully extended": { - drpcResp: &mgmtpb.PoolReintegrateResp{}, + drpcResp: &mgmtpb.PoolReintResp{}, // Expect that the last request contains updated params from ps entry. - expDrpcReq: &mgmtpb.PoolReintegrateReq{ + expDrpcReq: &mgmtpb.PoolReintReq{ Sys: build.DefaultSystemName, SvcRanks: mockSvcRanks, Id: mockUUID, @@ -1543,7 +1543,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { defer test.ShowBufferOnFailure(t, buf) if tc.reqIn == nil && !tc.nilReq { - tc.reqIn = &mgmtpb.PoolReintegrateReq{Id: mockUUID, Rank: 1} + tc.reqIn = &mgmtpb.PoolReintReq{Id: mockUUID, Rank: 1} } if tc.mgmtSvc == nil { tc.mgmtSvc = newTestMgmtSvc(t, log) @@ -1568,7 +1568,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { t.Fatal(err) } - gotResp, gotErr := tc.mgmtSvc.PoolReintegrate(test.Context(t), tc.reqIn) + gotResp, gotErr := tc.mgmtSvc.PoolReint(test.Context(t), tc.reqIn) test.CmpErr(t, tc.expErr, gotErr) if tc.expErr != nil { return @@ -1580,7 +1580,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { } // Check extend gets called with correct params from PS entry. - lastReq := new(mgmtpb.PoolReintegrateReq) + lastReq := new(mgmtpb.PoolReintReq) if err := proto.Unmarshal(getLastMockCall(mdc).Body, lastReq); err != nil { t.Fatal(err) } diff --git a/src/mgmt/srv_drpc.c b/src/mgmt/srv_drpc.c index a2f7005db45..63e605f6da4 100644 --- a/src/mgmt/srv_drpc.c +++ b/src/mgmt/srv_drpc.c @@ -940,8 +940,8 @@ void ds_mgmt_drpc_pool_reintegrate(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) { struct drpc_alloc alloc = PROTO_ALLOCATOR_INIT(alloc); - Mgmt__PoolReintegrateReq *req = NULL; - Mgmt__PoolReintegrateResp resp; + Mgmt__PoolReintReq *req = NULL; + Mgmt__PoolReintResp resp; d_rank_list_t *svc_ranks = NULL; uint8_t *body; size_t len; @@ -949,12 +949,10 @@ ds_mgmt_drpc_pool_reintegrate(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) uint64_t nvme_bytes = 0; int rc; - mgmt__pool_reintegrate_resp__init(&resp); + mgmt__pool_reint_resp__init(&resp); /* Unpack the inner request from the drpc call body */ - req = mgmt__pool_reintegrate_req__unpack(&alloc.alloc, - drpc_req->body.len, - drpc_req->body.data); + req = mgmt__pool_reint_req__unpack(&alloc.alloc, drpc_req->body.len, drpc_req->body.data); if (alloc.oom || req == NULL) { drpc_resp->status = DRPC__STATUS__FAILED_UNMARSHAL_PAYLOAD; @@ -986,17 +984,17 @@ ds_mgmt_drpc_pool_reintegrate(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) out: resp.status = rc; - len = mgmt__pool_reintegrate_resp__get_packed_size(&resp); + len = mgmt__pool_reint_resp__get_packed_size(&resp); D_ALLOC(body, len); if (body == NULL) { drpc_resp->status = DRPC__STATUS__FAILED_MARSHAL; } else { - mgmt__pool_reintegrate_resp__pack(&resp, body); + mgmt__pool_reint_resp__pack(&resp, body); drpc_resp->body.len = len; drpc_resp->body.data = body; } - mgmt__pool_reintegrate_req__free_unpacked(req, &alloc.alloc); + mgmt__pool_reint_req__free_unpacked(req, &alloc.alloc); } void ds_mgmt_drpc_pool_set_prop(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) diff --git a/src/mgmt/tests/srv_drpc_tests.c b/src/mgmt/tests/srv_drpc_tests.c index a0682af6330..3367933aff6 100644 --- a/src/mgmt/tests/srv_drpc_tests.c +++ b/src/mgmt/tests/srv_drpc_tests.c @@ -2063,57 +2063,56 @@ test_drpc_extend_success(void **state) * dRPC pool reintegrate tests */ static void -pack_pool_reintegrate_req(Drpc__Call *call, Mgmt__PoolReintegrateReq *req) +pack_pool_reint_req(Drpc__Call *call, Mgmt__PoolReintReq *req) { size_t len; uint8_t *body; - len = mgmt__pool_reintegrate_req__get_packed_size(req); + len = mgmt__pool_reint_req__get_packed_size(req); D_ALLOC(body, len); assert_non_null(body); - mgmt__pool_reintegrate_req__pack(req, body); + mgmt__pool_reint_req__pack(req, body); call->body.data = body; call->body.len = len; } static void -setup_reintegrate_drpc_call(Drpc__Call *call, char *uuid) +setup_reint_drpc_call(Drpc__Call *call, char *uuid) { - Mgmt__PoolReintegrateReq req = MGMT__POOL_REINTEGRATE_REQ__INIT; + Mgmt__PoolReintReq req = MGMT__POOL_REINT_REQ__INIT; req.id = uuid; - pack_pool_reintegrate_req(call, &req); + pack_pool_reint_req(call, &req); } static void -expect_drpc_reintegrate_resp_with_error(Drpc__Response *resp, int exp_error) +expect_drpc_reint_resp_with_error(Drpc__Response *resp, int exp_error) { - Mgmt__PoolReintegrateResp *pc_resp = NULL; + Mgmt__PoolReintResp *pc_resp = NULL; assert_int_equal(resp->status, DRPC__STATUS__SUCCESS); assert_non_null(resp->body.data); - pc_resp = mgmt__pool_reintegrate_resp__unpack(NULL, resp->body.len, - resp->body.data); + pc_resp = mgmt__pool_reint_resp__unpack(NULL, resp->body.len, resp->body.data); assert_non_null(pc_resp); assert_int_equal(pc_resp->status, exp_error); - mgmt__pool_reintegrate_resp__free_unpacked(pc_resp, NULL); + mgmt__pool_reint_resp__free_unpacked(pc_resp, NULL); } static void -test_drpc_reintegrate_bad_uuid(void **state) +test_drpc_reint_bad_uuid(void **state) { Drpc__Call call = DRPC__CALL__INIT; Drpc__Response resp = DRPC__RESPONSE__INIT; - setup_reintegrate_drpc_call(&call, "BAD"); + setup_reint_drpc_call(&call, "BAD"); ds_mgmt_drpc_pool_reintegrate(&call, &resp); - expect_drpc_reintegrate_resp_with_error(&resp, -DER_INVAL); + expect_drpc_reint_resp_with_error(&resp, -DER_INVAL); D_FREE(call.body.data); D_FREE(resp.body.data); @@ -3022,7 +3021,7 @@ test_drpc_check_act_success(void **state) #define POOL_EXTEND_TEST(x) cmocka_unit_test_setup(x, \ drpc_pool_extend_setup) -#define REINTEGRATE_TEST(x) cmocka_unit_test(x) +#define REINT_TEST(x) cmocka_unit_test(x) #define POOL_CREATE_TEST(x) cmocka_unit_test(x) @@ -3100,7 +3099,7 @@ main(void) POOL_EXTEND_TEST(test_drpc_extend_bad_uuid), POOL_EXTEND_TEST(test_drpc_extend_mgmt_svc_fails), POOL_EXTEND_TEST(test_drpc_extend_success), - REINTEGRATE_TEST(test_drpc_reintegrate_bad_uuid), + REINT_TEST(test_drpc_reint_bad_uuid), QUERY_TEST(test_drpc_pool_query_bad_uuid), QUERY_TEST(test_drpc_pool_query_mgmt_svc_fails), QUERY_TEST(test_drpc_pool_query_success), From ba498c8a9c67bd428c0d7d9e645d20506d1939a6 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 3 Dec 2024 20:05:31 +0000 Subject: [PATCH 05/19] address leftover comments from kjacque on PR-15506 Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/server/mgmt_pool.go | 54 ++++++++++++++++++++----------- src/control/server/mgmt_system.go | 31 +++++++++++------- 2 files changed, 55 insertions(+), 30 deletions(-) diff --git a/src/control/server/mgmt_pool.go b/src/control/server/mgmt_pool.go index c78f4da56c5..baae8662d95 100644 --- a/src/control/server/mgmt_pool.go +++ b/src/control/server/mgmt_pool.go @@ -479,7 +479,8 @@ func (svc *mgmtSvc) poolCreate(parent context.Context, req *mgmtpb.PoolCreateReq } if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolCreate response") + svc.log.Errorf("PoolCreateResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolCreateResp") } if resp.GetStatus() != 0 { @@ -751,14 +752,16 @@ func (svc *mgmtSvc) poolDestroyNoLeaderCheck(parent context.Context, req *mgmtpb } sort.Slice(allRanks, func(i, j int) bool { return allRanks[i] < allRanks[j] }) req.SvcRanks = allRanks - svc.log.Debugf("MgmtSvc.PoolDestroy issuing drpc.MethodPoolDestroy: id=%s nSvcRanks=%d\n", req.Id, len(req.SvcRanks)) + svc.log.Debugf("MgmtSvc.PoolDestroy issuing drpc.MethodPoolDestroy: id=%s nSvcRanks=%d\n", + req.Id, len(req.SvcRanks)) dresp, err := svc.harness.CallDrpc(ctx, drpc.MethodPoolDestroy, req) if err != nil { return nil, err } if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolDestroy response") + svc.log.Errorf("PoolDestroyResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolDestroyResp") } ds := daos.Status(resp.Status) @@ -791,7 +794,8 @@ func (svc *mgmtSvc) evictPoolConnections(ctx context.Context, req *mgmtpb.PoolEv resp := &mgmtpb.PoolEvictResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolEvict response") + svc.log.Errorf("PoolEvictResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolEvictResp") } if resp.Count > 0 { @@ -834,7 +838,8 @@ func (svc *mgmtSvc) PoolExclude(ctx context.Context, req *mgmtpb.PoolExcludeReq) resp := &mgmtpb.PoolExcludeResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolExclude response") + svc.log.Errorf("PoolExcludeResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolExcludeResp") } return resp, nil @@ -853,7 +858,8 @@ func (svc *mgmtSvc) PoolDrain(ctx context.Context, req *mgmtpb.PoolDrainReq) (*m resp := &mgmtpb.PoolDrainResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolDrain response") + svc.log.Errorf("PoolDrainResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolDrainResp") } return resp, nil @@ -890,7 +896,8 @@ func (svc *mgmtSvc) PoolExtend(ctx context.Context, req *mgmtpb.PoolExtendReq) ( resp := &mgmtpb.PoolExtendResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolExtend response") + svc.log.Errorf("PoolExtendResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolExtendResp") } return resp, nil @@ -931,7 +938,8 @@ func (svc *mgmtSvc) PoolReint(ctx context.Context, req *mgmtpb.PoolReintReq) (*m resp := &mgmtpb.PoolReintResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolReint response") + svc.log.Errorf("PoolReintResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolReintResp") } return resp, nil @@ -954,7 +962,8 @@ func (svc *mgmtSvc) PoolQuery(ctx context.Context, req *mgmtpb.PoolQueryReq) (*m resp := &mgmtpb.PoolQueryResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolQuery response") + svc.log.Errorf("PoolQueryResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolQueryResp") } // Preserve compatibility with pre-2.6 callers. @@ -983,7 +992,8 @@ func (svc *mgmtSvc) PoolQueryTarget(ctx context.Context, req *mgmtpb.PoolQueryTa resp := &mgmtpb.PoolQueryTargetResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolQueryTarget response") + svc.log.Errorf("PoolQueryTargetResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolQueryTargetResp") } // TODO DAOS-16209: After VOS query API is updated, zero-value mem_file_bytes will be @@ -1011,7 +1021,8 @@ func (svc *mgmtSvc) PoolUpgrade(ctx context.Context, req *mgmtpb.PoolUpgradeReq) resp := &mgmtpb.PoolUpgradeResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolUpgrade response") + svc.log.Errorf("PoolUpgradeResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolUpgradeResp") } return resp, nil @@ -1060,7 +1071,8 @@ func (svc *mgmtSvc) updatePoolLabel(ctx context.Context, sys string, uuid uuid.U resp := new(mgmtpb.PoolSetPropResp) if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return errors.Wrap(err, "unmarshal PoolSetProp response") + svc.log.Errorf("PoolSetPropResp Unmarshal: %s", err) + return errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolSetPropResp") } if resp.GetStatus() != 0 { @@ -1124,7 +1136,8 @@ func (svc *mgmtSvc) PoolSetProp(parent context.Context, req *mgmtpb.PoolSetPropR } if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolSetProp response") + svc.log.Errorf("PoolSetPropResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolSetPropResp") } return resp, nil @@ -1150,7 +1163,8 @@ func (svc *mgmtSvc) PoolGetProp(ctx context.Context, req *mgmtpb.PoolGetPropReq) resp := new(mgmtpb.PoolGetPropResp) if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolGetProp response") + svc.log.Errorf("PoolGetPropResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolGetPropResp") } if resp.GetStatus() != 0 { @@ -1173,7 +1187,8 @@ func (svc *mgmtSvc) PoolGetACL(ctx context.Context, req *mgmtpb.GetACLReq) (*mgm resp := &mgmtpb.ACLResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolGetACL response") + svc.log.Errorf("PoolGetACL response Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolGetACL response") } return resp, nil @@ -1192,7 +1207,8 @@ func (svc *mgmtSvc) PoolOverwriteACL(ctx context.Context, req *mgmtpb.ModifyACLR resp := &mgmtpb.ACLResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolOverwriteACL response") + svc.log.Errorf("PoolOverwriteACL response Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolOverwriteACL response") } return resp, nil @@ -1212,7 +1228,8 @@ func (svc *mgmtSvc) PoolUpdateACL(ctx context.Context, req *mgmtpb.ModifyACLReq) resp := &mgmtpb.ACLResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolUpdateACL response") + svc.log.Errorf("PoolUpdateACL response Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolUpdateACL response") } return resp, nil @@ -1232,7 +1249,8 @@ func (svc *mgmtSvc) PoolDeleteACL(ctx context.Context, req *mgmtpb.DeleteACLReq) resp := &mgmtpb.ACLResp{} if err = proto.Unmarshal(dresp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolDeleteACL response") + svc.log.Errorf("PoolDeleteACL response Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolDeleteACL response") } return resp, nil diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index 1bcfa84e912..988c4bca1dc 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -531,7 +531,8 @@ func (svc *mgmtSvc) doGroupUpdate(ctx context.Context, forced bool) error { resp := new(mgmtpb.GroupUpdateResp) if err = proto.Unmarshal(dResp.Body, resp); err != nil { - return errors.Wrap(err, "unmarshal GroupUpdate response") + svc.log.Errorf("GroupUpdateResp Unmarshal: %s", err) + return errors.Wrap(drpc.UnmarshalingPayloadFailure(), "GroupUpdateResp") } if resp.GetStatus() != 0 { @@ -1073,6 +1074,7 @@ func (svc *mgmtSvc) SystemExclude(ctx context.Context, req *mgmtpb.SystemExclude return resp, nil } +// SystemDrain marks specified ranks on all pools in to drain state. func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) (*mgmtpb.SystemDrainResp, error) { if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { return nil, err @@ -1138,8 +1140,6 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) sort.Strings(poolIDs) resp := new(mgmtpb.SystemDrainResp) - drainReq := new(mgmtpb.PoolDrainReq) - drainReq.Sys = req.Sys for _, id := range poolIDs { rs := poolRanks[id] @@ -1149,14 +1149,15 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) drained := ranklist.MustCreateRankSet("") failed := make(map[string]*ranklist.RankSet) - // Use our incoming request and just replace relevant parameters on each iteration. - drainReq.Id = id - // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API // supports it. for _, r := range rs.Ranks() { var errMsg string - drainReq.Rank = r.Uint32() + drainReq := &mgmtpb.PoolDrainReq{ + Sys: req.Sys, + Rank: r.Uint32(), + Id: id, + } drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, drainReq) @@ -1166,8 +1167,10 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) drainResp := &mgmtpb.PoolDrainResp{} if err = proto.Unmarshal(drpcResp.Body, drainResp); err != nil { - errMsg = errors.Wrap(err, "unmarshal PoolEvict response").Error() - drainResp.Status = int32(daos.IOInvalid) + svc.log.Errorf("PoolDrainResp Unmarshal: %s", err) + drainResp.Status = int32(daos.MiscError) + errMsg = errors.Wrap(drpc.UnmarshalingPayloadFailure(), + "PoolDrainResp").Error() } else if drainResp.Status != int32(daos.Success) { errMsg = daos.Status(drainResp.Status).Error() } @@ -1376,8 +1379,10 @@ func (svc *mgmtSvc) SystemCleanup(ctx context.Context, req *mgmtpb.SystemCleanup res := &mgmtpb.PoolEvictResp{} if err = proto.Unmarshal(dresp.Body, res); err != nil { - res.Status = int32(daos.IOInvalid) - errMsg = errors.Wrap(err, "unmarshal PoolEvict response").Error() + svc.log.Errorf("PoolEvictResp Unmarshal: %s", err) + res.Status = int32(daos.MiscError) + errMsg = errors.Wrap(drpc.UnmarshalingPayloadFailure(), + "PoolEvictResp").Error() res.Count = 0 } @@ -1500,7 +1505,9 @@ func (svc *mgmtSvc) updatePoolPropsWithSysProps(ctx context.Context, systemPrope } if err = proto.Unmarshal(dResp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal PoolSetProp response") + svc.log.Errorf("PoolSetPropResp Unmarshal: %s", err) + return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), + "PoolSetPropResp") } if resp.Status != 0 { return nil, errors.Errorf("SystemSetProp: %d\n", resp.Status) From a67fc8dd44eba4d4633713d961b25990fe2fc256 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Wed, 4 Dec 2024 23:10:11 +0000 Subject: [PATCH 06/19] DRY-up refactor Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/server/mgmt_pool.go | 123 +++--- src/control/server/mgmt_svc.go | 10 + src/control/server/mgmt_system.go | 522 +++++++++++++++++++------ src/control/server/mgmt_system_test.go | 8 +- 4 files changed, 465 insertions(+), 198 deletions(-) diff --git a/src/control/server/mgmt_pool.go b/src/control/server/mgmt_pool.go index baae8662d95..c5ac2ba80bf 100644 --- a/src/control/server/mgmt_pool.go +++ b/src/control/server/mgmt_pool.go @@ -460,7 +460,7 @@ func (svc *mgmtSvc) poolCreate(parent context.Context, req *mgmtpb.PoolCreateReq } }() - dresp, err := svc.harness.CallDrpc(ctx, drpc.MethodPoolCreate, req) + dResp, err := svc.harness.CallDrpc(ctx, drpc.MethodPoolCreate, req) if err != nil { svc.log.Errorf("pool create dRPC call failed: %s", err) if err := svc.sysdb.RemovePoolService(ctx, ps.PoolUUID); err != nil { @@ -478,9 +478,8 @@ func (svc *mgmtSvc) poolCreate(parent context.Context, req *mgmtpb.PoolCreateReq } } - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolCreateResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolCreateResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } if resp.GetStatus() != 0 { @@ -754,14 +753,13 @@ func (svc *mgmtSvc) poolDestroyNoLeaderCheck(parent context.Context, req *mgmtpb req.SvcRanks = allRanks svc.log.Debugf("MgmtSvc.PoolDestroy issuing drpc.MethodPoolDestroy: id=%s nSvcRanks=%d\n", req.Id, len(req.SvcRanks)) - dresp, err := svc.harness.CallDrpc(ctx, drpc.MethodPoolDestroy, req) + dResp, err := svc.harness.CallDrpc(ctx, drpc.MethodPoolDestroy, req) if err != nil { return nil, err } - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolDestroyResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolDestroyResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } ds := daos.Status(resp.Status) @@ -787,15 +785,14 @@ func (svc *mgmtSvc) evictPoolConnections(ctx context.Context, req *mgmtpb.PoolEv return nil, err } - dresp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolEvict, req) + dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolEvict, req) if err != nil { return nil, err } resp := &mgmtpb.PoolEvictResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolEvictResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolEvictResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } if resp.Count > 0 { @@ -831,15 +828,14 @@ func (svc *mgmtSvc) PoolExclude(ctx context.Context, req *mgmtpb.PoolExcludeReq) return nil, err } - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolExclude, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolExclude, req) if err != nil { return nil, err } resp := &mgmtpb.PoolExcludeResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolExcludeResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolExcludeResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } return resp, nil @@ -851,15 +847,14 @@ func (svc *mgmtSvc) PoolDrain(ctx context.Context, req *mgmtpb.PoolDrainReq) (*m return nil, err } - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, req) if err != nil { return nil, err } resp := &mgmtpb.PoolDrainResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolDrainResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolDrainResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } return resp, nil @@ -889,15 +884,14 @@ func (svc *mgmtSvc) PoolExtend(ctx context.Context, req *mgmtpb.PoolExtendReq) ( svc.log.Debugf("MgmtSvc.PoolExtend forwarding modified req:%+v\n", req) - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolExtend, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolExtend, req) if err != nil { return nil, err } resp := &mgmtpb.PoolExtendResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolExtendResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolExtendResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } return resp, nil @@ -931,15 +925,14 @@ func (svc *mgmtSvc) PoolReint(ctx context.Context, req *mgmtpb.PoolReintReq) (*m req.TierBytes = ps.Storage.PerRankTierStorage req.MemRatio = ps.Storage.MemRatio - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReint, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReint, req) if err != nil { return nil, err } resp := &mgmtpb.PoolReintResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolReintResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolReintResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } return resp, nil @@ -955,15 +948,14 @@ func (svc *mgmtSvc) PoolQuery(ctx context.Context, req *mgmtpb.PoolQueryReq) (*m req.QueryMask = uint64(daos.DefaultPoolQueryMask) } - dresp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolQuery, req) + dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolQuery, req) if err != nil { return nil, err } resp := &mgmtpb.PoolQueryResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolQueryResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolQueryResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } // Preserve compatibility with pre-2.6 callers. @@ -985,15 +977,14 @@ func (svc *mgmtSvc) PoolQueryTarget(ctx context.Context, req *mgmtpb.PoolQueryTa return nil, err } - dresp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolQueryTarget, req) + dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolQueryTarget, req) if err != nil { return nil, err } resp := &mgmtpb.PoolQueryTargetResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolQueryTargetResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolQueryTargetResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } // TODO DAOS-16209: After VOS query API is updated, zero-value mem_file_bytes will be @@ -1014,15 +1005,14 @@ func (svc *mgmtSvc) PoolUpgrade(ctx context.Context, req *mgmtpb.PoolUpgradeReq) return nil, err } - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolUpgrade, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolUpgrade, req) if err != nil { return nil, err } resp := &mgmtpb.PoolUpgradeResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolUpgradeResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolUpgradeResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } return resp, nil @@ -1063,16 +1053,15 @@ func (svc *mgmtSvc) updatePoolLabel(ctx context.Context, sys string, uuid uuid.U Properties: []*mgmtpb.PoolProperty{prop}, } - var dresp *drpc.Response - dresp, err = svc.makePoolServiceCall(ctx, drpc.MethodPoolSetProp, req) + var dResp *drpc.Response + dResp, err = svc.makePoolServiceCall(ctx, drpc.MethodPoolSetProp, req) if err != nil { return err } resp := new(mgmtpb.PoolSetPropResp) - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolSetPropResp Unmarshal: %s", err) - return errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolSetPropResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return err } if resp.GetStatus() != 0 { @@ -1129,15 +1118,14 @@ func (svc *mgmtSvc) PoolSetProp(parent context.Context, req *mgmtpb.PoolSetPropR req.Properties = miscProps - var dresp *drpc.Response - dresp, err = svc.makePoolServiceCall(ctx, drpc.MethodPoolSetProp, req) + var dResp *drpc.Response + dResp, err = svc.makePoolServiceCall(ctx, drpc.MethodPoolSetProp, req) if err != nil { return nil, err } - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolSetPropResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolSetPropResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } return resp, nil @@ -1156,15 +1144,14 @@ func (svc *mgmtSvc) PoolGetProp(ctx context.Context, req *mgmtpb.PoolGetPropReq) return nil, errors.Errorf("PoolGetProp() request with 0 properties") } - dresp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolGetProp, req) + dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolGetProp, req) if err != nil { return nil, err } resp := new(mgmtpb.PoolGetPropResp) - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolGetPropResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolGetPropResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, err } if resp.GetStatus() != 0 { @@ -1180,15 +1167,14 @@ func (svc *mgmtSvc) PoolGetACL(ctx context.Context, req *mgmtpb.GetACLReq) (*mgm return nil, err } - dresp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolGetACL, req) + dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolGetACL, req) if err != nil { return nil, err } resp := &mgmtpb.ACLResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolGetACL response Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolGetACL response") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, errors.Wrap(err, "PoolGetACL") } return resp, nil @@ -1200,15 +1186,14 @@ func (svc *mgmtSvc) PoolOverwriteACL(ctx context.Context, req *mgmtpb.ModifyACLR return nil, err } - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolOverwriteACL, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolOverwriteACL, req) if err != nil { return nil, err } resp := &mgmtpb.ACLResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolOverwriteACL response Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolOverwriteACL response") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, errors.Wrap(err, "PoolOverwriteACL") } return resp, nil @@ -1221,15 +1206,14 @@ func (svc *mgmtSvc) PoolUpdateACL(ctx context.Context, req *mgmtpb.ModifyACLReq) return nil, err } - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolUpdateACL, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolUpdateACL, req) if err != nil { return nil, err } resp := &mgmtpb.ACLResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolUpdateACL response Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolUpdateACL response") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, errors.Wrap(err, "PoolUpdateACL") } return resp, nil @@ -1242,15 +1226,14 @@ func (svc *mgmtSvc) PoolDeleteACL(ctx context.Context, req *mgmtpb.DeleteACLReq) return nil, err } - dresp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDeleteACL, req) + dResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDeleteACL, req) if err != nil { return nil, err } resp := &mgmtpb.ACLResp{} - if err = proto.Unmarshal(dresp.Body, resp); err != nil { - svc.log.Errorf("PoolDeleteACL response Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), "PoolDeleteACL response") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return nil, errors.Wrap(err, "PoolDeleteACL") } return resp, nil diff --git a/src/control/server/mgmt_svc.go b/src/control/server/mgmt_svc.go index aac5358736b..250b0a6dbcf 100644 --- a/src/control/server/mgmt_svc.go +++ b/src/control/server/mgmt_svc.go @@ -18,6 +18,7 @@ import ( "github.com/daos-stack/daos/src/control/build" "github.com/daos-stack/daos/src/control/common" mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + "github.com/daos-stack/daos/src/control/drpc" "github.com/daos-stack/daos/src/control/events" "github.com/daos-stack/daos/src/control/lib/control" "github.com/daos-stack/daos/src/control/lib/daos" @@ -409,3 +410,12 @@ func (svc *mgmtSvc) leaderTaskLoop(parent context.Context) { } } } + +func (svc *mgmtSvc) unmarshalPB(body []byte, resp proto.Message) error { + if err := proto.Unmarshal(body, resp); err != nil { + svc.log.Errorf("%T Unmarshal: %s", resp, err) + return errors.Wrapf(drpc.UnmarshalingPayloadFailure(), "%T", resp) + } + + return nil +} diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index 988c4bca1dc..194ed940e38 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" @@ -530,9 +529,8 @@ func (svc *mgmtSvc) doGroupUpdate(ctx context.Context, forced bool) error { svc.lastMapVer = gm.Version resp := new(mgmtpb.GroupUpdateResp) - if err = proto.Unmarshal(dResp.Body, resp); err != nil { - svc.log.Errorf("GroupUpdateResp Unmarshal: %s", err) - return errors.Wrap(drpc.UnmarshalingPayloadFailure(), "GroupUpdateResp") + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return err } if resp.GetStatus() != 0 { @@ -1074,17 +1072,12 @@ func (svc *mgmtSvc) SystemExclude(ctx context.Context, req *mgmtpb.SystemExclude return resp, nil } -// SystemDrain marks specified ranks on all pools in to drain state. -func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) (*mgmtpb.SystemDrainResp, error) { - if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { - return nil, err - } - - if req.Hosts == "" && req.Ranks == "" { +func (svc *mgmtSvc) refuseMissingRanks(hosts, ranks string) (*ranklist.RankSet, error) { + if hosts == "" && ranks == "" { return nil, errors.New("no hosts or ranks specified") } - hitRanks, missRanks, missHosts, err := svc.resolveRanks(req.Hosts, req.Ranks) + hitRanks, missRanks, missHosts, err := svc.resolveRanks(hosts, ranks) if err != nil { return nil, err } @@ -1099,20 +1092,97 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) return nil, errors.New("no ranks to drain") } - // Drain rank on each pool it belongs to. + return hitRanks, nil +} + +func osaResultsFromRanks(id string, succeeded *ranklist.RankSet, failed poolRanksMap) []*mgmtpb.SystemOsaResult { + results := []*mgmtpb.SystemOsaResult{} + + // Single result generated for all ranks operated on successfully. + if succeeded.Count() > 0 { + results = append(results, &mgmtpb.SystemOsaResult{ + PoolId: id, + Ranks: succeeded.String(), + }) + } + + var msgs []string + for msg := range failed { + msgs = append(msgs, msg) + } + sort.Strings(msgs) + + // Result generated for each failure message rank-group. + for _, msg := range msgs { + results = append(results, &mgmtpb.SystemOsaResult{ + // Status already included in error message. + Status: int32(daos.MiscError), + Msg: msg, + PoolId: id, + Ranks: failed[msg].String(), + }) + } + + return results +} + +type poolRanksMap map[string]*ranklist.RankSet + +type osaPoolRankOpSig func(*mgmtSvc, context.Context, string, string, ranklist.Rank) (int32, string, 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{} + + for _, id := range poolIDs { + rs := poolRanks[id] + if rs.Count() == 0 { + continue + } + succeeded := ranklist.MustCreateRankSet("") + failed := make(poolRanksMap) + + // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API + // supports it. + for _, r := range rs.Ranks() { + status, errMsg, err := drpcCall(svc, ctx, sys, id, r) + if err != nil { + return nil, err + } + + // Each rank-drain failure message will produce a single result. + if status != 0 { + if _, exists := failed[errMsg]; !exists { + failed[errMsg] = ranklist.MustCreateRankSet("") + } + failed[errMsg].Add(r) + } else { + succeeded.Add(r) + } + } + + results = append(results, osaResultsFromRanks(id, succeeded, failed)...) + } + + return results, nil +} + +// 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. +func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksMap, error) { + poolRanks := make(poolRanksMap) + poolIDs := []string{} // Label or UUID. psList, err := svc.sysdb.PoolServiceList(false) if err != nil { - return nil, err + return nil, nil, err } ranksMap := make(map[ranklist.Rank]struct{}) - for _, r := range hitRanks.Ranks() { + for _, r := range ranks.Ranks() { ranksMap[r] = struct{}{} } - poolRanks := make(map[string]*ranklist.RankSet) - poolIDs := []string{} // Label or UUID. for _, ps := range psList { currentRanks := ps.Storage.CurrentRanks() @@ -1135,89 +1205,294 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) poolRanks[poolID].Add(r) } } - svc.log.Debugf("pool-ranks to drain: %v", poolRanks) + svc.log.Debugf("pool-ranks to operate on: %v", poolRanks) sort.Strings(poolIDs) - resp := new(mgmtpb.SystemDrainResp) + return poolIDs, poolRanks, nil +} - for _, id := range poolIDs { - rs := poolRanks[id] - if rs.Count() == 0 { - continue - } - drained := ranklist.MustCreateRankSet("") - failed := make(map[string]*ranklist.RankSet) +// Drain rank on a pool by calling over dRPC. +func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string, error) { + var errMsg string + drainReq := &mgmtpb.PoolDrainReq{ + Sys: sys, + Rank: rank.Uint32(), + Id: id, + } + drainResp := &mgmtpb.PoolDrainResp{} - // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API - // supports it. - for _, r := range rs.Ranks() { - var errMsg string - drainReq := &mgmtpb.PoolDrainReq{ - Sys: req.Sys, - Rank: r.Uint32(), - Id: id, - } + drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, + drainReq) + if err != nil { + return 0, "", err + } - drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, - drainReq) - if err != nil { - return nil, err - } + if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { + drainResp.Status = int32(daos.MiscError) + errMsg = err.Error() + } else if drainResp.Status != int32(daos.Success) { + errMsg = daos.Status(drainResp.Status).Error() + } - drainResp := &mgmtpb.PoolDrainResp{} - if err = proto.Unmarshal(drpcResp.Body, drainResp); err != nil { - svc.log.Errorf("PoolDrainResp Unmarshal: %s", err) - drainResp.Status = int32(daos.MiscError) - errMsg = errors.Wrap(drpc.UnmarshalingPayloadFailure(), - "PoolDrainResp").Error() - } else if drainResp.Status != int32(daos.Success) { - errMsg = daos.Status(drainResp.Status).Error() - } + svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", + drainResp, drainReq) - svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", - drainResp, drainReq) + return drainResp.Status, errMsg, nil +} - // Each rank-drain failure message will produce a single result. - if drainResp.Status != 0 { - if _, exists := failed[errMsg]; !exists { - failed[errMsg] = ranklist.MustCreateRankSet("") - } - failed[errMsg].Add(r) - } else { - drained.Add(ranklist.Rank(drainReq.Rank)) - } - } +// 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 err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { + return nil, err + } - // Single result generated for all ranks drained successfully. - if drained.Count() > 0 { - resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ - PoolId: id, - Ranks: drained.String(), - }) - } + // Validate requested hosts or ranks exist and fail if any are missing. + hitRanks, err := svc.refuseMissingRanks(req.Hosts, req.Ranks) + if err != nil { + return nil, err + } - var msgs []string - for msg := range failed { - msgs = append(msgs, msg) - } - sort.Strings(msgs) - - // Result generated for each failure message rank-group. - for _, msg := range msgs { - resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ - // Status already included in error message. - Status: -1, - Msg: msg, - PoolId: id, - Ranks: failed[msg].String(), - }) - } + // Retrieve rank-to-pool mappings. + poolIDs, poolRanks, err := svc.getPoolsRanks(hitRanks) + if err != nil { + return nil, err } - return resp, nil + // Generate results from dRPC calls. + results, err := svc.getOsaResults(ctx, req.Sys, poolIDs, poolRanks, drainPoolRank) + if err != nil { + return nil, err + } + + return &mgmtpb.SystemDrainResp{ + Results: results, + }, nil } +//// Drain rank on a pool by calling over dRPC. +//func (svc *mgmtSvc) drainPoolRank(ctx context.Context, sys, id string, rank ranklist.Rank) (uint32, string, error) { +// var errMsg string +// drainReq := &mgmtpb.PoolDrainReq{ +// Sys: req.Sys, +// Rank: r.Uint32(), +// Id: id, +// } +// drainResp := &mgmtpb.PoolDrainResp{} +// +// drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, +// drainReq) +// if err != nil { +// return 0, "", err +// } +// +// if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { +// drainResp.Status = int32(daos.MiscError) +// errMsg = err.Error() +// } else if drainResp.Status != int32(daos.Success) { +// errMsg = daos.Status(drainResp.Status).Error() +// } +// +// svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", +// drainResp, drainReq) +// +// return drainResp.Status, errMsg, nil +//} +// +//// SystemReint re-integrates specified ranks on all pools. +//func (svc *mgmtSvc) SystemReint(ctx context.Context, req *mgmtpb.SystemReintReq) (*mgmtpb.SystemReintResp, error) { +// 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(req.Hosts, req.Ranks) +// if err != nil { +// return nil, err +// } +// +// // Retrieve rank-to-pool mappings. +// poolIDs, poolRanks := svc.getPoolsRanks(hitRanks) +// +// return &mgmtpb.SystemDrainResp{ +// Results: svc.getOsaResults(poolIDs, poolRanks, reintPoolRank), +// }, nil +//} + +// for _, id := range poolIDs { +// rs := poolRanks[id] +// if rs.Count() == 0 { +// continue +// } +// draine :s supreme= ranklist.MustCreateRankSet("") +// failed := make(map[string]*ranklist.RankSet) +// +// // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API +// // supports it. +// for _, r := range rs.Ranks() { +// var errMsg string +// drainReq := &mgmtpb.PoolDrainReq{ +// Sys: req.Sys, +// Rank: r.Uint32(), +// Id: id, +// } +// drainResp := &mgmtpb.PoolDrainResp{} +// +// drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, +// drainReq) +// if err != nil { +// return nil, err +// } +// +// if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { +// drainResp.Status = int32(daos.MiscError) +// errMsg = err.Error() +// } else if drainResp.Status != int32(daos.Success) { +// errMsg = daos.Status(drainResp.Status).Error() +// } +// +// svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", +// drainResp, drainReq) +// +// addRankResult(drainResp.Status, drained, failed) +// } +// +// resp.Results = append(resp.Results, osaResultsFromRanks(id, drained, failed)) +// } + +//// Systemeint marks specified ranks on all pools in to drain state. +//func (svc *mgmtSvc) SystemReint(ctx context.Context, req *mgmtpb.SystemReintReq) (*mgmtpb.SystemReintResp, error) { +// if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { +// return nil, err +// } +// +// if req.Hosts == "" && req.Ranks == "" { +// return nil, errors.New("no hosts or ranks specified") +// } +// +// hitRanks, missRanks, missHosts, err := svc.resolveRanks(req.Hosts, req.Ranks) +// if err != nil { +// return nil, err +// } +// +// if missHosts.Count() > 0 { +// return nil, errors.Errorf("invalid host(s): %s", missHosts.String()) +// } +// if missRanks.Count() > 0 { +// return nil, errors.Errorf("invalid rank(s): %s", missRanks.String()) +// } +// if hitRanks.Count() == 0 { +// return nil, errors.New("no ranks to drain") +// } +// +// // Reint rank on each pool it belongs to. +// +// psList, err := svc.sysdb.PoolServiceList(false) +// if err != nil { +// return nil, err +// } +// +// ranksMap := make(map[ranklist.Rank]struct{}) +// for _, r := range hitRanks.Ranks() { +// ranksMap[r] = struct{}{} +// } +// +// poolRanks := make(map[string]*ranklist.RankSet) +// poolIDs := []string{} // Label or UUID. +// for _, ps := range psList { +// currentRanks := ps.Storage.CurrentRanks() +// +// // Label preferred over UUID. +// poolID := ps.PoolLabel +// if poolID == "" { +// poolID = ps.PoolUUID.String() +// } +// +// svc.log.Tracef("pool-service detected: id %s, ranks %v", poolID, currentRanks) +// +// for _, r := range currentRanks { +// if _, exists := ranksMap[r]; !exists { +// continue +// } +// if _, exists := poolRanks[poolID]; !exists { +// poolRanks[poolID] = ranklist.MustCreateRankSet("") +// poolIDs = append(poolIDs, poolID) +// } +// poolRanks[poolID].Add(r) +// } +// } +// svc.log.Debugf("pool-ranks to drain: %v", poolRanks) +// +// sort.Strings(poolIDs) +// +// resp := new(mgmtpb.SystemReintResp) +// +// for _, id := range poolIDs { +// rs := poolRanks[id] +// if rs.Count() == 0 { +// continue +// } +// drained := ranklist.MustCreateRankSet("") +// failed := make(map[string]*ranklist.RankSet) +// +// // TODO DAOS-6611: Reint multiple pool-ranks per call when drpc.MethodPoolReint API +// // supports it. +// for _, r := range rs.Ranks() { +// drainReq := &mgmtpb.PoolReintReq{ +// Sys: req.Sys, +// Rank: r.Uint32(), +// Id: id, +// } +// drainResp := &mgmtpb.PoolReintResp{} +// +// errMsg, err := osaCall(ctx, drpc.MethodPoolReint, drainReq, drainResp) +// if err != nil { +// return nil, err +// } +// +// svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", +// drainResp, drainReq) +// +// // Each rank-drain failure message will produce a single result. +// if drainResp.Status != 0 { +// if _, exists := failed[errMsg]; !exists { +// failed[errMsg] = ranklist.MustCreateRankSet("") +// } +// failed[errMsg].Add(r) +// } else { +// drained.Add(ranklist.Rank(drainReq.Rank)) +// } +// } +// +// // Single result generated for all ranks drained successfully. +// if drained.Count() > 0 { +// resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ +// PoolId: id, +// Ranks: drained.String(), +// }) +// } +// +// var msgs []string +// for msg := range failed { +// msgs = append(msgs, msg) +// } +// sort.Strings(msgs) +// +// // Result generated for each failure message rank-group. +// for _, msg := range msgs { +// resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ +// // Status already included in error message. +// Status: -1, +// Msg: msg, +// PoolId: id, +// Ranks: failed[msg].String(), +// }) +// } +// } +// +// return resp, nil +//} + // ClusterEvent management service gRPC handler receives ClusterEvent requests // from control-plane instances attempting to notify the MS of a cluster event // in the DAOS system (this handler should only get called on the MS leader). @@ -1361,41 +1636,38 @@ func (svc *mgmtSvc) SystemCleanup(ctx context.Context, req *mgmtpb.SystemCleanup } resp := new(mgmtpb.SystemCleanupResp) - evictReq := new(mgmtpb.PoolEvictReq) - - evictReq.Sys = req.Sys - evictReq.Machine = req.Machine for _, ps := range psList { var errMsg string - // Use our incoming request and just replace the uuid on each iteration - evictReq.Id = ps.PoolUUID.String() + evictReq := &mgmtpb.PoolEvictReq{ + Sys: req.Sys, + Machine: req.Machine, + Id: ps.PoolUUID.String(), + } - dresp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolEvict, evictReq) + dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolEvict, evictReq) if err != nil { return nil, err } - res := &mgmtpb.PoolEvictResp{} - if err = proto.Unmarshal(dresp.Body, res); err != nil { - svc.log.Errorf("PoolEvictResp Unmarshal: %s", err) - res.Status = int32(daos.MiscError) - errMsg = errors.Wrap(drpc.UnmarshalingPayloadFailure(), - "PoolEvictResp").Error() - res.Count = 0 - } - - if res.Status != int32(daos.Success) { - errMsg = fmt.Sprintf("Unable to clean up handles for machine %s on pool %s", evictReq.Machine, evictReq.Id) + evictResp := &mgmtpb.PoolEvictResp{} + if err := svc.unmarshalPB(dResp.Body, evictResp); err != nil { + evictResp.Status = int32(daos.MiscError) + evictResp.Count = 0 + errMsg = err.Error() + } else if evictResp.Status != int32(daos.Success) { + errMsg = fmt.Sprintf("Unable to clean up handles for machine %s on pool %s", + evictReq.Machine, evictReq.Id) } - svc.log.Debugf("Response from pool evict in cleanup: '%+v' (req: '%+v')", res, evictReq) + svc.log.Debugf("Response from pool evict in cleanup: '%+v' (req: '%+v')", evictResp, + evictReq) resp.Results = append(resp.Results, &mgmtpb.SystemCleanupResp_CleanupResult{ - Status: res.Status, + Status: evictResp.Status, Msg: errMsg, PoolId: evictReq.Id, - Count: uint32(res.Count), + Count: uint32(evictResp.Count), }) } @@ -1438,7 +1710,7 @@ func sp2pp(sp *daos.SystemProperty) (*daos.PoolProperty, bool) { } // SystemSetProp sets user-visible system properties. -func (svc *mgmtSvc) SystemSetProp(ctx context.Context, req *mgmtpb.SystemSetPropReq) (resp *mgmtpb.DaosResp, err error) { +func (svc *mgmtSvc) SystemSetProp(ctx context.Context, req *mgmtpb.SystemSetPropReq) (*mgmtpb.DaosResp, error) { if err := svc.checkLeaderRequest(req); err != nil { return nil, err } @@ -1447,33 +1719,34 @@ func (svc *mgmtSvc) SystemSetProp(ctx context.Context, req *mgmtpb.SystemSetProp return nil, err } - if resp, err = svc.updatePoolPropsWithSysProps(ctx, req.GetProperties(), req.Sys); err != nil { + if err := svc.updatePoolPropsWithSysProps(ctx, req.GetProperties(), req.Sys); err != nil { return nil, err } - return + + // Indicate success. + return new(mgmtpb.DaosResp), nil } // updatePoolPropsWithSysProps This function will take systemProperties and // update each associated pool property (if one exists) on each pool -func (svc *mgmtSvc) updatePoolPropsWithSysProps(ctx context.Context, systemProperties map[string]string, sys string) (resp *mgmtpb.DaosResp, err error) { - resp = new(mgmtpb.DaosResp) +func (svc *mgmtSvc) updatePoolPropsWithSysProps(ctx context.Context, systemProperties map[string]string, sys string) error { // Get the properties from the request, convert to pool prop, then put into poolSysProps var poolSysProps []*daos.PoolProperty for k, v := range systemProperties { p, ok := svc.systemProps.Get(k) if !ok { - return nil, errors.Errorf("unknown property %q", k) + return errors.Errorf("unknown property %q", k) } if pp, ok := sp2pp(p); ok { if err := pp.SetValue(v); err != nil { - return nil, errors.Wrapf(err, "invalid value %q for property %q", v, k) + return errors.Wrapf(err, "invalid value %q for property %q", v, k) } poolSysProps = append(poolSysProps, pp) } } if len(poolSysProps) == 0 { - return + return nil } // Create the request for updating the pools. The request will have all pool properties @@ -1494,30 +1767,30 @@ func (svc *mgmtSvc) updatePoolPropsWithSysProps(ctx context.Context, systemPrope pools, err := svc.sysdb.PoolServiceList(false) if err != nil { - return nil, err + return err } for _, ps := range pools { pspr.Id = ps.PoolUUID.String() pspr.SvcRanks = ranklist.RanksToUint32(ps.Replicas) dResp, err := svc.makePoolServiceCall(ctx, drpc.MethodPoolSetProp, pspr) if err != nil { - return nil, err + return err } - if err = proto.Unmarshal(dResp.Body, resp); err != nil { - svc.log.Errorf("PoolSetPropResp Unmarshal: %s", err) - return nil, errors.Wrap(drpc.UnmarshalingPayloadFailure(), - "PoolSetPropResp") + resp := new(mgmtpb.DaosResp) + if err := svc.unmarshalPB(dResp.Body, resp); err != nil { + return err } if resp.Status != 0 { - return nil, errors.Errorf("SystemSetProp: %d\n", resp.Status) + return errors.Errorf("SystemSetProp: %d\n", resp.Status) } } - return resp, nil + + return nil } // SystemGetProp gets user-visible system properties. -func (svc *mgmtSvc) SystemGetProp(ctx context.Context, req *mgmtpb.SystemGetPropReq) (resp *mgmtpb.SystemGetPropResp, err error) { +func (svc *mgmtSvc) SystemGetProp(ctx context.Context, req *mgmtpb.SystemGetPropReq) (*mgmtpb.SystemGetPropResp, error) { if err := svc.checkReplicaRequest(wrapCheckerReq(req)); err != nil { return nil, err } @@ -1527,6 +1800,5 @@ func (svc *mgmtSvc) SystemGetProp(ctx context.Context, req *mgmtpb.SystemGetProp return nil, err } - resp = &mgmtpb.SystemGetPropResp{Properties: props} - return + return &mgmtpb.SystemGetPropResp{Properties: props}, nil } diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 5bca3ab228a..405b48c275f 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1885,7 +1885,9 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { poolRanks: map[string]string{ test.MockUUID(1): "2-5", }, - expResp: &mgmtpb.SystemDrainResp{}, + expResp: &mgmtpb.SystemDrainResp{ + Results: []*mgmtpb.SystemOsaResult{}, + }, }, "matching ranks; multiple pools; no drpc response": { req: &mgmtpb.SystemDrainReq{Ranks: "0,1"}, @@ -1976,13 +1978,13 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { { PoolId: test.MockUUID(1), Ranks: "1-2", - Status: -1, + Status: -1025, Msg: "DER_UNKNOWN(-1): Unknown error code -1", }, { PoolId: test.MockUUID(2), Ranks: "1-2", - Status: -1, + Status: -1025, Msg: "DER_UNKNOWN(-1): Unknown error code -1", }, }, From 79a3513c887f9e750e8488f1bbbca5a536454dfe Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Thu, 5 Dec 2024 00:11:33 +0000 Subject: [PATCH 07/19] add SystemReint internals Features: control Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/server/mgmt_system.go | 281 +++++-------------------- src/control/server/mgmt_system_test.go | 243 +++++++++++++++++++++ 2 files changed, 300 insertions(+), 224 deletions(-) diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index 194ed940e38..c56dfedec7c 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -1222,8 +1222,7 @@ func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank rankl } drainResp := &mgmtpb.PoolDrainResp{} - drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, - drainReq) + drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, drainReq) if err != nil { return 0, "", err } @@ -1270,228 +1269,62 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) }, nil } -//// Drain rank on a pool by calling over dRPC. -//func (svc *mgmtSvc) drainPoolRank(ctx context.Context, sys, id string, rank ranklist.Rank) (uint32, string, error) { -// var errMsg string -// drainReq := &mgmtpb.PoolDrainReq{ -// Sys: req.Sys, -// Rank: r.Uint32(), -// Id: id, -// } -// drainResp := &mgmtpb.PoolDrainResp{} -// -// drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, -// drainReq) -// if err != nil { -// return 0, "", err -// } -// -// if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { -// drainResp.Status = int32(daos.MiscError) -// errMsg = err.Error() -// } else if drainResp.Status != int32(daos.Success) { -// errMsg = daos.Status(drainResp.Status).Error() -// } -// -// svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", -// drainResp, drainReq) -// -// return drainResp.Status, errMsg, nil -//} -// -//// SystemReint re-integrates specified ranks on all pools. -//func (svc *mgmtSvc) SystemReint(ctx context.Context, req *mgmtpb.SystemReintReq) (*mgmtpb.SystemReintResp, error) { -// 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(req.Hosts, req.Ranks) -// if err != nil { -// return nil, err -// } -// -// // Retrieve rank-to-pool mappings. -// poolIDs, poolRanks := svc.getPoolsRanks(hitRanks) -// -// return &mgmtpb.SystemDrainResp{ -// Results: svc.getOsaResults(poolIDs, poolRanks, reintPoolRank), -// }, nil -//} - -// for _, id := range poolIDs { -// rs := poolRanks[id] -// if rs.Count() == 0 { -// continue -// } -// draine :s supreme= ranklist.MustCreateRankSet("") -// failed := make(map[string]*ranklist.RankSet) -// -// // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API -// // supports it. -// for _, r := range rs.Ranks() { -// var errMsg string -// drainReq := &mgmtpb.PoolDrainReq{ -// Sys: req.Sys, -// Rank: r.Uint32(), -// Id: id, -// } -// drainResp := &mgmtpb.PoolDrainResp{} -// -// drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, -// drainReq) -// if err != nil { -// return nil, err -// } -// -// if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { -// drainResp.Status = int32(daos.MiscError) -// errMsg = err.Error() -// } else if drainResp.Status != int32(daos.Success) { -// errMsg = daos.Status(drainResp.Status).Error() -// } -// -// svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", -// drainResp, drainReq) -// -// addRankResult(drainResp.Status, drained, failed) -// } -// -// resp.Results = append(resp.Results, osaResultsFromRanks(id, drained, failed)) -// } - -//// Systemeint marks specified ranks on all pools in to drain state. -//func (svc *mgmtSvc) SystemReint(ctx context.Context, req *mgmtpb.SystemReintReq) (*mgmtpb.SystemReintResp, error) { -// if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { -// return nil, err -// } -// -// if req.Hosts == "" && req.Ranks == "" { -// return nil, errors.New("no hosts or ranks specified") -// } -// -// hitRanks, missRanks, missHosts, err := svc.resolveRanks(req.Hosts, req.Ranks) -// if err != nil { -// return nil, err -// } -// -// if missHosts.Count() > 0 { -// return nil, errors.Errorf("invalid host(s): %s", missHosts.String()) -// } -// if missRanks.Count() > 0 { -// return nil, errors.Errorf("invalid rank(s): %s", missRanks.String()) -// } -// if hitRanks.Count() == 0 { -// return nil, errors.New("no ranks to drain") -// } -// -// // Reint rank on each pool it belongs to. -// -// psList, err := svc.sysdb.PoolServiceList(false) -// if err != nil { -// return nil, err -// } -// -// ranksMap := make(map[ranklist.Rank]struct{}) -// for _, r := range hitRanks.Ranks() { -// ranksMap[r] = struct{}{} -// } -// -// poolRanks := make(map[string]*ranklist.RankSet) -// poolIDs := []string{} // Label or UUID. -// for _, ps := range psList { -// currentRanks := ps.Storage.CurrentRanks() -// -// // Label preferred over UUID. -// poolID := ps.PoolLabel -// if poolID == "" { -// poolID = ps.PoolUUID.String() -// } -// -// svc.log.Tracef("pool-service detected: id %s, ranks %v", poolID, currentRanks) -// -// for _, r := range currentRanks { -// if _, exists := ranksMap[r]; !exists { -// continue -// } -// if _, exists := poolRanks[poolID]; !exists { -// poolRanks[poolID] = ranklist.MustCreateRankSet("") -// poolIDs = append(poolIDs, poolID) -// } -// poolRanks[poolID].Add(r) -// } -// } -// svc.log.Debugf("pool-ranks to drain: %v", poolRanks) -// -// sort.Strings(poolIDs) -// -// resp := new(mgmtpb.SystemReintResp) -// -// for _, id := range poolIDs { -// rs := poolRanks[id] -// if rs.Count() == 0 { -// continue -// } -// drained := ranklist.MustCreateRankSet("") -// failed := make(map[string]*ranklist.RankSet) -// -// // TODO DAOS-6611: Reint multiple pool-ranks per call when drpc.MethodPoolReint API -// // supports it. -// for _, r := range rs.Ranks() { -// drainReq := &mgmtpb.PoolReintReq{ -// Sys: req.Sys, -// Rank: r.Uint32(), -// Id: id, -// } -// drainResp := &mgmtpb.PoolReintResp{} -// -// errMsg, err := osaCall(ctx, drpc.MethodPoolReint, drainReq, drainResp) -// if err != nil { -// return nil, err -// } -// -// svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", -// drainResp, drainReq) -// -// // Each rank-drain failure message will produce a single result. -// if drainResp.Status != 0 { -// if _, exists := failed[errMsg]; !exists { -// failed[errMsg] = ranklist.MustCreateRankSet("") -// } -// failed[errMsg].Add(r) -// } else { -// drained.Add(ranklist.Rank(drainReq.Rank)) -// } -// } -// -// // Single result generated for all ranks drained successfully. -// if drained.Count() > 0 { -// resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ -// PoolId: id, -// Ranks: drained.String(), -// }) -// } -// -// var msgs []string -// for msg := range failed { -// msgs = append(msgs, msg) -// } -// sort.Strings(msgs) -// -// // Result generated for each failure message rank-group. -// for _, msg := range msgs { -// resp.Results = append(resp.Results, &mgmtpb.SystemOsaResult{ -// // Status already included in error message. -// Status: -1, -// Msg: msg, -// PoolId: id, -// Ranks: failed[msg].String(), -// }) -// } -// } -// -// return resp, nil -//} +// Reint rank on a pool by calling over dRPC. +func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string, error) { + var errMsg string + reintReq := &mgmtpb.PoolReintReq{ + Sys: sys, + Rank: rank.Uint32(), + Id: id, + } + reintResp := &mgmtpb.PoolReintResp{} + + drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReint, reintReq) + if err != nil { + return 0, "", err + } + + if err := svc.unmarshalPB(drpcResp.Body, reintResp); err != nil { + reintResp.Status = int32(daos.MiscError) + errMsg = err.Error() + } else if reintResp.Status != int32(daos.Success) { + errMsg = daos.Status(reintResp.Status).Error() + } + + svc.log.Tracef("pool-reint triggered from system-reint: %+v (req: %+v)", + reintResp, reintReq) + + return reintResp.Status, errMsg, 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 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(req.Hosts, req.Ranks) + if err != nil { + return nil, err + } + + // Retrieve rank-to-pool mappings. + poolIDs, poolRanks, err := svc.getPoolsRanks(hitRanks) + if err != nil { + return nil, err + } + + // Generate results from dRPC calls. + results, err := svc.getOsaResults(ctx, req.Sys, poolIDs, poolRanks, reintPoolRank) + if err != nil { + return nil, err + } + + return &mgmtpb.SystemReintResp{ + Results: results, + }, nil +} // ClusterEvent management service gRPC handler receives ClusterEvent requests // from control-plane instances attempting to notify the MS of a cluster event diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 405b48c275f..136371fabdb 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -2073,6 +2073,249 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { } } +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 request"), + }, + "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", + Ranks: "0,1", + }, + 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", + }, + expErr: errors.New("not responding on dRPC"), + }, + "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), + }, + expResp: &mgmtpb.SystemReintResp{ + Results: []*mgmtpb.SystemOsaResult{ + {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{ + // 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", + }, + 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), + }, + expResp: &mgmtpb.SystemReintResp{ + Results: []*mgmtpb.SystemOsaResult{ + {PoolId: "00000001", Ranks: "0-3"}, + {PoolId: "00000002", Ranks: "1-3"}, + }, + }, + }, + "matching ranks; variable states; drpc fails": { + members: system.Members{ + mockMember(t, 2, 0, "errored"), + mockMember(t, 1, 0, "excluded"), + }, + req: &mgmtpb.SystemReintReq{Ranks: "1-2"}, + 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), + }, + expResp: &mgmtpb.SystemReintResp{ + Results: []*mgmtpb.SystemOsaResult{ + { + PoolId: test.MockUUID(1), + Ranks: "1-2", + Status: -1025, + Msg: "DER_UNKNOWN(-1): Unknown error code -1", + }, + { + PoolId: test.MockUUID(2), + Ranks: "1-2", + Status: -1025, + Msg: "DER_UNKNOWN(-1): Unknown error code -1", + }, + }, + }, + }, + } { + 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.SystemReint(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{}), + } + 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.PoolReintReq) + err := proto.Unmarshal(gotDrpcCalls[i].Body, gotReq) + if err != nil { + t.Fatal(err) + } + opt := cmpopts.IgnoreUnexported(mgmtpb.PoolReintReq{}) + diff := cmp.Diff(tc.expDrpcReqs[i], gotReq, opt) + if diff != "" { + t.Fatalf("want-, got+:\n%s", diff) + } + } + }) + } +} + func TestServer_MgmtSvc_SystemErase(t *testing.T) { hr := func(a int32, rrs ...*sharedpb.RankResult) *control.HostResponse { return &control.HostResponse{ From d96bbfd2e60964218b6c95da33f523218e359fbe Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 10 Dec 2024 23:48:16 +0000 Subject: [PATCH 08/19] refactor to reduce repetition Features: control Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/server/mgmt_system.go | 201 +++++++++++-------------- src/control/server/mgmt_system_test.go | 4 +- 2 files changed, 94 insertions(+), 111 deletions(-) diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index c56dfedec7c..0909267919e 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -23,6 +23,7 @@ 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" @@ -1095,6 +1096,51 @@ func (svc *mgmtSvc) refuseMissingRanks(hosts, ranks string) (*ranklist.RankSet, return hitRanks, nil } +// 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. +func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksMap, error) { + poolRanks := make(poolRanksMap) + poolIDs := []string{} // Label or UUID. + + psList, err := svc.sysdb.PoolServiceList(false) + if err != nil { + return nil, nil, err + } + + ranksMap := make(map[ranklist.Rank]struct{}) + for _, r := range ranks.Ranks() { + ranksMap[r] = struct{}{} + } + + for _, ps := range psList { + currentRanks := ps.Storage.CurrentRanks() + + // Label preferred over UUID. + poolID := ps.PoolLabel + if poolID == "" { + poolID = ps.PoolUUID.String() + } + + svc.log.Tracef("pool-service detected: id %s, ranks %v", poolID, currentRanks) + + for _, r := range currentRanks { + if _, exists := ranksMap[r]; !exists { + continue + } + if _, exists := poolRanks[poolID]; !exists { + poolRanks[poolID] = ranklist.MustCreateRankSet("") + poolIDs = append(poolIDs, poolID) + } + poolRanks[poolID].Add(r) + } + } + svc.log.Debugf("pool-ranks to operate on: %v", poolRanks) + + sort.Strings(poolIDs) + + return poolIDs, poolRanks, nil +} + func osaResultsFromRanks(id string, succeeded *ranklist.RankSet, failed poolRanksMap) []*mgmtpb.SystemOsaResult { results := []*mgmtpb.SystemOsaResult{} @@ -1128,7 +1174,7 @@ 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, error) +type osaPoolRankOpSig func(*mgmtSvc, context.Context, string, string, ranklist.Rank) (int32, string) // 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) { @@ -1142,16 +1188,15 @@ func (svc *mgmtSvc) getOsaResults(ctx context.Context, sys string, poolIDs []str succeeded := ranklist.MustCreateRankSet("") failed := make(poolRanksMap) - // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API - // supports it. + 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, err := drpcCall(svc, ctx, sys, id, r) - if err != nil { - return nil, err - } + status, errMsg := drpcCall(svc, ctx, sys, id, r) // Each rank-drain failure message will produce a single result. - if status != 0 { + if status != int32(daos.Success) { if _, exists := failed[errMsg]; !exists { failed[errMsg] = ranklist.MustCreateRankSet("") } @@ -1167,87 +1212,57 @@ func (svc *mgmtSvc) getOsaResults(ctx context.Context, sys string, poolIDs []str return results, nil } -// 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. -func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksMap, error) { - poolRanks := make(poolRanksMap) - poolIDs := []string{} // Label or UUID. - - psList, err := svc.sysdb.PoolServiceList(false) - if err != nil { - return nil, nil, err +// 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) { + pbReq := &mgmtpb.PoolDrainReq{ + Sys: sys, + Rank: rank.Uint32(), + Id: id, } - ranksMap := make(map[ranklist.Rank]struct{}) - for _, r := range ranks.Ranks() { - ranksMap[r] = struct{}{} + pbResp, err := svc.PoolDrain(ctx, pbReq) + if err != nil { + return int32(daos.MiscError), err.Error() } - - for _, ps := range psList { - currentRanks := ps.Storage.CurrentRanks() - - // Label preferred over UUID. - poolID := ps.PoolLabel - if poolID == "" { - poolID = ps.PoolUUID.String() - } - - svc.log.Tracef("pool-service detected: id %s, ranks %v", poolID, currentRanks) - - for _, r := range currentRanks { - if _, exists := ranksMap[r]; !exists { - continue - } - if _, exists := poolRanks[poolID]; !exists { - poolRanks[poolID] = ranklist.MustCreateRankSet("") - poolIDs = append(poolIDs, poolID) - } - poolRanks[poolID].Add(r) - } + if pbResp.Status != int32(daos.Success) { + return pbResp.Status, daos.Status(pbResp.Status).Error() } - svc.log.Debugf("pool-ranks to operate on: %v", poolRanks) - sort.Strings(poolIDs) + svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", pbResp, pbReq) - return poolIDs, poolRanks, nil + return int32(daos.Success), "" } -// Drain rank on a pool by calling over dRPC. -func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string, error) { - var errMsg string - drainReq := &mgmtpb.PoolDrainReq{ +// 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) { + pbReq := &mgmtpb.PoolReintReq{ Sys: sys, Rank: rank.Uint32(), Id: id, } - drainResp := &mgmtpb.PoolDrainResp{} - drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, drainReq) + pbResp, err := svc.PoolReint(ctx, pbReq) if err != nil { - return 0, "", err + return int32(daos.MiscError), err.Error() } - - if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { - drainResp.Status = int32(daos.MiscError) - errMsg = err.Error() - } else if drainResp.Status != int32(daos.Success) { - errMsg = daos.Status(drainResp.Status).Error() + if pbResp.Status != int32(daos.Success) { + return pbResp.Status, daos.Status(pbResp.Status).Error() } - svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", - drainResp, drainReq) + svc.log.Tracef("pool-reint triggered from system-reint: %+v (req: %+v)", pbResp, pbReq) - return drainResp.Status, errMsg, nil + return int32(daos.Success), "" } -// 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) { +// 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) { 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(req.Hosts, req.Ranks) + hitRanks, err := svc.refuseMissingRanks(hosts, ranks) if err != nil { return nil, err } @@ -1259,64 +1274,32 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) } // Generate results from dRPC calls. - results, err := svc.getOsaResults(ctx, req.Sys, poolIDs, poolRanks, drainPoolRank) - if err != nil { - return nil, err - } - - return &mgmtpb.SystemDrainResp{ - Results: results, - }, nil + return svc.getOsaResults(ctx, sys, poolIDs, poolRanks, opCall) } -// Reint rank on a pool by calling over dRPC. -func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string, error) { - var errMsg string - reintReq := &mgmtpb.PoolReintReq{ - Sys: sys, - Rank: rank.Uint32(), - Id: id, +// 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) } - reintResp := &mgmtpb.PoolReintResp{} - drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReint, reintReq) + results, err := svc.doSysOsaOp(ctx, req, req.Hosts, req.Ranks, req.Sys, drainPoolRank) if err != nil { - return 0, "", err - } - - if err := svc.unmarshalPB(drpcResp.Body, reintResp); err != nil { - reintResp.Status = int32(daos.MiscError) - errMsg = err.Error() - } else if reintResp.Status != int32(daos.Success) { - errMsg = daos.Status(reintResp.Status).Error() + return nil, err } - svc.log.Tracef("pool-reint triggered from system-reint: %+v (req: %+v)", - reintResp, reintReq) - - return reintResp.Status, errMsg, nil + 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 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(req.Hosts, req.Ranks) - if err != nil { - return nil, err + if req == nil { + return nil, errors.Errorf("nil %T", req) } - // Retrieve rank-to-pool mappings. - poolIDs, poolRanks, err := svc.getPoolsRanks(hitRanks) - if err != nil { - return nil, err - } - - // Generate results from dRPC calls. - results, err := svc.getOsaResults(ctx, req.Sys, poolIDs, poolRanks, reintPoolRank) + results, err := svc.doSysOsaOp(ctx, req, req.Hosts, req.Ranks, req.Sys, drainPoolRank) if err != nil { return nil, err } diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 136371fabdb..d103c965ad3 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1853,7 +1853,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { }{ "nil req": { req: (*mgmtpb.SystemDrainReq)(nil), - expErr: errors.New("nil request"), + expErr: errors.New("nil *mgmt.SystemDrainReq"), }, "not system leader": { req: &mgmtpb.SystemDrainReq{ @@ -2096,7 +2096,7 @@ func TestServer_MgmtSvc_SystemReint(t *testing.T) { }{ "nil req": { req: (*mgmtpb.SystemReintReq)(nil), - expErr: errors.New("nil request"), + expErr: errors.New("nil *mgmt.SystemReintReq"), }, "not system leader": { req: &mgmtpb.SystemReintReq{ From b6a73b2c417aa28e6d33c427f9345c405abaf872 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Thu, 12 Dec 2024 00:21:33 +0000 Subject: [PATCH 09/19] refactor to reduce repetition Features: control Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/lib/control/system.go | 1 - src/control/server/mgmt_system.go | 201 +++++++++++-------------- src/control/server/mgmt_system_test.go | 38 ++++- 3 files changed, 126 insertions(+), 114 deletions(-) diff --git a/src/control/lib/control/system.go b/src/control/lib/control/system.go index 218c1a18f1a..126256214e9 100644 --- a/src/control/lib/control/system.go +++ b/src/control/lib/control/system.go @@ -589,7 +589,6 @@ type SystemDrainResp struct { Results []*SystemOsaResult `json:"results"` } -// TODO: implement on the results type // Errors returns a single error combining all error messages associated with a system drain // response. Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be // populated in SystemDrainResp. diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index c56dfedec7c..0909267919e 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -23,6 +23,7 @@ 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" @@ -1095,6 +1096,51 @@ func (svc *mgmtSvc) refuseMissingRanks(hosts, ranks string) (*ranklist.RankSet, return hitRanks, nil } +// 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. +func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksMap, error) { + poolRanks := make(poolRanksMap) + poolIDs := []string{} // Label or UUID. + + psList, err := svc.sysdb.PoolServiceList(false) + if err != nil { + return nil, nil, err + } + + ranksMap := make(map[ranklist.Rank]struct{}) + for _, r := range ranks.Ranks() { + ranksMap[r] = struct{}{} + } + + for _, ps := range psList { + currentRanks := ps.Storage.CurrentRanks() + + // Label preferred over UUID. + poolID := ps.PoolLabel + if poolID == "" { + poolID = ps.PoolUUID.String() + } + + svc.log.Tracef("pool-service detected: id %s, ranks %v", poolID, currentRanks) + + for _, r := range currentRanks { + if _, exists := ranksMap[r]; !exists { + continue + } + if _, exists := poolRanks[poolID]; !exists { + poolRanks[poolID] = ranklist.MustCreateRankSet("") + poolIDs = append(poolIDs, poolID) + } + poolRanks[poolID].Add(r) + } + } + svc.log.Debugf("pool-ranks to operate on: %v", poolRanks) + + sort.Strings(poolIDs) + + return poolIDs, poolRanks, nil +} + func osaResultsFromRanks(id string, succeeded *ranklist.RankSet, failed poolRanksMap) []*mgmtpb.SystemOsaResult { results := []*mgmtpb.SystemOsaResult{} @@ -1128,7 +1174,7 @@ 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, error) +type osaPoolRankOpSig func(*mgmtSvc, context.Context, string, string, ranklist.Rank) (int32, string) // 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) { @@ -1142,16 +1188,15 @@ func (svc *mgmtSvc) getOsaResults(ctx context.Context, sys string, poolIDs []str succeeded := ranklist.MustCreateRankSet("") failed := make(poolRanksMap) - // TODO DAOS-6611: Drain multiple pool-ranks per call when drpc.MethodPoolDrain API - // supports it. + 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, err := drpcCall(svc, ctx, sys, id, r) - if err != nil { - return nil, err - } + status, errMsg := drpcCall(svc, ctx, sys, id, r) // Each rank-drain failure message will produce a single result. - if status != 0 { + if status != int32(daos.Success) { if _, exists := failed[errMsg]; !exists { failed[errMsg] = ranklist.MustCreateRankSet("") } @@ -1167,87 +1212,57 @@ func (svc *mgmtSvc) getOsaResults(ctx context.Context, sys string, poolIDs []str return results, nil } -// 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. -func (svc *mgmtSvc) getPoolsRanks(ranks *ranklist.RankSet) ([]string, poolRanksMap, error) { - poolRanks := make(poolRanksMap) - poolIDs := []string{} // Label or UUID. - - psList, err := svc.sysdb.PoolServiceList(false) - if err != nil { - return nil, nil, err +// 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) { + pbReq := &mgmtpb.PoolDrainReq{ + Sys: sys, + Rank: rank.Uint32(), + Id: id, } - ranksMap := make(map[ranklist.Rank]struct{}) - for _, r := range ranks.Ranks() { - ranksMap[r] = struct{}{} + pbResp, err := svc.PoolDrain(ctx, pbReq) + if err != nil { + return int32(daos.MiscError), err.Error() } - - for _, ps := range psList { - currentRanks := ps.Storage.CurrentRanks() - - // Label preferred over UUID. - poolID := ps.PoolLabel - if poolID == "" { - poolID = ps.PoolUUID.String() - } - - svc.log.Tracef("pool-service detected: id %s, ranks %v", poolID, currentRanks) - - for _, r := range currentRanks { - if _, exists := ranksMap[r]; !exists { - continue - } - if _, exists := poolRanks[poolID]; !exists { - poolRanks[poolID] = ranklist.MustCreateRankSet("") - poolIDs = append(poolIDs, poolID) - } - poolRanks[poolID].Add(r) - } + if pbResp.Status != int32(daos.Success) { + return pbResp.Status, daos.Status(pbResp.Status).Error() } - svc.log.Debugf("pool-ranks to operate on: %v", poolRanks) - sort.Strings(poolIDs) + svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", pbResp, pbReq) - return poolIDs, poolRanks, nil + return int32(daos.Success), "" } -// Drain rank on a pool by calling over dRPC. -func drainPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string, error) { - var errMsg string - drainReq := &mgmtpb.PoolDrainReq{ +// 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) { + pbReq := &mgmtpb.PoolReintReq{ Sys: sys, Rank: rank.Uint32(), Id: id, } - drainResp := &mgmtpb.PoolDrainResp{} - drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolDrain, drainReq) + pbResp, err := svc.PoolReint(ctx, pbReq) if err != nil { - return 0, "", err + return int32(daos.MiscError), err.Error() } - - if err := svc.unmarshalPB(drpcResp.Body, drainResp); err != nil { - drainResp.Status = int32(daos.MiscError) - errMsg = err.Error() - } else if drainResp.Status != int32(daos.Success) { - errMsg = daos.Status(drainResp.Status).Error() + if pbResp.Status != int32(daos.Success) { + return pbResp.Status, daos.Status(pbResp.Status).Error() } - svc.log.Tracef("pool-drain triggered from system-drain: %+v (req: %+v)", - drainResp, drainReq) + svc.log.Tracef("pool-reint triggered from system-reint: %+v (req: %+v)", pbResp, pbReq) - return drainResp.Status, errMsg, nil + return int32(daos.Success), "" } -// 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) { +// 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) { 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(req.Hosts, req.Ranks) + hitRanks, err := svc.refuseMissingRanks(hosts, ranks) if err != nil { return nil, err } @@ -1259,64 +1274,32 @@ func (svc *mgmtSvc) SystemDrain(ctx context.Context, req *mgmtpb.SystemDrainReq) } // Generate results from dRPC calls. - results, err := svc.getOsaResults(ctx, req.Sys, poolIDs, poolRanks, drainPoolRank) - if err != nil { - return nil, err - } - - return &mgmtpb.SystemDrainResp{ - Results: results, - }, nil + return svc.getOsaResults(ctx, sys, poolIDs, poolRanks, opCall) } -// Reint rank on a pool by calling over dRPC. -func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank ranklist.Rank) (int32, string, error) { - var errMsg string - reintReq := &mgmtpb.PoolReintReq{ - Sys: sys, - Rank: rank.Uint32(), - Id: id, +// 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) } - reintResp := &mgmtpb.PoolReintResp{} - drpcResp, err := svc.makeLockedPoolServiceCall(ctx, drpc.MethodPoolReint, reintReq) + results, err := svc.doSysOsaOp(ctx, req, req.Hosts, req.Ranks, req.Sys, drainPoolRank) if err != nil { - return 0, "", err - } - - if err := svc.unmarshalPB(drpcResp.Body, reintResp); err != nil { - reintResp.Status = int32(daos.MiscError) - errMsg = err.Error() - } else if reintResp.Status != int32(daos.Success) { - errMsg = daos.Status(reintResp.Status).Error() + return nil, err } - svc.log.Tracef("pool-reint triggered from system-reint: %+v (req: %+v)", - reintResp, reintReq) - - return reintResp.Status, errMsg, nil + 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 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(req.Hosts, req.Ranks) - if err != nil { - return nil, err + if req == nil { + return nil, errors.Errorf("nil %T", req) } - // Retrieve rank-to-pool mappings. - poolIDs, poolRanks, err := svc.getPoolsRanks(hitRanks) - if err != nil { - return nil, err - } - - // Generate results from dRPC calls. - results, err := svc.getOsaResults(ctx, req.Sys, poolIDs, poolRanks, reintPoolRank) + results, err := svc.doSysOsaOp(ctx, req, req.Hosts, req.Ranks, req.Sys, drainPoolRank) if err != nil { return nil, err } diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 136371fabdb..bbd84c5fe78 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1853,7 +1853,7 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { }{ "nil req": { req: (*mgmtpb.SystemDrainReq)(nil), - expErr: errors.New("nil request"), + expErr: errors.New("nil *mgmt.SystemDrainReq"), }, "not system leader": { req: &mgmtpb.SystemDrainReq{ @@ -1895,7 +1895,22 @@ func TestServer_MgmtSvc_SystemDrain(t *testing.T) { test.MockUUID(1): "0-4", test.MockUUID(2): "1-7", }, - expErr: errors.New("not responding on dRPC"), + expResp: &mgmtpb.SystemDrainResp{ + 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.SystemDrainReq{Ranks: "0,1"}, @@ -2096,7 +2111,7 @@ func TestServer_MgmtSvc_SystemReint(t *testing.T) { }{ "nil req": { req: (*mgmtpb.SystemReintReq)(nil), - expErr: errors.New("nil request"), + expErr: errors.New("nil *mgmt.SystemReintReq"), }, "not system leader": { req: &mgmtpb.SystemReintReq{ @@ -2138,7 +2153,22 @@ func TestServer_MgmtSvc_SystemReint(t *testing.T) { test.MockUUID(1): "0-4", test.MockUUID(2): "1-7", }, - expErr: errors.New("not responding on dRPC"), + 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"}, From c3e19e5683fd3a228f83bd7ba8151e7d55a42166 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Mon, 16 Dec 2024 13:30:45 +0000 Subject: [PATCH 10/19] resolve merge conference Features: pool Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/common/proto/mgmt/pool.pb.go | 3757 ++++++++++++++++++++++ 1 file changed, 3757 insertions(+) create mode 100644 src/control/common/proto/mgmt/pool.pb.go diff --git a/src/control/common/proto/mgmt/pool.pb.go b/src/control/common/proto/mgmt/pool.pb.go new file mode 100644 index 00000000000..8f87cd65930 --- /dev/null +++ b/src/control/common/proto/mgmt/pool.pb.go @@ -0,0 +1,3757 @@ +// +// (C) Copyright 2019-2024 Intel Corporation. +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.5.0 +// source: mgmt/pool.proto + +package mgmt + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type StorageMediaType int32 + +const ( + StorageMediaType_SCM StorageMediaType = 0 + StorageMediaType_NVME StorageMediaType = 1 +) + +// Enum value maps for StorageMediaType. +var ( + StorageMediaType_name = map[int32]string{ + 0: "SCM", + 1: "NVME", + } + StorageMediaType_value = map[string]int32{ + "SCM": 0, + "NVME": 1, + } +) + +func (x StorageMediaType) Enum() *StorageMediaType { + p := new(StorageMediaType) + *p = x + return p +} + +func (x StorageMediaType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StorageMediaType) Descriptor() protoreflect.EnumDescriptor { + return file_mgmt_pool_proto_enumTypes[0].Descriptor() +} + +func (StorageMediaType) Type() protoreflect.EnumType { + return &file_mgmt_pool_proto_enumTypes[0] +} + +func (x StorageMediaType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StorageMediaType.Descriptor instead. +func (StorageMediaType) EnumDescriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{0} +} + +type PoolServiceState int32 + +const ( + PoolServiceState_Creating PoolServiceState = 0 // pool service is being created + PoolServiceState_Ready PoolServiceState = 1 // pool service is ready to be used + PoolServiceState_Destroying PoolServiceState = 2 // pool service is being destroyed + PoolServiceState_Degraded PoolServiceState = 3 // pool service is degraded + PoolServiceState_Unknown PoolServiceState = 4 // pool service is Unknown state +) + +// Enum value maps for PoolServiceState. +var ( + PoolServiceState_name = map[int32]string{ + 0: "Creating", + 1: "Ready", + 2: "Destroying", + 3: "Degraded", + 4: "Unknown", + } + PoolServiceState_value = map[string]int32{ + "Creating": 0, + "Ready": 1, + "Destroying": 2, + "Degraded": 3, + "Unknown": 4, + } +) + +func (x PoolServiceState) Enum() *PoolServiceState { + p := new(PoolServiceState) + *p = x + return p +} + +func (x PoolServiceState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PoolServiceState) Descriptor() protoreflect.EnumDescriptor { + return file_mgmt_pool_proto_enumTypes[1].Descriptor() +} + +func (PoolServiceState) Type() protoreflect.EnumType { + return &file_mgmt_pool_proto_enumTypes[1] +} + +func (x PoolServiceState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PoolServiceState.Descriptor instead. +func (PoolServiceState) EnumDescriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{1} +} + +type PoolRebuildStatus_State int32 + +const ( + PoolRebuildStatus_IDLE PoolRebuildStatus_State = 0 + PoolRebuildStatus_DONE PoolRebuildStatus_State = 1 + PoolRebuildStatus_BUSY PoolRebuildStatus_State = 2 +) + +// Enum value maps for PoolRebuildStatus_State. +var ( + PoolRebuildStatus_State_name = map[int32]string{ + 0: "IDLE", + 1: "DONE", + 2: "BUSY", + } + PoolRebuildStatus_State_value = map[string]int32{ + "IDLE": 0, + "DONE": 1, + "BUSY": 2, + } +) + +func (x PoolRebuildStatus_State) Enum() *PoolRebuildStatus_State { + p := new(PoolRebuildStatus_State) + *p = x + return p +} + +func (x PoolRebuildStatus_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PoolRebuildStatus_State) Descriptor() protoreflect.EnumDescriptor { + return file_mgmt_pool_proto_enumTypes[2].Descriptor() +} + +func (PoolRebuildStatus_State) Type() protoreflect.EnumType { + return &file_mgmt_pool_proto_enumTypes[2] +} + +func (x PoolRebuildStatus_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PoolRebuildStatus_State.Descriptor instead. +func (PoolRebuildStatus_State) EnumDescriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{20, 0} +} + +type PoolQueryTargetInfo_TargetType int32 + +const ( + PoolQueryTargetInfo_UNKNOWN PoolQueryTargetInfo_TargetType = 0 + PoolQueryTargetInfo_HDD PoolQueryTargetInfo_TargetType = 1 // Rotating disk + PoolQueryTargetInfo_SSD PoolQueryTargetInfo_TargetType = 2 // Flash-based + PoolQueryTargetInfo_PM PoolQueryTargetInfo_TargetType = 3 // Persistent memory + PoolQueryTargetInfo_VM PoolQueryTargetInfo_TargetType = 4 // Volatile memory +) + +// Enum value maps for PoolQueryTargetInfo_TargetType. +var ( + PoolQueryTargetInfo_TargetType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "HDD", + 2: "SSD", + 3: "PM", + 4: "VM", + } + PoolQueryTargetInfo_TargetType_value = map[string]int32{ + "UNKNOWN": 0, + "HDD": 1, + "SSD": 2, + "PM": 3, + "VM": 4, + } +) + +func (x PoolQueryTargetInfo_TargetType) Enum() *PoolQueryTargetInfo_TargetType { + p := new(PoolQueryTargetInfo_TargetType) + *p = x + return p +} + +func (x PoolQueryTargetInfo_TargetType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PoolQueryTargetInfo_TargetType) Descriptor() protoreflect.EnumDescriptor { + return file_mgmt_pool_proto_enumTypes[3].Descriptor() +} + +func (PoolQueryTargetInfo_TargetType) Type() protoreflect.EnumType { + return &file_mgmt_pool_proto_enumTypes[3] +} + +func (x PoolQueryTargetInfo_TargetType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PoolQueryTargetInfo_TargetType.Descriptor instead. +func (PoolQueryTargetInfo_TargetType) EnumDescriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{31, 0} +} + +type PoolQueryTargetInfo_TargetState int32 + +const ( + PoolQueryTargetInfo_STATE_UNKNOWN PoolQueryTargetInfo_TargetState = 0 + PoolQueryTargetInfo_DOWN_OUT PoolQueryTargetInfo_TargetState = 1 // Not available + PoolQueryTargetInfo_DOWN PoolQueryTargetInfo_TargetState = 2 // Not available, may need rebuild + PoolQueryTargetInfo_UP PoolQueryTargetInfo_TargetState = 3 // Up + PoolQueryTargetInfo_UP_IN PoolQueryTargetInfo_TargetState = 4 // Up and running + PoolQueryTargetInfo_NEW PoolQueryTargetInfo_TargetState = 5 // Intermediate state for pool map change + PoolQueryTargetInfo_DRAIN PoolQueryTargetInfo_TargetState = 6 // Being drained +) + +// Enum value maps for PoolQueryTargetInfo_TargetState. +var ( + PoolQueryTargetInfo_TargetState_name = map[int32]string{ + 0: "STATE_UNKNOWN", + 1: "DOWN_OUT", + 2: "DOWN", + 3: "UP", + 4: "UP_IN", + 5: "NEW", + 6: "DRAIN", + } + PoolQueryTargetInfo_TargetState_value = map[string]int32{ + "STATE_UNKNOWN": 0, + "DOWN_OUT": 1, + "DOWN": 2, + "UP": 3, + "UP_IN": 4, + "NEW": 5, + "DRAIN": 6, + } +) + +func (x PoolQueryTargetInfo_TargetState) Enum() *PoolQueryTargetInfo_TargetState { + p := new(PoolQueryTargetInfo_TargetState) + *p = x + return p +} + +func (x PoolQueryTargetInfo_TargetState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PoolQueryTargetInfo_TargetState) Descriptor() protoreflect.EnumDescriptor { + return file_mgmt_pool_proto_enumTypes[4].Descriptor() +} + +func (PoolQueryTargetInfo_TargetState) Type() protoreflect.EnumType { + return &file_mgmt_pool_proto_enumTypes[4] +} + +func (x PoolQueryTargetInfo_TargetState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PoolQueryTargetInfo_TargetState.Descriptor instead. +func (PoolQueryTargetInfo_TargetState) EnumDescriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{31, 1} +} + +// PoolCreateReq supplies new pool parameters. +type PoolCreateReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // UUID for new pool, generated on the client + Sys string `protobuf:"bytes,2,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` // formatted user e.g. "bob@" + UserGroup string `protobuf:"bytes,4,opt,name=user_group,json=userGroup,proto3" json:"user_group,omitempty"` // formatted group e.g. "builders@" + Acl []string `protobuf:"bytes,5,rep,name=acl,proto3" json:"acl,omitempty"` // Access Control Entries in short string format + Properties []*PoolProperty `protobuf:"bytes,6,rep,name=properties,proto3" json:"properties,omitempty"` // Pool properties to be set + // The minimal fault domain tree format consists of a set of tuples + // representing members of the tree in a breadth-first traversal order. + // Each domain above rank consists of: (level, id, num children) + // Each rank consists of: (rank number) + FaultDomains []uint32 `protobuf:"varint,7,rep,packed,name=fault_domains,json=faultDomains,proto3" json:"fault_domains,omitempty"` // Fault domain tree, minimal format + NumSvcReps uint32 `protobuf:"varint,8,opt,name=num_svc_reps,json=numSvcReps,proto3" json:"num_svc_reps,omitempty"` // desired number of pool service replicas + TotalBytes uint64 `protobuf:"varint,9,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` // Total pool size in bytes + TierRatio []float64 `protobuf:"fixed64,10,rep,packed,name=tier_ratio,json=tierRatio,proto3" json:"tier_ratio,omitempty"` // Ratio of storage tiers expressed as % of totalbytes + NumRanks uint32 `protobuf:"varint,11,opt,name=num_ranks,json=numRanks,proto3" json:"num_ranks,omitempty"` // Number of target ranks to use + Ranks []uint32 `protobuf:"varint,12,rep,packed,name=ranks,proto3" json:"ranks,omitempty"` // target ranks + TierBytes []uint64 `protobuf:"varint,13,rep,packed,name=tier_bytes,json=tierBytes,proto3" json:"tier_bytes,omitempty"` // Size in bytes of storage tier + MemRatio float32 `protobuf:"fixed32,14,opt,name=mem_ratio,json=memRatio,proto3" json:"mem_ratio,omitempty"` // Fraction of meta-blob-sz to use as mem-file-sz +} + +func (x *PoolCreateReq) Reset() { + *x = PoolCreateReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolCreateReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolCreateReq) ProtoMessage() {} + +func (x *PoolCreateReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[0] + 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 PoolCreateReq.ProtoReflect.Descriptor instead. +func (*PoolCreateReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{0} +} + +func (x *PoolCreateReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *PoolCreateReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolCreateReq) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *PoolCreateReq) GetUserGroup() string { + if x != nil { + return x.UserGroup + } + return "" +} + +func (x *PoolCreateReq) GetAcl() []string { + if x != nil { + return x.Acl + } + return nil +} + +func (x *PoolCreateReq) GetProperties() []*PoolProperty { + if x != nil { + return x.Properties + } + return nil +} + +func (x *PoolCreateReq) GetFaultDomains() []uint32 { + if x != nil { + return x.FaultDomains + } + return nil +} + +func (x *PoolCreateReq) GetNumSvcReps() uint32 { + if x != nil { + return x.NumSvcReps + } + return 0 +} + +func (x *PoolCreateReq) GetTotalBytes() uint64 { + if x != nil { + return x.TotalBytes + } + return 0 +} + +func (x *PoolCreateReq) GetTierRatio() []float64 { + if x != nil { + return x.TierRatio + } + return nil +} + +func (x *PoolCreateReq) GetNumRanks() uint32 { + if x != nil { + return x.NumRanks + } + return 0 +} + +func (x *PoolCreateReq) GetRanks() []uint32 { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *PoolCreateReq) GetTierBytes() []uint64 { + if x != nil { + return x.TierBytes + } + return nil +} + +func (x *PoolCreateReq) GetMemRatio() float32 { + if x != nil { + return x.MemRatio + } + return 0 +} + +// PoolCreateResp returns created pool uuid and ranks. +type PoolCreateResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + SvcLdr uint32 `protobuf:"varint,2,opt,name=svc_ldr,json=svcLdr,proto3" json:"svc_ldr,omitempty"` // Current service leader rank + SvcReps []uint32 `protobuf:"varint,3,rep,packed,name=svc_reps,json=svcReps,proto3" json:"svc_reps,omitempty"` // pool service replica ranks + TgtRanks []uint32 `protobuf:"varint,4,rep,packed,name=tgt_ranks,json=tgtRanks,proto3" json:"tgt_ranks,omitempty"` // pool target ranks + TierBytes []uint64 `protobuf:"varint,5,rep,packed,name=tier_bytes,json=tierBytes,proto3" json:"tier_bytes,omitempty"` // per-rank storage tier sizes allocated in pool + MemFileBytes uint64 `protobuf:"varint,6,opt,name=mem_file_bytes,json=memFileBytes,proto3" json:"mem_file_bytes,omitempty"` // per-rank accumulated value of memory file sizes +} + +func (x *PoolCreateResp) Reset() { + *x = PoolCreateResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolCreateResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolCreateResp) ProtoMessage() {} + +func (x *PoolCreateResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[1] + 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 PoolCreateResp.ProtoReflect.Descriptor instead. +func (*PoolCreateResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{1} +} + +func (x *PoolCreateResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolCreateResp) GetSvcLdr() uint32 { + if x != nil { + return x.SvcLdr + } + return 0 +} + +func (x *PoolCreateResp) GetSvcReps() []uint32 { + if x != nil { + return x.SvcReps + } + return nil +} + +func (x *PoolCreateResp) GetTgtRanks() []uint32 { + if x != nil { + return x.TgtRanks + } + return nil +} + +func (x *PoolCreateResp) GetTierBytes() []uint64 { + if x != nil { + return x.TierBytes + } + return nil +} + +func (x *PoolCreateResp) GetMemFileBytes() uint64 { + if x != nil { + return x.MemFileBytes + } + return 0 +} + +// PoolDestroyReq supplies pool identifier and force flag. +type PoolDestroyReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to destroy + Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` // destroy regardless of active connections + SvcRanks []uint32 `protobuf:"varint,4,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks + Recursive bool `protobuf:"varint,5,opt,name=recursive,proto3" json:"recursive,omitempty"` // destroy regardless of any child containers +} + +func (x *PoolDestroyReq) Reset() { + *x = PoolDestroyReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolDestroyReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolDestroyReq) ProtoMessage() {} + +func (x *PoolDestroyReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[2] + 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 PoolDestroyReq.ProtoReflect.Descriptor instead. +func (*PoolDestroyReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{2} +} + +func (x *PoolDestroyReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolDestroyReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolDestroyReq) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *PoolDestroyReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +func (x *PoolDestroyReq) GetRecursive() bool { + if x != nil { + return x.Recursive + } + return false +} + +// PoolDestroyResp returns resultant state of destroy operation. +type PoolDestroyResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code +} + +func (x *PoolDestroyResp) Reset() { + *x = PoolDestroyResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolDestroyResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolDestroyResp) ProtoMessage() {} + +func (x *PoolDestroyResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[3] + 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 PoolDestroyResp.ProtoReflect.Descriptor instead. +func (*PoolDestroyResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{3} +} + +func (x *PoolDestroyResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// PoolEvictReq supplies pool identifier. +type PoolEvictReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to evict + SvcRanks []uint32 `protobuf:"varint,3,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks + Handles []string `protobuf:"bytes,4,rep,name=handles,proto3" json:"handles,omitempty"` // Optional list of handles to evict (Mutually exclusive with destroy/force_destroy) + Destroy bool `protobuf:"varint,5,opt,name=destroy,proto3" json:"destroy,omitempty"` // If true, evict is first step of a pool destroy operation + ForceDestroy bool `protobuf:"varint,6,opt,name=force_destroy,json=forceDestroy,proto3" json:"force_destroy,omitempty"` // If true and destroy=true, forcibly closes open pool handles + Machine string `protobuf:"bytes,7,opt,name=machine,proto3" json:"machine,omitempty"` // Optional machine name to evict handles for (Mutually exclusive with handles) +} + +func (x *PoolEvictReq) Reset() { + *x = PoolEvictReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolEvictReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolEvictReq) ProtoMessage() {} + +func (x *PoolEvictReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[4] + 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 PoolEvictReq.ProtoReflect.Descriptor instead. +func (*PoolEvictReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{4} +} + +func (x *PoolEvictReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolEvictReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolEvictReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +func (x *PoolEvictReq) GetHandles() []string { + if x != nil { + return x.Handles + } + return nil +} + +func (x *PoolEvictReq) GetDestroy() bool { + if x != nil { + return x.Destroy + } + return false +} + +func (x *PoolEvictReq) GetForceDestroy() bool { + if x != nil { + return x.ForceDestroy + } + return false +} + +func (x *PoolEvictReq) GetMachine() string { + if x != nil { + return x.Machine + } + return "" +} + +// PoolEvictResp returns resultant state of evict operation. +type PoolEvictResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` // Count of handles evicted +} + +func (x *PoolEvictResp) Reset() { + *x = PoolEvictResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolEvictResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolEvictResp) ProtoMessage() {} + +func (x *PoolEvictResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[5] + 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 PoolEvictResp.ProtoReflect.Descriptor instead. +func (*PoolEvictResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{5} +} + +func (x *PoolEvictResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolEvictResp) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +// PoolExcludeReq supplies pool identifier, rank, and target_idxs. +type PoolExcludeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to exclude some targets + Rank uint32 `protobuf:"varint,3,opt,name=rank,proto3" json:"rank,omitempty"` // target to move to the down state + TargetIdx []uint32 `protobuf:"varint,4,rep,packed,name=target_idx,json=targetIdx,proto3" json:"target_idx,omitempty"` // target ranks + SvcRanks []uint32 `protobuf:"varint,5,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *PoolExcludeReq) Reset() { + *x = PoolExcludeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolExcludeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolExcludeReq) ProtoMessage() {} + +func (x *PoolExcludeReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[6] + 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 PoolExcludeReq.ProtoReflect.Descriptor instead. +func (*PoolExcludeReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{6} +} + +func (x *PoolExcludeReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolExcludeReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolExcludeReq) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *PoolExcludeReq) GetTargetIdx() []uint32 { + if x != nil { + return x.TargetIdx + } + return nil +} + +func (x *PoolExcludeReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +// PoolExcludeResp returns resultant state of Exclude operation. +type PoolExcludeResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code +} + +func (x *PoolExcludeResp) Reset() { + *x = PoolExcludeResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolExcludeResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolExcludeResp) ProtoMessage() {} + +func (x *PoolExcludeResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[7] + 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 PoolExcludeResp.ProtoReflect.Descriptor instead. +func (*PoolExcludeResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{7} +} + +func (x *PoolExcludeResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// PoolDrainReq supplies pool identifier, rank, and target_idxs. +type PoolDrainReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to drain some targets + Rank uint32 `protobuf:"varint,3,opt,name=rank,proto3" json:"rank,omitempty"` // rank to move to the down state + TargetIdx []uint32 `protobuf:"varint,4,rep,packed,name=target_idx,json=targetIdx,proto3" json:"target_idx,omitempty"` // rank targets + SvcRanks []uint32 `protobuf:"varint,5,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *PoolDrainReq) Reset() { + *x = PoolDrainReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolDrainReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolDrainReq) ProtoMessage() {} + +func (x *PoolDrainReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[8] + 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 PoolDrainReq.ProtoReflect.Descriptor instead. +func (*PoolDrainReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{8} +} + +func (x *PoolDrainReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolDrainReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolDrainReq) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *PoolDrainReq) GetTargetIdx() []uint32 { + if x != nil { + return x.TargetIdx + } + return nil +} + +func (x *PoolDrainReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +// PoolDrainResp returns resultant state of Drain operation. +type PoolDrainResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code +} + +func (x *PoolDrainResp) Reset() { + *x = PoolDrainResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolDrainResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolDrainResp) ProtoMessage() {} + +func (x *PoolDrainResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[9] + 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 PoolDrainResp.ProtoReflect.Descriptor instead. +func (*PoolDrainResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{9} +} + +func (x *PoolDrainResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// PoolExtendReq supplies pool identifier and rank list. +type PoolExtendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to add target up to + Ranks []uint32 `protobuf:"varint,3,rep,packed,name=ranks,proto3" json:"ranks,omitempty"` // ranks + SvcRanks []uint32 `protobuf:"varint,4,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks + TierBytes []uint64 `protobuf:"varint,5,rep,packed,name=tier_bytes,json=tierBytes,proto3" json:"tier_bytes,omitempty"` // Size in bytes of storage tiers + FaultDomains []uint32 `protobuf:"varint,6,rep,packed,name=fault_domains,json=faultDomains,proto3" json:"fault_domains,omitempty"` // fault domain tree, minimal format + MemRatio float32 `protobuf:"fixed32,7,opt,name=mem_ratio,json=memRatio,proto3" json:"mem_ratio,omitempty"` // Fraction of meta-blob-sz to use as mem-file-sz +} + +func (x *PoolExtendReq) Reset() { + *x = PoolExtendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolExtendReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolExtendReq) ProtoMessage() {} + +func (x *PoolExtendReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_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 PoolExtendReq.ProtoReflect.Descriptor instead. +func (*PoolExtendReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{10} +} + +func (x *PoolExtendReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolExtendReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolExtendReq) GetRanks() []uint32 { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *PoolExtendReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +func (x *PoolExtendReq) GetTierBytes() []uint64 { + if x != nil { + return x.TierBytes + } + return nil +} + +func (x *PoolExtendReq) GetFaultDomains() []uint32 { + if x != nil { + return x.FaultDomains + } + return nil +} + +func (x *PoolExtendReq) GetMemRatio() float32 { + if x != nil { + return x.MemRatio + } + return 0 +} + +// PoolExtendResp returns resultant state of Extend operation. +type PoolExtendResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + TierBytes []uint64 `protobuf:"varint,2,rep,packed,name=tier_bytes,json=tierBytes,proto3" json:"tier_bytes,omitempty"` // storage tiers allocated to pool +} + +func (x *PoolExtendResp) Reset() { + *x = PoolExtendResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolExtendResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolExtendResp) ProtoMessage() {} + +func (x *PoolExtendResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_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 PoolExtendResp.ProtoReflect.Descriptor instead. +func (*PoolExtendResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{11} +} + +func (x *PoolExtendResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolExtendResp) GetTierBytes() []uint64 { + if x != nil { + return x.TierBytes + } + return nil +} + +// PoolReintReq supplies pool identifier, rank, and target_idxs. +type PoolReintReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to add target up to + Rank uint32 `protobuf:"varint,3,opt,name=rank,proto3" json:"rank,omitempty"` // target to move to the up state + TargetIdx []uint32 `protobuf:"varint,4,rep,packed,name=target_idx,json=targetIdx,proto3" json:"target_idx,omitempty"` // target ranks + SvcRanks []uint32 `protobuf:"varint,5,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks + TierBytes []uint64 `protobuf:"varint,6,rep,packed,name=tier_bytes,json=tierBytes,proto3" json:"tier_bytes,omitempty"` // Size in bytes of storage tiers + MemRatio float32 `protobuf:"fixed32,7,opt,name=mem_ratio,json=memRatio,proto3" json:"mem_ratio,omitempty"` // Fraction of meta-blob-sz to use as mem-file-sz +} + +func (x *PoolReintReq) Reset() { + *x = PoolReintReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolReintReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolReintReq) ProtoMessage() {} + +func (x *PoolReintReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[12] + 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 PoolReintReq.ProtoReflect.Descriptor instead. +func (*PoolReintReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{12} +} + +func (x *PoolReintReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolReintReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolReintReq) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *PoolReintReq) GetTargetIdx() []uint32 { + if x != nil { + return x.TargetIdx + } + return nil +} + +func (x *PoolReintReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +func (x *PoolReintReq) GetTierBytes() []uint64 { + if x != nil { + return x.TierBytes + } + return nil +} + +func (x *PoolReintReq) GetMemRatio() float32 { + if x != nil { + return x.MemRatio + } + return 0 +} + +// PoolReintResp returns resultant state of Reintegrate operation. +type PoolReintResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code +} + +func (x *PoolReintResp) Reset() { + *x = PoolReintResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolReintResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolReintResp) ProtoMessage() {} + +func (x *PoolReintResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[13] + 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 PoolReintResp.ProtoReflect.Descriptor instead. +func (*PoolReintResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{13} +} + +func (x *PoolReintResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// ListPoolsReq represents a request to list pools on a given DAOS system. +type ListPoolsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier +} + +func (x *ListPoolsReq) Reset() { + *x = ListPoolsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPoolsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPoolsReq) ProtoMessage() {} + +func (x *ListPoolsReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[14] + 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 ListPoolsReq.ProtoReflect.Descriptor instead. +func (*ListPoolsReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{14} +} + +func (x *ListPoolsReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +// ListPoolsResp returns the list of pools in the system. +type ListPoolsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + Pools []*ListPoolsResp_Pool `protobuf:"bytes,2,rep,name=pools,proto3" json:"pools,omitempty"` // pools list + DataVersion uint64 `protobuf:"varint,3,opt,name=data_version,json=dataVersion,proto3" json:"data_version,omitempty"` // Version of the system database. +} + +func (x *ListPoolsResp) Reset() { + *x = ListPoolsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPoolsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPoolsResp) ProtoMessage() {} + +func (x *ListPoolsResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[15] + 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 ListPoolsResp.ProtoReflect.Descriptor instead. +func (*ListPoolsResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{15} +} + +func (x *ListPoolsResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ListPoolsResp) GetPools() []*ListPoolsResp_Pool { + if x != nil { + return x.Pools + } + return nil +} + +func (x *ListPoolsResp) GetDataVersion() uint64 { + if x != nil { + return x.DataVersion + } + return 0 +} + +// ListContainers +// Initial implementation differs from C API +// (numContainers not provided in request - get whole list) +type ListContReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool + SvcRanks []uint32 `protobuf:"varint,3,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *ListContReq) Reset() { + *x = ListContReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListContReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListContReq) ProtoMessage() {} + +func (x *ListContReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[16] + 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 ListContReq.ProtoReflect.Descriptor instead. +func (*ListContReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{16} +} + +func (x *ListContReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *ListContReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ListContReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +type ListContResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + Containers []*ListContResp_Cont `protobuf:"bytes,2,rep,name=containers,proto3" json:"containers,omitempty"` // containers +} + +func (x *ListContResp) Reset() { + *x = ListContResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListContResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListContResp) ProtoMessage() {} + +func (x *ListContResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[17] + 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 ListContResp.ProtoReflect.Descriptor instead. +func (*ListContResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{17} +} + +func (x *ListContResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ListContResp) GetContainers() []*ListContResp_Cont { + if x != nil { + return x.Containers + } + return nil +} + +// PoolQueryReq represents a pool query request. +type PoolQueryReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + SvcRanks []uint32 `protobuf:"varint,3,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks + QueryMask uint64 `protobuf:"varint,4,opt,name=query_mask,json=queryMask,proto3" json:"query_mask,omitempty"` // Bitmask of pool query options +} + +func (x *PoolQueryReq) Reset() { + *x = PoolQueryReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolQueryReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolQueryReq) ProtoMessage() {} + +func (x *PoolQueryReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[18] + 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 PoolQueryReq.ProtoReflect.Descriptor instead. +func (*PoolQueryReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{18} +} + +func (x *PoolQueryReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolQueryReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolQueryReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +func (x *PoolQueryReq) GetQueryMask() uint64 { + if x != nil { + return x.QueryMask + } + return 0 +} + +// StorageUsageStats represents usage statistics for a storage subsystem. +type StorageUsageStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Free uint64 `protobuf:"varint,2,opt,name=free,proto3" json:"free,omitempty"` + Min uint64 `protobuf:"varint,3,opt,name=min,proto3" json:"min,omitempty"` + Max uint64 `protobuf:"varint,4,opt,name=max,proto3" json:"max,omitempty"` + Mean uint64 `protobuf:"varint,5,opt,name=mean,proto3" json:"mean,omitempty"` + MediaType StorageMediaType `protobuf:"varint,6,opt,name=media_type,json=mediaType,proto3,enum=mgmt.StorageMediaType" json:"media_type,omitempty"` +} + +func (x *StorageUsageStats) Reset() { + *x = StorageUsageStats{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StorageUsageStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StorageUsageStats) ProtoMessage() {} + +func (x *StorageUsageStats) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[19] + 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 StorageUsageStats.ProtoReflect.Descriptor instead. +func (*StorageUsageStats) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{19} +} + +func (x *StorageUsageStats) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *StorageUsageStats) GetFree() uint64 { + if x != nil { + return x.Free + } + return 0 +} + +func (x *StorageUsageStats) GetMin() uint64 { + if x != nil { + return x.Min + } + return 0 +} + +func (x *StorageUsageStats) GetMax() uint64 { + if x != nil { + return x.Max + } + return 0 +} + +func (x *StorageUsageStats) GetMean() uint64 { + if x != nil { + return x.Mean + } + return 0 +} + +func (x *StorageUsageStats) GetMediaType() StorageMediaType { + if x != nil { + return x.MediaType + } + return StorageMediaType_SCM +} + +// PoolRebuildStatus represents a pool's rebuild status. +type PoolRebuildStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + State PoolRebuildStatus_State `protobuf:"varint,2,opt,name=state,proto3,enum=mgmt.PoolRebuildStatus_State" json:"state,omitempty"` + Objects uint64 `protobuf:"varint,3,opt,name=objects,proto3" json:"objects,omitempty"` + Records uint64 `protobuf:"varint,4,opt,name=records,proto3" json:"records,omitempty"` +} + +func (x *PoolRebuildStatus) Reset() { + *x = PoolRebuildStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolRebuildStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolRebuildStatus) ProtoMessage() {} + +func (x *PoolRebuildStatus) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[20] + 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 PoolRebuildStatus.ProtoReflect.Descriptor instead. +func (*PoolRebuildStatus) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{20} +} + +func (x *PoolRebuildStatus) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolRebuildStatus) GetState() PoolRebuildStatus_State { + if x != nil { + return x.State + } + return PoolRebuildStatus_IDLE +} + +func (x *PoolRebuildStatus) GetObjects() uint64 { + if x != nil { + return x.Objects + } + return 0 +} + +func (x *PoolRebuildStatus) GetRecords() uint64 { + if x != nil { + return x.Records + } + return 0 +} + +// PoolQueryResp represents a pool query response. +type PoolQueryResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` // pool uuid + Label string `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` // pool label + TotalTargets uint32 `protobuf:"varint,4,opt,name=total_targets,json=totalTargets,proto3" json:"total_targets,omitempty"` // total targets in pool + ActiveTargets uint32 `protobuf:"varint,5,opt,name=active_targets,json=activeTargets,proto3" json:"active_targets,omitempty"` // active targets in pool + DisabledTargets uint32 `protobuf:"varint,6,opt,name=disabled_targets,json=disabledTargets,proto3" json:"disabled_targets,omitempty"` // number of disabled targets in pool + Rebuild *PoolRebuildStatus `protobuf:"bytes,7,opt,name=rebuild,proto3" json:"rebuild,omitempty"` // pool rebuild status + TierStats []*StorageUsageStats `protobuf:"bytes,8,rep,name=tier_stats,json=tierStats,proto3" json:"tier_stats,omitempty"` // storage tiers usage stats + Version uint32 `protobuf:"varint,10,opt,name=version,proto3" json:"version,omitempty"` // latest pool map version + Leader uint32 `protobuf:"varint,11,opt,name=leader,proto3" json:"leader,omitempty"` // current raft leader (2.4) + EnabledRanks string `protobuf:"bytes,12,opt,name=enabled_ranks,json=enabledRanks,proto3" json:"enabled_ranks,omitempty"` // optional set of ranks enabled + DisabledRanks string `protobuf:"bytes,13,opt,name=disabled_ranks,json=disabledRanks,proto3" json:"disabled_ranks,omitempty"` // optional set of ranks disabled + TotalEngines uint32 `protobuf:"varint,14,opt,name=total_engines,json=totalEngines,proto3" json:"total_engines,omitempty"` // total engines in pool + PoolLayoutVer uint32 `protobuf:"varint,15,opt,name=pool_layout_ver,json=poolLayoutVer,proto3" json:"pool_layout_ver,omitempty"` // current pool global version + UpgradeLayoutVer uint32 `protobuf:"varint,16,opt,name=upgrade_layout_ver,json=upgradeLayoutVer,proto3" json:"upgrade_layout_ver,omitempty"` // latest pool global version to upgrade + State PoolServiceState `protobuf:"varint,17,opt,name=state,proto3,enum=mgmt.PoolServiceState" json:"state,omitempty"` // pool state + SvcLdr uint32 `protobuf:"varint,18,opt,name=svc_ldr,json=svcLdr,proto3" json:"svc_ldr,omitempty"` // current raft leader (2.6+) + SvcReps []uint32 `protobuf:"varint,19,rep,packed,name=svc_reps,json=svcReps,proto3" json:"svc_reps,omitempty"` // service replica ranks + QueryMask uint64 `protobuf:"varint,20,opt,name=query_mask,json=queryMask,proto3" json:"query_mask,omitempty"` // Bitmask of pool query options used + MemFileBytes uint64 `protobuf:"varint,21,opt,name=mem_file_bytes,json=memFileBytes,proto3" json:"mem_file_bytes,omitempty"` // per-pool accumulated value of memory file sizes + DeadRanks string `protobuf:"bytes,22,opt,name=dead_ranks,json=deadRanks,proto3" json:"dead_ranks,omitempty"` // optional set of dead ranks +} + +func (x *PoolQueryResp) Reset() { + *x = PoolQueryResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolQueryResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolQueryResp) ProtoMessage() {} + +func (x *PoolQueryResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[21] + 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 PoolQueryResp.ProtoReflect.Descriptor instead. +func (*PoolQueryResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{21} +} + +func (x *PoolQueryResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolQueryResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *PoolQueryResp) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *PoolQueryResp) GetTotalTargets() uint32 { + if x != nil { + return x.TotalTargets + } + return 0 +} + +func (x *PoolQueryResp) GetActiveTargets() uint32 { + if x != nil { + return x.ActiveTargets + } + return 0 +} + +func (x *PoolQueryResp) GetDisabledTargets() uint32 { + if x != nil { + return x.DisabledTargets + } + return 0 +} + +func (x *PoolQueryResp) GetRebuild() *PoolRebuildStatus { + if x != nil { + return x.Rebuild + } + return nil +} + +func (x *PoolQueryResp) GetTierStats() []*StorageUsageStats { + if x != nil { + return x.TierStats + } + return nil +} + +func (x *PoolQueryResp) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *PoolQueryResp) GetLeader() uint32 { + if x != nil { + return x.Leader + } + return 0 +} + +func (x *PoolQueryResp) GetEnabledRanks() string { + if x != nil { + return x.EnabledRanks + } + return "" +} + +func (x *PoolQueryResp) GetDisabledRanks() string { + if x != nil { + return x.DisabledRanks + } + return "" +} + +func (x *PoolQueryResp) GetTotalEngines() uint32 { + if x != nil { + return x.TotalEngines + } + return 0 +} + +func (x *PoolQueryResp) GetPoolLayoutVer() uint32 { + if x != nil { + return x.PoolLayoutVer + } + return 0 +} + +func (x *PoolQueryResp) GetUpgradeLayoutVer() uint32 { + if x != nil { + return x.UpgradeLayoutVer + } + return 0 +} + +func (x *PoolQueryResp) GetState() PoolServiceState { + if x != nil { + return x.State + } + return PoolServiceState_Creating +} + +func (x *PoolQueryResp) GetSvcLdr() uint32 { + if x != nil { + return x.SvcLdr + } + return 0 +} + +func (x *PoolQueryResp) GetSvcReps() []uint32 { + if x != nil { + return x.SvcReps + } + return nil +} + +func (x *PoolQueryResp) GetQueryMask() uint64 { + if x != nil { + return x.QueryMask + } + return 0 +} + +func (x *PoolQueryResp) GetMemFileBytes() uint64 { + if x != nil { + return x.MemFileBytes + } + return 0 +} + +func (x *PoolQueryResp) GetDeadRanks() string { + if x != nil { + return x.DeadRanks + } + return "" +} + +type PoolProperty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Number uint32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` // pool property number + // Types that are assignable to Value: + // + // *PoolProperty_Strval + // *PoolProperty_Numval + Value isPoolProperty_Value `protobuf_oneof:"value"` +} + +func (x *PoolProperty) Reset() { + *x = PoolProperty{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolProperty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolProperty) ProtoMessage() {} + +func (x *PoolProperty) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[22] + 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 PoolProperty.ProtoReflect.Descriptor instead. +func (*PoolProperty) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{22} +} + +func (x *PoolProperty) GetNumber() uint32 { + if x != nil { + return x.Number + } + return 0 +} + +func (m *PoolProperty) GetValue() isPoolProperty_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *PoolProperty) GetStrval() string { + if x, ok := x.GetValue().(*PoolProperty_Strval); ok { + return x.Strval + } + return "" +} + +func (x *PoolProperty) GetNumval() uint64 { + if x, ok := x.GetValue().(*PoolProperty_Numval); ok { + return x.Numval + } + return 0 +} + +type isPoolProperty_Value interface { + isPoolProperty_Value() +} + +type PoolProperty_Strval struct { + Strval string `protobuf:"bytes,2,opt,name=strval,proto3,oneof"` // pool property string value +} + +type PoolProperty_Numval struct { + Numval uint64 `protobuf:"varint,3,opt,name=numval,proto3,oneof"` // pool property numeric value +} + +func (*PoolProperty_Strval) isPoolProperty_Value() {} + +func (*PoolProperty_Numval) isPoolProperty_Value() {} + +// PoolSetPropReq represents a request to set pool properties. +type PoolSetPropReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to modify + Properties []*PoolProperty `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` + SvcRanks []uint32 `protobuf:"varint,4,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *PoolSetPropReq) Reset() { + *x = PoolSetPropReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolSetPropReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolSetPropReq) ProtoMessage() {} + +func (x *PoolSetPropReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[23] + 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 PoolSetPropReq.ProtoReflect.Descriptor instead. +func (*PoolSetPropReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{23} +} + +func (x *PoolSetPropReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolSetPropReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolSetPropReq) GetProperties() []*PoolProperty { + if x != nil { + return x.Properties + } + return nil +} + +func (x *PoolSetPropReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +// PoolSetPropResp represents the result of setting pool properties. +type PoolSetPropResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code +} + +func (x *PoolSetPropResp) Reset() { + *x = PoolSetPropResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolSetPropResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolSetPropResp) ProtoMessage() {} + +func (x *PoolSetPropResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[24] + 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 PoolSetPropResp.ProtoReflect.Descriptor instead. +func (*PoolSetPropResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{24} +} + +func (x *PoolSetPropResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// PoolGetPropReq represents a request to get pool properties. +type PoolGetPropReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // uuid or label of pool to query + Properties []*PoolProperty `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` + SvcRanks []uint32 `protobuf:"varint,4,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *PoolGetPropReq) Reset() { + *x = PoolGetPropReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolGetPropReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolGetPropReq) ProtoMessage() {} + +func (x *PoolGetPropReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[25] + 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 PoolGetPropReq.ProtoReflect.Descriptor instead. +func (*PoolGetPropReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{25} +} + +func (x *PoolGetPropReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolGetPropReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolGetPropReq) GetProperties() []*PoolProperty { + if x != nil { + return x.Properties + } + return nil +} + +func (x *PoolGetPropReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +// PoolGetPropResp represents the result of getting pool properties. +type PoolGetPropResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + Properties []*PoolProperty `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *PoolGetPropResp) Reset() { + *x = PoolGetPropResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolGetPropResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolGetPropResp) ProtoMessage() {} + +func (x *PoolGetPropResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[26] + 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 PoolGetPropResp.ProtoReflect.Descriptor instead. +func (*PoolGetPropResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{26} +} + +func (x *PoolGetPropResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolGetPropResp) GetProperties() []*PoolProperty { + if x != nil { + return x.Properties + } + return nil +} + +// PoolUpgradeReq upgrades the disk format of an existing pool to the +// latest version. +type PoolUpgradeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + SvcRanks []uint32 `protobuf:"varint,3,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *PoolUpgradeReq) Reset() { + *x = PoolUpgradeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolUpgradeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolUpgradeReq) ProtoMessage() {} + +func (x *PoolUpgradeReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[27] + 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 PoolUpgradeReq.ProtoReflect.Descriptor instead. +func (*PoolUpgradeReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{27} +} + +func (x *PoolUpgradeReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolUpgradeReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolUpgradeReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +// PoolUpgradeResp returns resultant state of upgrade operation. +type PoolUpgradeResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code +} + +func (x *PoolUpgradeResp) Reset() { + *x = PoolUpgradeResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolUpgradeResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolUpgradeResp) ProtoMessage() {} + +func (x *PoolUpgradeResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[28] + 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 PoolUpgradeResp.ProtoReflect.Descriptor instead. +func (*PoolUpgradeResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{28} +} + +func (x *PoolUpgradeResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// PoolQueryTargetReq represents a pool query target(s) request. +type PoolQueryTargetReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys string `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty"` // DAOS system identifier + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // Pool label or UUID + Rank uint32 `protobuf:"varint,3,opt,name=rank,proto3" json:"rank,omitempty"` // Engine rank with targets to query + Targets []uint32 `protobuf:"varint,4,rep,packed,name=targets,proto3" json:"targets,omitempty"` // indices of targets to be queried + SvcRanks []uint32 `protobuf:"varint,5,rep,packed,name=svc_ranks,json=svcRanks,proto3" json:"svc_ranks,omitempty"` // List of pool service ranks +} + +func (x *PoolQueryTargetReq) Reset() { + *x = PoolQueryTargetReq{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolQueryTargetReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolQueryTargetReq) ProtoMessage() {} + +func (x *PoolQueryTargetReq) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[29] + 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 PoolQueryTargetReq.ProtoReflect.Descriptor instead. +func (*PoolQueryTargetReq) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{29} +} + +func (x *PoolQueryTargetReq) GetSys() string { + if x != nil { + return x.Sys + } + return "" +} + +func (x *PoolQueryTargetReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PoolQueryTargetReq) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *PoolQueryTargetReq) GetTargets() []uint32 { + if x != nil { + return x.Targets + } + return nil +} + +func (x *PoolQueryTargetReq) GetSvcRanks() []uint32 { + if x != nil { + return x.SvcRanks + } + return nil +} + +// StorageTargetUsage represent's a target's capacity and usage +type StorageTargetUsage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` // total space in bytes + Free uint64 `protobuf:"varint,2,opt,name=free,proto3" json:"free,omitempty"` // free space in bytes + MediaType StorageMediaType `protobuf:"varint,3,opt,name=media_type,json=mediaType,proto3,enum=mgmt.StorageMediaType" json:"media_type,omitempty"` // see daos_media_type_t (e.g., SCM, NVME) +} + +func (x *StorageTargetUsage) Reset() { + *x = StorageTargetUsage{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StorageTargetUsage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StorageTargetUsage) ProtoMessage() {} + +func (x *StorageTargetUsage) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[30] + 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 StorageTargetUsage.ProtoReflect.Descriptor instead. +func (*StorageTargetUsage) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{30} +} + +func (x *StorageTargetUsage) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *StorageTargetUsage) GetFree() uint64 { + if x != nil { + return x.Free + } + return 0 +} + +func (x *StorageTargetUsage) GetMediaType() StorageMediaType { + if x != nil { + return x.MediaType + } + return StorageMediaType_SCM +} + +// PoolQueryTargetInfo represents pool target query info for a single target. +// The RPC response type (PoolQueryTargetResponse) contains a sequence of these. +type PoolQueryTargetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type PoolQueryTargetInfo_TargetType `protobuf:"varint,1,opt,name=type,proto3,enum=mgmt.PoolQueryTargetInfo_TargetType" json:"type,omitempty"` // Target type jsee enum daos_target_type_t + State PoolQueryTargetInfo_TargetState `protobuf:"varint,2,opt,name=state,proto3,enum=mgmt.PoolQueryTargetInfo_TargetState" json:"state,omitempty"` // target state see enum daos_target_state_t + // TODO: target performance data + Space []*StorageTargetUsage `protobuf:"bytes,3,rep,name=space,proto3" json:"space,omitempty"` // this target's usage per storage tier + MemFileBytes uint64 `protobuf:"varint,4,opt,name=mem_file_bytes,json=memFileBytes,proto3" json:"mem_file_bytes,omitempty"` // per-target value of memory file size +} + +func (x *PoolQueryTargetInfo) Reset() { + *x = PoolQueryTargetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolQueryTargetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolQueryTargetInfo) ProtoMessage() {} + +func (x *PoolQueryTargetInfo) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[31] + 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 PoolQueryTargetInfo.ProtoReflect.Descriptor instead. +func (*PoolQueryTargetInfo) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{31} +} + +func (x *PoolQueryTargetInfo) GetType() PoolQueryTargetInfo_TargetType { + if x != nil { + return x.Type + } + return PoolQueryTargetInfo_UNKNOWN +} + +func (x *PoolQueryTargetInfo) GetState() PoolQueryTargetInfo_TargetState { + if x != nil { + return x.State + } + return PoolQueryTargetInfo_STATE_UNKNOWN +} + +func (x *PoolQueryTargetInfo) GetSpace() []*StorageTargetUsage { + if x != nil { + return x.Space + } + return nil +} + +func (x *PoolQueryTargetInfo) GetMemFileBytes() uint64 { + if x != nil { + return x.MemFileBytes + } + return 0 +} + +// PoolQueryTargetResp represents a pool target query response +type PoolQueryTargetResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code + Infos []*PoolQueryTargetInfo `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"` // Per-target information +} + +func (x *PoolQueryTargetResp) Reset() { + *x = PoolQueryTargetResp{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoolQueryTargetResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoolQueryTargetResp) ProtoMessage() {} + +func (x *PoolQueryTargetResp) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[32] + 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 PoolQueryTargetResp.ProtoReflect.Descriptor instead. +func (*PoolQueryTargetResp) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{32} +} + +func (x *PoolQueryTargetResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *PoolQueryTargetResp) GetInfos() []*PoolQueryTargetInfo { + if x != nil { + return x.Infos + } + return nil +} + +type ListPoolsResp_Pool struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // uuid of pool + Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` // pool label + SvcReps []uint32 `protobuf:"varint,3,rep,packed,name=svc_reps,json=svcReps,proto3" json:"svc_reps,omitempty"` // pool service replica ranks + State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` // pool state + RebuildState string `protobuf:"bytes,5,opt,name=rebuild_state,json=rebuildState,proto3" json:"rebuild_state,omitempty"` // pool rebuild state +} + +func (x *ListPoolsResp_Pool) Reset() { + *x = ListPoolsResp_Pool{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPoolsResp_Pool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPoolsResp_Pool) ProtoMessage() {} + +func (x *ListPoolsResp_Pool) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[33] + 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 ListPoolsResp_Pool.ProtoReflect.Descriptor instead. +func (*ListPoolsResp_Pool) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{15, 0} +} + +func (x *ListPoolsResp_Pool) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *ListPoolsResp_Pool) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ListPoolsResp_Pool) GetSvcReps() []uint32 { + if x != nil { + return x.SvcReps + } + return nil +} + +func (x *ListPoolsResp_Pool) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *ListPoolsResp_Pool) GetRebuildState() string { + if x != nil { + return x.RebuildState + } + return "" +} + +type ListContResp_Cont struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // uuid of container +} + +func (x *ListContResp_Cont) Reset() { + *x = ListContResp_Cont{} + if protoimpl.UnsafeEnabled { + mi := &file_mgmt_pool_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListContResp_Cont) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListContResp_Cont) ProtoMessage() {} + +func (x *ListContResp_Cont) ProtoReflect() protoreflect.Message { + mi := &file_mgmt_pool_proto_msgTypes[34] + 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 ListContResp_Cont.ProtoReflect.Descriptor instead. +func (*ListContResp_Cont) Descriptor() ([]byte, []int) { + return file_mgmt_pool_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *ListContResp_Cont) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +var File_mgmt_pool_proto protoreflect.FileDescriptor + +var file_mgmt_pool_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x04, 0x6d, 0x67, 0x6d, 0x74, 0x22, 0xa4, 0x03, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x63, 0x6c, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0c, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, + 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x53, 0x76, 0x63, 0x52, 0x65, 0x70, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x01, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, + 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x6e, + 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0xbe, + 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x17, 0x0a, 0x07, 0x73, 0x76, 0x63, + 0x5f, 0x6c, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x76, 0x63, 0x4c, + 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x52, 0x65, 0x70, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x74, 0x67, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x08, 0x74, 0x67, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, + 0x74, 0x69, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, + 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, + 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, + 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, + 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, + 0x73, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, + 0x72, 0x73, 0x69, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 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, + 0x22, 0xc0, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, 0x63, 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, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, + 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, + 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x29, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 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, 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, + 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, + 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x27, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x22, 0xc5, + 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, + 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, + 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, + 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, + 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x47, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 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, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, + 0xbc, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x49, 0x64, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, + 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, + 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x27, + 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x22, 0x20, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x22, 0x83, 0x02, 0x0a, 0x0d, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 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, 0x2e, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, + 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, + 0x6f, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x63, + 0x5f, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, + 0x52, 0x65, 0x70, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x4c, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x7b, 0x0a, + 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 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, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x1a, 0x1a, + 0x0a, 0x04, 0x43, 0x6f, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x6c, 0x0a, 0x0c, 0x50, 0x6f, + 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, + 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x6d, 0x65, 0x61, 0x6e, + 0x12, 0x35, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x25, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, + 0x55, 0x53, 0x59, 0x10, 0x02, 0x22, 0x85, 0x06, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, + 0x65, 0x72, 0x79, 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, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x07, 0x72, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x09, 0x74, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, + 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, + 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x65, + 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x6f, 0x6c, 0x4c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x56, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x56, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x5f, 0x6c, 0x64, 0x72, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x76, 0x63, 0x4c, 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x76, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, + 0x76, 0x63, 0x52, 0x65, 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, + 0x65, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, + 0x65, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x64, 0x65, 0x61, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x63, 0x0a, + 0x0c, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x76, 0x61, 0x6c, 0x12, + 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x76, 0x61, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, + 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, + 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x29, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 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, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, + 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 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, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x4f, 0x0a, 0x0e, 0x50, 0x6f, 0x6f, 0x6c, + 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x08, 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x29, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, + 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 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, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x76, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, + 0x73, 0x76, 0x63, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x75, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x80, 0x03, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, + 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, + 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x24, + 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x0a, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x07, 0x0a, 0x03, 0x48, 0x44, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x53, 0x44, 0x10, + 0x02, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x4d, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x56, 0x4d, 0x10, + 0x04, 0x22, 0x5f, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x55, + 0x50, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x50, 0x5f, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x07, + 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x41, 0x49, 0x4e, + 0x10, 0x06, 0x22, 0x5e, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, + 0x61, 0x72, 0x67, 0x65, 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, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x2a, 0x25, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x4d, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x4e, 0x56, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x56, 0x0a, 0x10, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a, + 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x65, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x64, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, + 0x04, 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_pool_proto_rawDescOnce sync.Once + file_mgmt_pool_proto_rawDescData = file_mgmt_pool_proto_rawDesc +) + +func file_mgmt_pool_proto_rawDescGZIP() []byte { + file_mgmt_pool_proto_rawDescOnce.Do(func() { + file_mgmt_pool_proto_rawDescData = protoimpl.X.CompressGZIP(file_mgmt_pool_proto_rawDescData) + }) + return file_mgmt_pool_proto_rawDescData +} + +var file_mgmt_pool_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_mgmt_pool_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_mgmt_pool_proto_goTypes = []interface{}{ + (StorageMediaType)(0), // 0: mgmt.StorageMediaType + (PoolServiceState)(0), // 1: mgmt.PoolServiceState + (PoolRebuildStatus_State)(0), // 2: mgmt.PoolRebuildStatus.State + (PoolQueryTargetInfo_TargetType)(0), // 3: mgmt.PoolQueryTargetInfo.TargetType + (PoolQueryTargetInfo_TargetState)(0), // 4: mgmt.PoolQueryTargetInfo.TargetState + (*PoolCreateReq)(nil), // 5: mgmt.PoolCreateReq + (*PoolCreateResp)(nil), // 6: mgmt.PoolCreateResp + (*PoolDestroyReq)(nil), // 7: mgmt.PoolDestroyReq + (*PoolDestroyResp)(nil), // 8: mgmt.PoolDestroyResp + (*PoolEvictReq)(nil), // 9: mgmt.PoolEvictReq + (*PoolEvictResp)(nil), // 10: mgmt.PoolEvictResp + (*PoolExcludeReq)(nil), // 11: mgmt.PoolExcludeReq + (*PoolExcludeResp)(nil), // 12: mgmt.PoolExcludeResp + (*PoolDrainReq)(nil), // 13: mgmt.PoolDrainReq + (*PoolDrainResp)(nil), // 14: mgmt.PoolDrainResp + (*PoolExtendReq)(nil), // 15: mgmt.PoolExtendReq + (*PoolExtendResp)(nil), // 16: mgmt.PoolExtendResp + (*PoolReintReq)(nil), // 17: mgmt.PoolReintReq + (*PoolReintResp)(nil), // 18: mgmt.PoolReintResp + (*ListPoolsReq)(nil), // 19: mgmt.ListPoolsReq + (*ListPoolsResp)(nil), // 20: mgmt.ListPoolsResp + (*ListContReq)(nil), // 21: mgmt.ListContReq + (*ListContResp)(nil), // 22: mgmt.ListContResp + (*PoolQueryReq)(nil), // 23: mgmt.PoolQueryReq + (*StorageUsageStats)(nil), // 24: mgmt.StorageUsageStats + (*PoolRebuildStatus)(nil), // 25: mgmt.PoolRebuildStatus + (*PoolQueryResp)(nil), // 26: mgmt.PoolQueryResp + (*PoolProperty)(nil), // 27: mgmt.PoolProperty + (*PoolSetPropReq)(nil), // 28: mgmt.PoolSetPropReq + (*PoolSetPropResp)(nil), // 29: mgmt.PoolSetPropResp + (*PoolGetPropReq)(nil), // 30: mgmt.PoolGetPropReq + (*PoolGetPropResp)(nil), // 31: mgmt.PoolGetPropResp + (*PoolUpgradeReq)(nil), // 32: mgmt.PoolUpgradeReq + (*PoolUpgradeResp)(nil), // 33: mgmt.PoolUpgradeResp + (*PoolQueryTargetReq)(nil), // 34: mgmt.PoolQueryTargetReq + (*StorageTargetUsage)(nil), // 35: mgmt.StorageTargetUsage + (*PoolQueryTargetInfo)(nil), // 36: mgmt.PoolQueryTargetInfo + (*PoolQueryTargetResp)(nil), // 37: mgmt.PoolQueryTargetResp + (*ListPoolsResp_Pool)(nil), // 38: mgmt.ListPoolsResp.Pool + (*ListContResp_Cont)(nil), // 39: mgmt.ListContResp.Cont +} +var file_mgmt_pool_proto_depIdxs = []int32{ + 27, // 0: mgmt.PoolCreateReq.properties:type_name -> mgmt.PoolProperty + 38, // 1: mgmt.ListPoolsResp.pools:type_name -> mgmt.ListPoolsResp.Pool + 39, // 2: mgmt.ListContResp.containers:type_name -> mgmt.ListContResp.Cont + 0, // 3: mgmt.StorageUsageStats.media_type:type_name -> mgmt.StorageMediaType + 2, // 4: mgmt.PoolRebuildStatus.state:type_name -> mgmt.PoolRebuildStatus.State + 25, // 5: mgmt.PoolQueryResp.rebuild:type_name -> mgmt.PoolRebuildStatus + 24, // 6: mgmt.PoolQueryResp.tier_stats:type_name -> mgmt.StorageUsageStats + 1, // 7: mgmt.PoolQueryResp.state:type_name -> mgmt.PoolServiceState + 27, // 8: mgmt.PoolSetPropReq.properties:type_name -> mgmt.PoolProperty + 27, // 9: mgmt.PoolGetPropReq.properties:type_name -> mgmt.PoolProperty + 27, // 10: mgmt.PoolGetPropResp.properties:type_name -> mgmt.PoolProperty + 0, // 11: mgmt.StorageTargetUsage.media_type:type_name -> mgmt.StorageMediaType + 3, // 12: mgmt.PoolQueryTargetInfo.type:type_name -> mgmt.PoolQueryTargetInfo.TargetType + 4, // 13: mgmt.PoolQueryTargetInfo.state:type_name -> mgmt.PoolQueryTargetInfo.TargetState + 35, // 14: mgmt.PoolQueryTargetInfo.space:type_name -> mgmt.StorageTargetUsage + 36, // 15: mgmt.PoolQueryTargetResp.infos:type_name -> mgmt.PoolQueryTargetInfo + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name +} + +func init() { file_mgmt_pool_proto_init() } +func file_mgmt_pool_proto_init() { + if File_mgmt_pool_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mgmt_pool_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolCreateReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolCreateResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolDestroyReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolDestroyResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolEvictReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolEvictResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolExcludeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolExcludeResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolDrainReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolDrainResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolExtendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolExtendResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolReintReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolReintResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPoolsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPoolsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListContReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListContResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolQueryReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StorageUsageStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolRebuildStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolQueryResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolProperty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolSetPropReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolSetPropResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolGetPropReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolGetPropResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolUpgradeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolUpgradeResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolQueryTargetReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StorageTargetUsage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolQueryTargetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolQueryTargetResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPoolsResp_Pool); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mgmt_pool_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListContResp_Cont); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_mgmt_pool_proto_msgTypes[22].OneofWrappers = []interface{}{ + (*PoolProperty_Strval)(nil), + (*PoolProperty_Numval)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mgmt_pool_proto_rawDesc, + NumEnums: 5, + NumMessages: 35, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mgmt_pool_proto_goTypes, + DependencyIndexes: file_mgmt_pool_proto_depIdxs, + EnumInfos: file_mgmt_pool_proto_enumTypes, + MessageInfos: file_mgmt_pool_proto_msgTypes, + }.Build() + File_mgmt_pool_proto = out.File + file_mgmt_pool_proto_rawDesc = nil + file_mgmt_pool_proto_goTypes = nil + file_mgmt_pool_proto_depIdxs = nil +} From 5c5b8acfc109ccb352014395f3235bf8fafeaada Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Wed, 18 Dec 2024 12:27:28 +0000 Subject: [PATCH 11/19] add missing unit test coverage for new system-reint code Features: control Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/system_test.go | 26 +++++++ src/control/lib/control/system.go | 51 +++++++------- src/control/lib/control/system_test.go | 94 ++++++++++++++++++++++++++ 3 files changed, 145 insertions(+), 26 deletions(-) diff --git a/src/control/cmd/dmg/system_test.go b/src/control/cmd/dmg/system_test.go index 18ca14f35e2..80f25f3439c 100644 --- a/src/control/cmd/dmg/system_test.go +++ b/src/control/cmd/dmg/system_test.go @@ -284,6 +284,32 @@ func TestDmg_SystemCommands(t *testing.T) { "", errNoRanks, }, + { + "system reintegrate with multiple hosts", + "system reintegrate --rank-hosts foo-[0,1,4]", + strings.Join([]string{ + printRequest(t, withSystem( + withHosts(&control.SystemReintReq{}, "foo-[0-1,4]"), + "daos_server")), + }, " "), + nil, + }, + { + "system reintegrate with multiple ranks", + "system reintegrate --ranks 0,1,4", + strings.Join([]string{ + printRequest(t, withSystem( + withRanks(&control.SystemReintReq{}, 0, 1, 4), + "daos_server")), + }, " "), + nil, + }, + { + "system reintegrate without ranks", + "system reint", // Verify alias is accepted. + "", + errNoRanks, + }, { "system cleanup with machine name", "system cleanup foo1", diff --git a/src/control/lib/control/system.go b/src/control/lib/control/system.go index 126256214e9..36ff3c43e56 100644 --- a/src/control/lib/control/system.go +++ b/src/control/lib/control/system.go @@ -574,6 +574,23 @@ type SystemOsaResult struct { 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 +} + // SystemDrainReq contains the inputs for the system drain request. type SystemDrainReq struct { unaryRequest @@ -586,21 +603,12 @@ type SystemDrainReq struct { // in the response so decoding is not required. type SystemDrainResp struct { sysResponse `json:"-"` - Results []*SystemOsaResult `json:"results"` + Results SystemOsaResults `json:"results"` } -// Errors returns a single error combining all error messages associated with a system drain -// response. Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be -// populated in SystemDrainResp. -func (sdr *SystemDrainResp) Errors() (errOut error) { - for _, r := range sdr.Results { - if r.Status != int32(daos.Success) { - errOut = concatErrs(errOut, - errors.Errorf("pool %s ranks %s: %s", r.PoolID, r.Ranks, r.Msg)) - } - } - - return +// Errors returns error if any of the results indicate a failure. +func (resp *SystemDrainResp) Errors() error { + return resp.Results.Errors() } // SystemDrain will drain either hosts or ranks from all pools that they are members of. When hosts @@ -642,21 +650,12 @@ type SystemReintReq struct { // in the response so decoding is not required. type SystemReintResp struct { sysResponse `json:"-"` - Results []*SystemOsaResult `json:"results"` + Results SystemOsaResults `json:"results"` } -// Errors returns a single error combining all error messages associated with a system drain -// response. Doesn't retrieve errors from sysResponse because missing ranks or hosts will not be -// populated in SystemReintResp. -func (sdr *SystemReintResp) Errors() (errOut error) { - for _, r := range sdr.Results { - if r.Status != int32(daos.Success) { - errOut = concatErrs(errOut, - errors.Errorf("pool %s ranks %s: %s", r.PoolID, r.Ranks, r.Msg)) - } - } - - return +// 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 diff --git a/src/control/lib/control/system_test.go b/src/control/lib/control/system_test.go index e5f43996386..60c5e6d235d 100644 --- a/src/control/lib/control/system_test.go +++ b/src/control/lib/control/system_test.go @@ -1157,6 +1157,100 @@ 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 From e8c762285799c3880d18016f077e0dd6ac878573 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Wed, 18 Dec 2024 16:45:18 +0000 Subject: [PATCH 12/19] trivial changes to command results table output Features: control Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/pretty/system.go | 4 ++-- src/control/cmd/dmg/pretty/system_test.go | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/control/cmd/dmg/pretty/system.go b/src/control/cmd/dmg/pretty/system.go index 05f27902cfb..8ade2e6243a 100644 --- a/src/control/cmd/dmg/pretty/system.go +++ b/src/control/cmd/dmg/pretty/system.go @@ -229,9 +229,9 @@ func printSysOsaResults(out io.Writer, results []*control.SystemOsaResult) { var table []txtfmt.TableRow for _, r := range results { result := "OK" - reason := "N/A" + reason := "-" if r.Status != 0 { - result = "Failed" + result = "FAIL" reason = r.Msg } row := txtfmt.TableRow{ diff --git a/src/control/cmd/dmg/pretty/system_test.go b/src/control/cmd/dmg/pretty/system_test.go index 4ca630d1904..9a45ed6626e 100644 --- a/src/control/cmd/dmg/pretty/system_test.go +++ b/src/control/cmd/dmg/pretty/system_test.go @@ -625,8 +625,8 @@ func TestPretty_printSysOsaResp(t *testing.T) { expOut: ` Pool Ranks Result Reason ---- ----- ------ ------ -00000001-0001-0001-0001-000000000001 0-3 OK N/A -00000002-0002-0002-0002-000000000002 1-4 OK N/A +00000001-0001-0001-0001-000000000001 0-3 OK - +00000002-0002-0002-0002-000000000002 1-4 OK - `, }, @@ -638,8 +638,8 @@ Pool Ranks Result Reason expOut: ` Pool Ranks Result Reason ---- ----- ------ ------ -label1 0-3 OK N/A -label2 1-4 OK N/A +label1 0-3 OK - +label2 1-4 OK - `, }, @@ -655,9 +655,9 @@ label2 1-4 OK N/A expOut: ` Pool Ranks Result Reason ---- ----- ------ ------ -00000001-0001-0001-0001-000000000001 1-2 OK N/A -00000002-0002-0002-0002-000000000002 0 OK N/A -00000002-0002-0002-0002-000000000002 1-2 Failed fail1 +00000001-0001-0001-0001-000000000001 1-2 OK - +00000002-0002-0002-0002-000000000002 0 OK - +00000002-0002-0002-0002-000000000002 1-2 FAIL fail1 `, }, From 7fb508b7ed4da75f55121c3a407f803d9afd3d11 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Fri, 27 Dec 2024 15:12:05 +0000 Subject: [PATCH 13/19] consolidate reintegrate methods into drain and coalesce invalid rank failures Features: control Required-githooks: true Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/command_test.go | 2 - src/control/cmd/dmg/pretty/system.go | 29 +- src/control/cmd/dmg/pretty/system_test.go | 10 +- src/control/cmd/dmg/system.go | 50 +- src/control/cmd/dmg/system_test.go | 4 +- src/control/common/proto/mgmt/mgmt.pb.go | 392 ++++++------ src/control/common/proto/mgmt/mgmt_grpc.pb.go | 43 +- src/control/common/proto/mgmt/system.pb.go | 595 +++++++----------- src/control/lib/control/system.go | 85 +-- src/control/lib/control/system_test.go | 102 +-- src/control/security/grpc_authorization.go | 1 - .../security/grpc_authorization_test.go | 1 - src/control/server/mgmt_system.go | 125 ++-- src/control/server/mgmt_system_test.go | 356 ++++------- src/proto/mgmt/mgmt.proto | 4 +- src/proto/mgmt/system.proto | 22 +- 16 files changed, 652 insertions(+), 1169 deletions(-) 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. From dbb2d57ec3e665b94b70331696b7d8707e238172 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 7 Jan 2025 12:12:18 +0000 Subject: [PATCH 14/19] revert rename changes Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/command_test.go | 4 +- src/control/cmd/dmg/pool.go | 6 +- src/control/cmd/dmg/pool_test.go | 6 +- src/control/common/proto/mgmt/mgmt.pb.go | 282 +++++++++--------- src/control/common/proto/mgmt/mgmt_grpc.pb.go | 28 +- src/control/common/proto/mgmt/pool.pb.go | 4 +- src/control/lib/control/pool.go | 12 +- src/control/server/mgmt_pool.go | 6 +- src/control/server/mgmt_pool_test.go | 22 +- src/control/server/mgmt_system.go | 4 +- src/mgmt/pool.pb-c.h | 2 +- src/proto/mgmt/mgmt.proto | 4 +- src/proto/mgmt/pool.proto | 4 +- 13 files changed, 192 insertions(+), 192 deletions(-) diff --git a/src/control/cmd/dmg/command_test.go b/src/control/cmd/dmg/command_test.go index 0eb96613607..9e5029eedda 100644 --- a/src/control/cmd/dmg/command_test.go +++ b/src/control/cmd/dmg/command_test.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -165,7 +165,7 @@ func (bci *bridgeConnInvoker) InvokeUnaryRPC(ctx context.Context, uReq control.U resp = control.MockMSResponse("", nil, &mgmtpb.PoolDrainResp{}) case *control.PoolExtendReq: resp = control.MockMSResponse("", nil, &mgmtpb.PoolExtendResp{}) - case *control.PoolReintReq: + case *control.PoolReintegrateReq: resp = control.MockMSResponse("", nil, &mgmtpb.PoolReintResp{}) case *control.SystemCheckEnableReq: resp = control.MockMSResponse("", nil, &mgmtpb.DaosResp{}) diff --git a/src/control/cmd/dmg/pool.go b/src/control/cmd/dmg/pool.go index 90a4763aaf0..1e586b791dc 100644 --- a/src/control/cmd/dmg/pool.go +++ b/src/control/cmd/dmg/pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -633,13 +633,13 @@ func (cmd *poolReintCmd) Execute(args []string) error { return err } - req := &control.PoolReintReq{ + req := &control.PoolReintegrateReq{ ID: cmd.PoolID().String(), Rank: ranklist.Rank(cmd.Rank), TargetIdx: idxList, } - err := control.PoolReint(cmd.MustLogCtx(), cmd.ctlInvoker, req) + err := control.PoolReintegrate(cmd.MustLogCtx(), cmd.ctlInvoker, req) if err != nil { msg = errors.WithMessage(err, "failed").Error() } diff --git a/src/control/cmd/dmg/pool_test.go b/src/control/cmd/dmg/pool_test.go index c01ed1bff9c..4681abd9f17 100644 --- a/src/control/cmd/dmg/pool_test.go +++ b/src/control/cmd/dmg/pool_test.go @@ -718,7 +718,7 @@ func TestPoolCommands(t *testing.T) { "Reintegrate a target with single target idx", "pool reintegrate 031bcaf8-f0f5-42ef-b3c5-ee048676dceb --rank 0 --target-idx 1", strings.Join([]string{ - printRequest(t, &control.PoolReintReq{ + printRequest(t, &control.PoolReintegrateReq{ ID: "031bcaf8-f0f5-42ef-b3c5-ee048676dceb", Rank: 0, TargetIdx: []uint32{1}, @@ -730,7 +730,7 @@ func TestPoolCommands(t *testing.T) { "Reintegrate a target with multiple idx", "pool reintegrate 031bcaf8-f0f5-42ef-b3c5-ee048676dceb --rank 0 --target-idx 1,2,3", strings.Join([]string{ - printRequest(t, &control.PoolReintReq{ + printRequest(t, &control.PoolReintegrateReq{ ID: "031bcaf8-f0f5-42ef-b3c5-ee048676dceb", Rank: 0, TargetIdx: []uint32{1, 2, 3}, @@ -742,7 +742,7 @@ func TestPoolCommands(t *testing.T) { "Reintegrate a target with no idx given", "pool reintegrate 031bcaf8-f0f5-42ef-b3c5-ee048676dceb --rank 0", strings.Join([]string{ - printRequest(t, &control.PoolReintReq{ + printRequest(t, &control.PoolReintegrateReq{ ID: "031bcaf8-f0f5-42ef-b3c5-ee048676dceb", Rank: 0, TargetIdx: []uint32{}, diff --git a/src/control/common/proto/mgmt/mgmt.pb.go b/src/control/common/proto/mgmt/mgmt.pb.go index 6b8c8f86146..774ebd76c4a 100644 --- a/src/control/common/proto/mgmt/mgmt.pb.go +++ b/src/control/common/proto/mgmt/mgmt.pb.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -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, 0xbc, 0x15, 0x0a, 0x07, 0x4d, 0x67, 0x6d, 0x74, 0x53, 0x76, 0x63, 0x12, + 0x6f, 0x74, 0x6f, 0x32, 0xc2, 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, @@ -74,150 +74,150 @@ var file_mgmt_mgmt_proto_rawDesc = []byte{ 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, - 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, - 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, - 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, - 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, - 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, + 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, + 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, + 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, + 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x41, 0x43, - 0x4c, 0x12, 0x0f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x43, 0x4c, 0x52, - 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, - 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, + 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, + 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, + 0x6c, 0x47, 0x65, 0x74, 0x41, 0x43, 0x4c, 0x12, 0x0f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x10, 0x50, 0x6f, 0x6f, + 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, - 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x37, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, - 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, - 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, + 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, + 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, + 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x53, 0x74, 0x6f, 0x70, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, - 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, 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, 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, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 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, 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, 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, + 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, 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, + 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{}{ @@ -309,7 +309,7 @@ var file_mgmt_mgmt_proto_depIdxs = []int32{ 6, // 6: mgmt.MgmtSvc.PoolExclude:input_type -> mgmt.PoolExcludeReq 7, // 7: mgmt.MgmtSvc.PoolDrain:input_type -> mgmt.PoolDrainReq 8, // 8: mgmt.MgmtSvc.PoolExtend:input_type -> mgmt.PoolExtendReq - 9, // 9: mgmt.MgmtSvc.PoolReint:input_type -> mgmt.PoolReintReq + 9, // 9: mgmt.MgmtSvc.PoolReintegrate:input_type -> mgmt.PoolReintReq 10, // 10: mgmt.MgmtSvc.PoolQuery:input_type -> mgmt.PoolQueryReq 11, // 11: mgmt.MgmtSvc.PoolQueryTarget:input_type -> mgmt.PoolQueryTargetReq 12, // 12: mgmt.MgmtSvc.PoolSetProp:input_type -> mgmt.PoolSetPropReq @@ -354,7 +354,7 @@ var file_mgmt_mgmt_proto_depIdxs = []int32{ 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 + 52, // 54: mgmt.MgmtSvc.PoolReintegrate: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 diff --git a/src/control/common/proto/mgmt/mgmt_grpc.pb.go b/src/control/common/proto/mgmt/mgmt_grpc.pb.go index 3b15e682ca2..5ffed563ed4 100644 --- a/src/control/common/proto/mgmt/mgmt_grpc.pb.go +++ b/src/control/common/proto/mgmt/mgmt_grpc.pb.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -36,7 +36,7 @@ const ( MgmtSvc_PoolExclude_FullMethodName = "/mgmt.MgmtSvc/PoolExclude" MgmtSvc_PoolDrain_FullMethodName = "/mgmt.MgmtSvc/PoolDrain" MgmtSvc_PoolExtend_FullMethodName = "/mgmt.MgmtSvc/PoolExtend" - MgmtSvc_PoolReint_FullMethodName = "/mgmt.MgmtSvc/PoolReint" + MgmtSvc_PoolReintegrate_FullMethodName = "/mgmt.MgmtSvc/PoolReintegrate" MgmtSvc_PoolQuery_FullMethodName = "/mgmt.MgmtSvc/PoolQuery" MgmtSvc_PoolQueryTarget_FullMethodName = "/mgmt.MgmtSvc/PoolQueryTarget" MgmtSvc_PoolSetProp_FullMethodName = "/mgmt.MgmtSvc/PoolSetProp" @@ -98,7 +98,7 @@ type MgmtSvcClient interface { // Extend a pool. PoolExtend(ctx context.Context, in *PoolExtendReq, opts ...grpc.CallOption) (*PoolExtendResp, error) // Reintegrate a pool target. - PoolReint(ctx context.Context, in *PoolReintReq, opts ...grpc.CallOption) (*PoolReintResp, error) + PoolReintegrate(ctx context.Context, in *PoolReintReq, opts ...grpc.CallOption) (*PoolReintResp, error) // PoolQuery queries a DAOS pool. PoolQuery(ctx context.Context, in *PoolQueryReq, opts ...grpc.CallOption) (*PoolQueryResp, error) // PoolQueryTarget queries a DAOS storage target. @@ -260,9 +260,9 @@ func (c *mgmtSvcClient) PoolExtend(ctx context.Context, in *PoolExtendReq, opts return out, nil } -func (c *mgmtSvcClient) PoolReint(ctx context.Context, in *PoolReintReq, opts ...grpc.CallOption) (*PoolReintResp, error) { +func (c *mgmtSvcClient) PoolReintegrate(ctx context.Context, in *PoolReintReq, opts ...grpc.CallOption) (*PoolReintResp, error) { out := new(PoolReintResp) - err := c.cc.Invoke(ctx, MgmtSvc_PoolReint_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, MgmtSvc_PoolReintegrate_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -608,7 +608,7 @@ type MgmtSvcServer interface { // Extend a pool. PoolExtend(context.Context, *PoolExtendReq) (*PoolExtendResp, error) // Reintegrate a pool target. - PoolReint(context.Context, *PoolReintReq) (*PoolReintResp, error) + PoolReintegrate(context.Context, *PoolReintReq) (*PoolReintResp, error) // PoolQuery queries a DAOS pool. PoolQuery(context.Context, *PoolQueryReq) (*PoolQueryResp, error) // PoolQueryTarget queries a DAOS storage target. @@ -713,8 +713,8 @@ func (UnimplementedMgmtSvcServer) PoolDrain(context.Context, *PoolDrainReq) (*Po func (UnimplementedMgmtSvcServer) PoolExtend(context.Context, *PoolExtendReq) (*PoolExtendResp, error) { return nil, status.Errorf(codes.Unimplemented, "method PoolExtend not implemented") } -func (UnimplementedMgmtSvcServer) PoolReint(context.Context, *PoolReintReq) (*PoolReintResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method PoolReint not implemented") +func (UnimplementedMgmtSvcServer) PoolReintegrate(context.Context, *PoolReintReq) (*PoolReintResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method PoolReintegrate not implemented") } func (UnimplementedMgmtSvcServer) PoolQuery(context.Context, *PoolQueryReq) (*PoolQueryResp, error) { return nil, status.Errorf(codes.Unimplemented, "method PoolQuery not implemented") @@ -996,20 +996,20 @@ func _MgmtSvc_PoolExtend_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _MgmtSvc_PoolReint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _MgmtSvc_PoolReintegrate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(PoolReintReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MgmtSvcServer).PoolReint(ctx, in) + return srv.(MgmtSvcServer).PoolReintegrate(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: MgmtSvc_PoolReint_FullMethodName, + FullMethod: MgmtSvc_PoolReintegrate_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MgmtSvcServer).PoolReint(ctx, req.(*PoolReintReq)) + return srv.(MgmtSvcServer).PoolReintegrate(ctx, req.(*PoolReintReq)) } return interceptor(ctx, in, info, handler) } @@ -1688,8 +1688,8 @@ var MgmtSvc_ServiceDesc = grpc.ServiceDesc{ Handler: _MgmtSvc_PoolExtend_Handler, }, { - MethodName: "PoolReint", - Handler: _MgmtSvc_PoolReint_Handler, + MethodName: "PoolReintegrate", + Handler: _MgmtSvc_PoolReintegrate_Handler, }, { MethodName: "PoolQuery", diff --git a/src/control/common/proto/mgmt/pool.pb.go b/src/control/common/proto/mgmt/pool.pb.go index 8f87cd65930..5cd2b74e25f 100644 --- a/src/control/common/proto/mgmt/pool.pb.go +++ b/src/control/common/proto/mgmt/pool.pb.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -1320,7 +1320,7 @@ func (x *PoolReintReq) GetMemRatio() float32 { return 0 } -// PoolReintResp returns resultant state of Reintegrate operation. +// PoolReintResp returns resultant state of reintegrate operation. type PoolReintResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/src/control/lib/control/pool.go b/src/control/lib/control/pool.go index 1ad7739cb1d..8264aada32d 100644 --- a/src/control/lib/control/pool.go +++ b/src/control/lib/control/pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2020-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -846,18 +846,18 @@ func PoolExtend(ctx context.Context, rpcClient UnaryInvoker, req *PoolExtendReq) return errors.Wrap(ur.getMSError(), "pool extend failed") } -// PoolReintReq struct contains request -type PoolReintReq struct { +// PoolReintegrateReq struct contains request +type PoolReintegrateReq struct { poolRequest ID string Rank ranklist.Rank TargetIdx []uint32 } -// PoolReint will set a pool target for a specific rank back to up. +// PoolReintegrate will set a pool target for a specific rank back to up. // This should automatically start the reintegration process. // Returns an error (including any DER code from DAOS). -func PoolReint(ctx context.Context, rpcClient UnaryInvoker, req *PoolReintReq) error { +func PoolReintegrate(ctx context.Context, rpcClient UnaryInvoker, req *PoolReintegrateReq) error { pbReq := &mgmtpb.PoolReintReq{ Sys: req.getSystem(rpcClient), Id: req.ID, @@ -866,7 +866,7 @@ func PoolReint(ctx context.Context, rpcClient UnaryInvoker, req *PoolReintReq) e } req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { - return mgmtpb.NewMgmtSvcClient(conn).PoolReint(ctx, pbReq) + return mgmtpb.NewMgmtSvcClient(conn).PoolReintegrate(ctx, pbReq) }) rpcClient.Debugf("Reintegrate DAOS pool target request: %s\n", pbUtil.Debug(pbReq)) diff --git a/src/control/server/mgmt_pool.go b/src/control/server/mgmt_pool.go index 545dad78693..17091728275 100644 --- a/src/control/server/mgmt_pool.go +++ b/src/control/server/mgmt_pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2020-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -905,8 +905,8 @@ func (svc *mgmtSvc) PoolExtend(ctx context.Context, req *mgmtpb.PoolExtendReq) ( return resp, nil } -// PoolReint implements the method defined for the Management Service. -func (svc *mgmtSvc) PoolReint(ctx context.Context, req *mgmtpb.PoolReintReq) (*mgmtpb.PoolReintResp, error) { +// PoolReintegrate implements the method defined for the Management Service. +func (svc *mgmtSvc) PoolReintegrate(ctx context.Context, req *mgmtpb.PoolReintReq) (*mgmtpb.PoolReintResp, error) { if err := svc.checkLeaderRequest(req); err != nil { return nil, err } diff --git a/src/control/server/mgmt_pool_test.go b/src/control/server/mgmt_pool_test.go index 42ac9ebb6ca..0505279a7b4 100644 --- a/src/control/server/mgmt_pool_test.go +++ b/src/control/server/mgmt_pool_test.go @@ -1484,7 +1484,7 @@ func TestServer_MgmtSvc_PoolExtend(t *testing.T) { } } -func TestServer_MgmtSvc_PoolReint(t *testing.T) { +func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { log, buf := logging.NewTestLogger(t.Name()) missingSB := newTestMgmtSvc(t, log) missingSB.harness.instances[0].(*EngineInstance)._superblock = nil @@ -1494,9 +1494,9 @@ func TestServer_MgmtSvc_PoolReint(t *testing.T) { nilReq bool getMockDrpc func(error) *mockDrpcClient mgmtSvc *mgmtSvc - reqIn *mgmtpb.PoolReintReq - drpcResp *mgmtpb.PoolReintResp - expDrpcReq *mgmtpb.PoolReintReq + reqIn *mgmtpb.PoolReintegrateReq + drpcResp *mgmtpb.PoolReintegrateResp + expDrpcReq *mgmtpb.PoolReintegrateReq expErr error }{ "nil request": { @@ -1504,7 +1504,7 @@ func TestServer_MgmtSvc_PoolReint(t *testing.T) { expErr: errors.New("nil request"), }, "wrong system": { - reqIn: &mgmtpb.PoolReintReq{Id: mockUUID, Sys: "bad"}, + reqIn: &mgmtpb.PoolReintegrateReq{Id: mockUUID, Sys: "bad"}, expErr: FaultWrongSystem("bad", build.DefaultSystemName), }, "missing superblock": { @@ -1528,13 +1528,13 @@ func TestServer_MgmtSvc_PoolReint(t *testing.T) { expErr: errors.New("unmarshal"), }, "missing uuid": { - reqIn: &mgmtpb.PoolReintReq{Rank: 1}, + reqIn: &mgmtpb.PoolReintegrateReq{Rank: 1}, expErr: errors.New("empty pool id"), }, "successfully extended": { - drpcResp: &mgmtpb.PoolReintResp{}, + drpcResp: &mgmtpb.PoolReintegrateResp{}, // Expect that the last request contains updated params from ps entry. - expDrpcReq: &mgmtpb.PoolReintReq{ + expDrpcReq: &mgmtpb.PoolReintegrateReq{ Sys: build.DefaultSystemName, SvcRanks: mockSvcRanks, Id: mockUUID, @@ -1549,7 +1549,7 @@ func TestServer_MgmtSvc_PoolReint(t *testing.T) { defer test.ShowBufferOnFailure(t, buf) if tc.reqIn == nil && !tc.nilReq { - tc.reqIn = &mgmtpb.PoolReintReq{Id: mockUUID, Rank: 1} + tc.reqIn = &mgmtpb.PoolReintegrateReq{Id: mockUUID, Rank: 1} } if tc.mgmtSvc == nil { tc.mgmtSvc = newTestMgmtSvc(t, log) @@ -1574,7 +1574,7 @@ func TestServer_MgmtSvc_PoolReint(t *testing.T) { t.Fatal(err) } - gotResp, gotErr := tc.mgmtSvc.PoolReint(test.Context(t), tc.reqIn) + gotResp, gotErr := tc.mgmtSvc.PoolReintegrate(test.Context(t), tc.reqIn) test.CmpErr(t, tc.expErr, gotErr) if tc.expErr != nil { return @@ -1586,7 +1586,7 @@ func TestServer_MgmtSvc_PoolReint(t *testing.T) { } // Check extend gets called with correct params from PS entry. - lastReq := new(mgmtpb.PoolReintReq) + lastReq := new(mgmtpb.PoolReintegrateReq) if err := proto.Unmarshal(getLastMockCall(mdc).Body, lastReq); err != nil { t.Fatal(err) } diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index 66c9c218638..d71097d223a 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2020-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -1256,7 +1256,7 @@ func reintPoolRank(svc *mgmtSvc, ctx context.Context, sys, id string, rank rankl Id: id, } - pbResp, err := svc.PoolReint(ctx, pbReq) + pbResp, err := svc.PoolReintegrate(ctx, pbReq) if err != nil { return int32(daos.MiscError), err } diff --git a/src/mgmt/pool.pb-c.h b/src/mgmt/pool.pb-c.h index b860a358ee0..edd5c37ac31 100644 --- a/src/mgmt/pool.pb-c.h +++ b/src/mgmt/pool.pb-c.h @@ -584,7 +584,7 @@ struct _Mgmt__PoolReintReq { 0} /* - * PoolReintResp returns resultant state of Reintegrate operation. + * PoolReintResp returns resultant state of reintegrate operation. */ struct _Mgmt__PoolReintResp { ProtobufCMessage base; diff --git a/src/proto/mgmt/mgmt.proto b/src/proto/mgmt/mgmt.proto index 8ea7c119dbd..1abeb798a46 100644 --- a/src/proto/mgmt/mgmt.proto +++ b/src/proto/mgmt/mgmt.proto @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -46,7 +46,7 @@ service MgmtSvc { // Extend a pool. rpc PoolExtend(PoolExtendReq) returns (PoolExtendResp) {} // Reintegrate a pool target. - rpc PoolReint(PoolReintReq) returns (PoolReintResp) {} + rpc PoolReintegrate(PoolReintReq) returns (PoolReintResp) {} // PoolQuery queries a DAOS pool. rpc PoolQuery(PoolQueryReq) returns (PoolQueryResp) {} // PoolQueryTarget queries a DAOS storage target. diff --git a/src/proto/mgmt/pool.proto b/src/proto/mgmt/pool.proto index c7925d452d5..431804ac9fb 100644 --- a/src/proto/mgmt/pool.proto +++ b/src/proto/mgmt/pool.proto @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2019-2025 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -133,7 +133,7 @@ message PoolReintReq float mem_ratio = 7; // Fraction of meta-blob-sz to use as mem-file-sz } -// PoolReintResp returns resultant state of Reintegrate operation. +// PoolReintResp returns resultant state of reintegrate operation. message PoolReintResp { int32 status = 1; // DAOS error code From eb683e9cfcdfea0fd8d3cfbccc640111217ffe47 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 7 Jan 2025 13:26:04 +0000 Subject: [PATCH 15/19] more naming reverts Features: control Signed-off-by: Tom Nabarro --- src/control/security/grpc_authorization.go | 2 +- .../security/grpc_authorization_test.go | 2 +- src/control/server/mgmt_pool_test.go | 19 ++++++++++--------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/control/security/grpc_authorization.go b/src/control/security/grpc_authorization.go index c955b27e417..dc80a114921 100644 --- a/src/control/security/grpc_authorization.go +++ b/src/control/security/grpc_authorization.go @@ -64,7 +64,7 @@ var methodAuthorizations = map[string][]Component{ "/mgmt.MgmtSvc/PoolDeleteACL": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolExclude": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolDrain": {ComponentAdmin}, - "/mgmt.MgmtSvc/PoolReint": {ComponentAdmin}, + "/mgmt.MgmtSvc/PoolReintegrate": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolEvict": {ComponentAdmin, ComponentAgent}, "/mgmt.MgmtSvc/PoolExtend": {ComponentAdmin}, "/mgmt.MgmtSvc/GetAttachInfo": {ComponentAgent}, diff --git a/src/control/security/grpc_authorization_test.go b/src/control/security/grpc_authorization_test.go index 24662c4004e..cbb6026ea0f 100644 --- a/src/control/security/grpc_authorization_test.go +++ b/src/control/security/grpc_authorization_test.go @@ -89,7 +89,7 @@ func TestSecurity_ComponentHasAccess(t *testing.T) { "/mgmt.MgmtSvc/PoolDeleteACL": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolExclude": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolDrain": {ComponentAdmin}, - "/mgmt.MgmtSvc/PoolReint": {ComponentAdmin}, + "/mgmt.MgmtSvc/PoolReintegrate": {ComponentAdmin}, "/mgmt.MgmtSvc/PoolEvict": {ComponentAdmin, ComponentAgent}, "/mgmt.MgmtSvc/PoolExtend": {ComponentAdmin}, "/mgmt.MgmtSvc/GetAttachInfo": {ComponentAgent}, diff --git a/src/control/server/mgmt_pool_test.go b/src/control/server/mgmt_pool_test.go index 0505279a7b4..a16955830f6 100644 --- a/src/control/server/mgmt_pool_test.go +++ b/src/control/server/mgmt_pool_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -1494,9 +1495,9 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { nilReq bool getMockDrpc func(error) *mockDrpcClient mgmtSvc *mgmtSvc - reqIn *mgmtpb.PoolReintegrateReq - drpcResp *mgmtpb.PoolReintegrateResp - expDrpcReq *mgmtpb.PoolReintegrateReq + reqIn *mgmtpb.PoolReintReq + drpcResp *mgmtpb.PoolReintResp + expDrpcReq *mgmtpb.PoolReintReq expErr error }{ "nil request": { @@ -1504,7 +1505,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { expErr: errors.New("nil request"), }, "wrong system": { - reqIn: &mgmtpb.PoolReintegrateReq{Id: mockUUID, Sys: "bad"}, + reqIn: &mgmtpb.PoolReintReq{Id: mockUUID, Sys: "bad"}, expErr: FaultWrongSystem("bad", build.DefaultSystemName), }, "missing superblock": { @@ -1528,13 +1529,13 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { expErr: errors.New("unmarshal"), }, "missing uuid": { - reqIn: &mgmtpb.PoolReintegrateReq{Rank: 1}, + reqIn: &mgmtpb.PoolReintReq{Rank: 1}, expErr: errors.New("empty pool id"), }, "successfully extended": { - drpcResp: &mgmtpb.PoolReintegrateResp{}, + drpcResp: &mgmtpb.PoolReintResp{}, // Expect that the last request contains updated params from ps entry. - expDrpcReq: &mgmtpb.PoolReintegrateReq{ + expDrpcReq: &mgmtpb.PoolReintReq{ Sys: build.DefaultSystemName, SvcRanks: mockSvcRanks, Id: mockUUID, @@ -1549,7 +1550,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { defer test.ShowBufferOnFailure(t, buf) if tc.reqIn == nil && !tc.nilReq { - tc.reqIn = &mgmtpb.PoolReintegrateReq{Id: mockUUID, Rank: 1} + tc.reqIn = &mgmtpb.PoolReintReq{Id: mockUUID, Rank: 1} } if tc.mgmtSvc == nil { tc.mgmtSvc = newTestMgmtSvc(t, log) @@ -1586,7 +1587,7 @@ func TestServer_MgmtSvc_PoolReintegrate(t *testing.T) { } // Check extend gets called with correct params from PS entry. - lastReq := new(mgmtpb.PoolReintegrateReq) + lastReq := new(mgmtpb.PoolReintReq) if err := proto.Unmarshal(getLastMockCall(mdc).Body, lastReq); err != nil { t.Fatal(err) } From 83ea386baad4ee38174f1ecfc2faaf88918fc69d Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 7 Jan 2025 13:44:18 +0000 Subject: [PATCH 16/19] revert inaccurate copyright notice changes Features: control pool Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/command_test.go | 2 +- src/control/cmd/dmg/pool.go | 2 +- src/control/common/proto/mgmt/mgmt.pb.go | 2 +- src/control/common/proto/mgmt/mgmt_grpc.pb.go | 2 +- src/control/common/proto/mgmt/pool.pb.go | 2 +- src/control/lib/control/pool.go | 2 +- src/control/server/mgmt_pool.go | 2 +- src/control/server/mgmt_system.go | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/control/cmd/dmg/command_test.go b/src/control/cmd/dmg/command_test.go index 9e5029eedda..6d4901de7d4 100644 --- a/src/control/cmd/dmg/command_test.go +++ b/src/control/cmd/dmg/command_test.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/pool.go b/src/control/cmd/dmg/pool.go index 1e586b791dc..5bd13383355 100644 --- a/src/control/cmd/dmg/pool.go +++ b/src/control/cmd/dmg/pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/common/proto/mgmt/mgmt.pb.go b/src/control/common/proto/mgmt/mgmt.pb.go index 774ebd76c4a..d9bf5c0fc63 100644 --- a/src/control/common/proto/mgmt/mgmt.pb.go +++ b/src/control/common/proto/mgmt/mgmt.pb.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/common/proto/mgmt/mgmt_grpc.pb.go b/src/control/common/proto/mgmt/mgmt_grpc.pb.go index 5ffed563ed4..8a4d7ebc6c5 100644 --- a/src/control/common/proto/mgmt/mgmt_grpc.pb.go +++ b/src/control/common/proto/mgmt/mgmt_grpc.pb.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/common/proto/mgmt/pool.pb.go b/src/control/common/proto/mgmt/pool.pb.go index 5cd2b74e25f..c8be8fc1978 100644 --- a/src/control/common/proto/mgmt/pool.pb.go +++ b/src/control/common/proto/mgmt/pool.pb.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/lib/control/pool.go b/src/control/lib/control/pool.go index 8264aada32d..777d385c7d2 100644 --- a/src/control/lib/control/pool.go +++ b/src/control/lib/control/pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2020-2025 Intel Corporation. +// (C) Copyright 2020-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/server/mgmt_pool.go b/src/control/server/mgmt_pool.go index 17091728275..c1b80d65952 100644 --- a/src/control/server/mgmt_pool.go +++ b/src/control/server/mgmt_pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2020-2025 Intel Corporation. +// (C) Copyright 2020-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index d71097d223a..a344509ff7d 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2020-2025 Intel Corporation. +// (C) Copyright 2020-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // From a40f705189db2806b6df649cbb6fe22bc8aa9d59 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Tue, 7 Jan 2025 14:03:11 +0000 Subject: [PATCH 17/19] more copyright notice updates Features: control pool Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/pretty/system_test.go | 2 +- src/proto/mgmt/mgmt.proto | 2 +- src/proto/mgmt/pool.proto | 8 +++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/control/cmd/dmg/pretty/system_test.go b/src/control/cmd/dmg/pretty/system_test.go index 66105cbf6bc..24ec7cb99f2 100644 --- a/src/control/cmd/dmg/pretty/system_test.go +++ b/src/control/cmd/dmg/pretty/system_test.go @@ -612,7 +612,7 @@ Unknown 3 hosts: foo[7-9] } } -func TestPretty_printSysOsaResp(t *testing.T) { +func TestPretty_PrintPoolRankResults(t *testing.T) { for name, tc := range map[string]struct { results []*control.PoolRankResult expOut string diff --git a/src/proto/mgmt/mgmt.proto b/src/proto/mgmt/mgmt.proto index 1abeb798a46..5535da48e07 100644 --- a/src/proto/mgmt/mgmt.proto +++ b/src/proto/mgmt/mgmt.proto @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/proto/mgmt/pool.proto b/src/proto/mgmt/pool.proto index 431804ac9fb..a74691b2947 100644 --- a/src/proto/mgmt/pool.proto +++ b/src/proto/mgmt/pool.proto @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2025 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -122,8 +122,7 @@ message PoolExtendResp { } // PoolReintReq supplies pool identifier, rank, and target_idxs. -message PoolReintReq -{ +message PoolReintReq { string sys = 1; // DAOS system identifier string id = 2; // uuid or label of pool to add target up to uint32 rank = 3; // target to move to the up state @@ -134,8 +133,7 @@ message PoolReintReq } // PoolReintResp returns resultant state of reintegrate operation. -message PoolReintResp -{ +message PoolReintResp { int32 status = 1; // DAOS error code } From 4992062309feb4f831cf8592482ef55b51c98037 Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Wed, 8 Jan 2025 12:10:04 +0000 Subject: [PATCH 18/19] Copyright notice adjustments Features: pool Signed-off-by: Tom Nabarro --- src/control/cmd/dmg/command_test.go | 1 + src/control/cmd/dmg/json_test.go | 1 + src/control/cmd/dmg/pool.go | 1 + src/control/cmd/dmg/pretty/system.go | 1 + src/control/cmd/dmg/pretty/system_test.go | 1 + src/control/cmd/dmg/system.go | 1 + src/control/cmd/dmg/system_test.go | 1 + src/control/common/proto/mgmt/addons.go | 1 + src/control/drpc/modules.go | 1 + src/control/lib/control/pool.go | 1 + src/control/lib/control/system.go | 1 + src/control/lib/control/system_test.go | 1 + src/control/server/mgmt_pool.go | 1 + src/control/server/mgmt_svc.go | 1 + src/control/server/mgmt_system.go | 1 + src/control/server/mgmt_system_test.go | 1 + src/include/daos/drpc_modules.h | 1 + src/mgmt/srv.c | 1 + src/mgmt/srv_drpc.c | 1 + src/mgmt/tests/srv_drpc_tests.c | 1 + src/proto/mgmt/mgmt.proto | 1 + src/proto/mgmt/pool.proto | 1 + src/proto/mgmt/system.proto | 1 + 23 files changed, 23 insertions(+) diff --git a/src/control/cmd/dmg/command_test.go b/src/control/cmd/dmg/command_test.go index 6d4901de7d4..2fadcff9874 100644 --- a/src/control/cmd/dmg/command_test.go +++ b/src/control/cmd/dmg/command_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/json_test.go b/src/control/cmd/dmg/json_test.go index 89cfdf5edd2..57576ed6966 100644 --- a/src/control/cmd/dmg/json_test.go +++ b/src/control/cmd/dmg/json_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/pool.go b/src/control/cmd/dmg/pool.go index 5bd13383355..7c6d942c9a9 100644 --- a/src/control/cmd/dmg/pool.go +++ b/src/control/cmd/dmg/pool.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/pretty/system.go b/src/control/cmd/dmg/pretty/system.go index 26271f309c3..f5c082d7d0e 100644 --- a/src/control/cmd/dmg/pretty/system.go +++ b/src/control/cmd/dmg/pretty/system.go @@ -1,5 +1,6 @@ // // (C) Copyright 2021-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/pretty/system_test.go b/src/control/cmd/dmg/pretty/system_test.go index 24ec7cb99f2..e7d84a4fc5d 100644 --- a/src/control/cmd/dmg/pretty/system_test.go +++ b/src/control/cmd/dmg/pretty/system_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2021-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/system.go b/src/control/cmd/dmg/system.go index 12a2caeb7e3..cc4d96cafa0 100644 --- a/src/control/cmd/dmg/system.go +++ b/src/control/cmd/dmg/system.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/cmd/dmg/system_test.go b/src/control/cmd/dmg/system_test.go index e8b5cf4bc3d..17bbd614fd8 100644 --- a/src/control/cmd/dmg/system_test.go +++ b/src/control/cmd/dmg/system_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/common/proto/mgmt/addons.go b/src/control/common/proto/mgmt/addons.go index a9da94cdf8c..5f8be80bb81 100644 --- a/src/control/common/proto/mgmt/addons.go +++ b/src/control/common/proto/mgmt/addons.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/drpc/modules.go b/src/control/drpc/modules.go index 77e7ddde42d..aa2c4929207 100644 --- a/src/control/drpc/modules.go +++ b/src/control/drpc/modules.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/lib/control/pool.go b/src/control/lib/control/pool.go index 777d385c7d2..15dfb639922 100644 --- a/src/control/lib/control/pool.go +++ b/src/control/lib/control/pool.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/lib/control/system.go b/src/control/lib/control/system.go index 69f8ba5525c..73601696f6b 100644 --- a/src/control/lib/control/system.go +++ b/src/control/lib/control/system.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/lib/control/system_test.go b/src/control/lib/control/system_test.go index 202aba42f91..15c9578769f 100644 --- a/src/control/lib/control/system_test.go +++ b/src/control/lib/control/system_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/server/mgmt_pool.go b/src/control/server/mgmt_pool.go index c1b80d65952..595a610d5fb 100644 --- a/src/control/server/mgmt_pool.go +++ b/src/control/server/mgmt_pool.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/server/mgmt_svc.go b/src/control/server/mgmt_svc.go index 250b0a6dbcf..8aeb064ffc9 100644 --- a/src/control/server/mgmt_svc.go +++ b/src/control/server/mgmt_svc.go @@ -1,5 +1,6 @@ // // (C) Copyright 2018-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/server/mgmt_system.go b/src/control/server/mgmt_system.go index a344509ff7d..4c8c0ef4c11 100644 --- a/src/control/server/mgmt_system.go +++ b/src/control/server/mgmt_system.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 7b8d0c0ec69..244dea72437 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/include/daos/drpc_modules.h b/src/include/daos/drpc_modules.h index 78d8abd6fa0..a305db686f8 100644 --- a/src/include/daos/drpc_modules.h +++ b/src/include/daos/drpc_modules.h @@ -1,5 +1,6 @@ /* * (C) Copyright 2019-2024 Intel Corporation. + * (C) Copyright 2025 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ diff --git a/src/mgmt/srv.c b/src/mgmt/srv.c index 46bc78d10fe..3509fc776fe 100644 --- a/src/mgmt/srv.c +++ b/src/mgmt/srv.c @@ -1,5 +1,6 @@ /** * (C) Copyright 2016-2024 Intel Corporation. + * (C) Copyright 2025 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ diff --git a/src/mgmt/srv_drpc.c b/src/mgmt/srv_drpc.c index 8092e11ddaf..5918d45dc78 100644 --- a/src/mgmt/srv_drpc.c +++ b/src/mgmt/srv_drpc.c @@ -1,5 +1,6 @@ /* * (C) Copyright 2019-2024 Intel Corporation. + * (C) Copyright 2025 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ diff --git a/src/mgmt/tests/srv_drpc_tests.c b/src/mgmt/tests/srv_drpc_tests.c index 27f2f53b27d..02a99a08b5c 100644 --- a/src/mgmt/tests/srv_drpc_tests.c +++ b/src/mgmt/tests/srv_drpc_tests.c @@ -1,5 +1,6 @@ /* * (C) Copyright 2019-2024 Intel Corporation. + * (C) Copyright 2025 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ diff --git a/src/proto/mgmt/mgmt.proto b/src/proto/mgmt/mgmt.proto index 5535da48e07..7cf6bcd0c52 100644 --- a/src/proto/mgmt/mgmt.proto +++ b/src/proto/mgmt/mgmt.proto @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/proto/mgmt/pool.proto b/src/proto/mgmt/pool.proto index a74691b2947..df92588499b 100644 --- a/src/proto/mgmt/pool.proto +++ b/src/proto/mgmt/pool.proto @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // diff --git a/src/proto/mgmt/system.proto b/src/proto/mgmt/system.proto index df3c2a74d0f..f5954975b6c 100644 --- a/src/proto/mgmt/system.proto +++ b/src/proto/mgmt/system.proto @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2025 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // From 8315c4edbd2d21f0f35f8594f56eab808915eb6a Mon Sep 17 00:00:00 2001 From: Tom Nabarro Date: Thu, 9 Jan 2025 10:26:07 +0000 Subject: [PATCH 19/19] Features: pool Doc-only: false Signed-off-by: Tom Nabarro