From bd8699468d1396e33bfd326c1e3bc0b37da44fa4 Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Thu, 2 May 2024 20:05:41 +0000 Subject: [PATCH] DAOS-15794 tools: Add --health-only flag to (dmg|daos) pool query As a convenience, provide a "streamlined" version of the pool query that only performs the minimum amount of work to query the pool's health. Practically speaking, this means that it will query for disabled ranks and omit the space query, which is expensive. Features: pool Required-githooks: true Change-Id: I5abe26c2a9a449a9d7c9c0867ae1fff1de9685d5 Signed-off-by: Michael MacDonald --- src/control/cmd/daos/pool.go | 32 +- src/control/cmd/daos/pretty/pool.go | 29 +- src/control/cmd/daos/pretty/pool_test.go | 29 +- src/control/cmd/dmg/pool.go | 18 +- src/control/cmd/dmg/pool_test.go | 39 +- src/control/common/proto/mgmt/pool.pb.go | 371 ++- src/control/common/proto/mgmt/svc.pb.go | 4 +- src/control/common/proto/mgmt/system.pb.go | 4 +- src/control/common/proto/srv/srv.pb.go | 4 +- src/control/lib/control/pool.go | 12 +- src/control/lib/control/pool_test.go | 7 +- src/control/lib/daos/pool.go | 125 + src/control/lib/daos/pool_test.go | 158 + src/include/daos_pool.h | 14 +- src/mgmt/pool.pb-c.c | 3053 +++++++++++++------- src/mgmt/pool.pb-c.h | 31 +- src/mgmt/srv_drpc.c | 14 +- src/mgmt/tests/srv_drpc_tests.c | 193 +- src/proto/mgmt/pool.proto | 4 +- 19 files changed, 2668 insertions(+), 1473 deletions(-) diff --git a/src/control/cmd/daos/pool.go b/src/control/cmd/daos/pool.go index 320957b8cf4c..24b21fb55131 100644 --- a/src/control/cmd/daos/pool.go +++ b/src/control/cmd/daos/pool.go @@ -194,6 +194,7 @@ type poolQueryCmd struct { poolBaseCmd ShowEnabledRanks bool `short:"e" long:"show-enabled" description:"Show engine unique identifiers (ranks) which are enabled"` ShowDisabledRanks bool `short:"b" long:"show-disabled" description:"Show engine unique identifiers (ranks) which are disabled"` + HealthOnly bool `short:"t" long:"health-only" description:"Only perform pool health related queries"` } func convertPoolSpaceInfo(in *C.struct_daos_pool_space, mt C.uint) *daos.StorageUsageStats { @@ -238,6 +239,7 @@ func convertPoolRebuildStatus(in *C.struct_daos_rebuild_status) *daos.PoolRebuil func convertPoolInfo(pinfo *C.daos_pool_info_t) (*daos.PoolInfo, error) { poolInfo := new(daos.PoolInfo) + poolInfo.QueryMask = daos.PoolQueryMask(pinfo.pi_bits) poolInfo.UUID = uuid.Must(uuidFromC(pinfo.pi_uuid)) poolInfo.TotalTargets = uint32(pinfo.pi_ntargets) poolInfo.DisabledTargets = uint32(pinfo.pi_ndisabled) @@ -251,20 +253,16 @@ func convertPoolInfo(pinfo *C.daos_pool_info_t) (*daos.PoolInfo, error) { } poolInfo.Rebuild = convertPoolRebuildStatus(&pinfo.pi_rebuild_st) - poolInfo.TierStats = []*daos.StorageUsageStats{ - convertPoolSpaceInfo(&pinfo.pi_space, C.DAOS_MEDIA_SCM), - convertPoolSpaceInfo(&pinfo.pi_space, C.DAOS_MEDIA_NVME), + if poolInfo.QueryMask.HasOption("space") { + poolInfo.TierStats = []*daos.StorageUsageStats{ + convertPoolSpaceInfo(&pinfo.pi_space, C.DAOS_MEDIA_SCM), + convertPoolSpaceInfo(&pinfo.pi_space, C.DAOS_MEDIA_NVME), + } } return poolInfo, nil } -const ( - dpiQuerySpace = C.DPI_SPACE - dpiQueryRebuild = C.DPI_REBUILD_STATUS - dpiQueryAll = C.uint64_t(^uint64(0)) // DPI_ALL is -1 -) - func generateRankSet(ranklist *C.d_rank_list_t) string { if ranklist.rl_nr == 0 { return "" @@ -283,9 +281,19 @@ func generateRankSet(ranklist *C.d_rank_list_t) string { } func (cmd *poolQueryCmd) Execute(_ []string) error { + queryMask := daos.DefaultPoolQueryMask + if cmd.HealthOnly { + if !cmd.ShowEnabledRanks { + cmd.ShowDisabledRanks = true // enable for health queries + } + queryMask.SetQuerySpace(false) + } if cmd.ShowEnabledRanks && cmd.ShowDisabledRanks { return errors.New("show-enabled and show-disabled can't be used at the same time.") } + queryMask.SetQueryDisabledEngines(cmd.ShowDisabledRanks) + queryMask.SetQueryEnabledEngines(cmd.ShowEnabledRanks) + var rlPtr **C.d_rank_list_t = nil var rl *C.d_rank_list_t = nil @@ -300,10 +308,7 @@ func (cmd *poolQueryCmd) Execute(_ []string) error { defer cleanup() cPoolInfo := C.daos_pool_info_t{ - pi_bits: dpiQueryAll, - } - if cmd.ShowDisabledRanks { - cPoolInfo.pi_bits &= C.uint64_t(^(uint64(C.DPI_ENGINES_ENABLED))) + pi_bits: C.uint64_t(queryMask), } rc := C.daos_pool_query(cmd.cPoolHandle, rlPtr, &cPoolInfo, nil, nil) @@ -336,6 +341,7 @@ func (cmd *poolQueryCmd) Execute(_ []string) error { return err } + cmd.Debugf("Pool query options: %s", poolInfo.QueryMask) cmd.Info(bld.String()) return nil diff --git a/src/control/cmd/daos/pretty/pool.go b/src/control/cmd/daos/pretty/pool.go index 01a8d81bd0ea..37ec8be78996 100644 --- a/src/control/cmd/daos/pretty/pool.go +++ b/src/control/cmd/daos/pretty/pool.go @@ -46,15 +46,25 @@ func PrintPoolInfo(pi *daos.PoolInfo, out io.Writer) error { fmt.Fprintf(w, "Pool layout out of date (%d < %d) -- see `dmg pool upgrade` for details.\n", pi.PoolLayoutVer, pi.UpgradeLayoutVer) } - fmt.Fprintln(w, "Pool space info:") - if pi.EnabledRanks != nil { + fmt.Fprintln(w, "Pool health info:") + if pi.EnabledRanks != nil && pi.EnabledRanks.Count() > 0 { fmt.Fprintf(w, "- Enabled ranks: %s\n", pi.EnabledRanks) } - if pi.DisabledRanks != nil { + if pi.DisabledRanks != nil && pi.DisabledRanks.Count() > 0 { fmt.Fprintf(w, "- Disabled ranks: %s\n", pi.DisabledRanks) } - fmt.Fprintf(w, "- Target(VOS) count:%d\n", pi.ActiveTargets) - if pi.TierStats != nil { + if pi.Rebuild != nil { + if pi.Rebuild.Status == 0 { + fmt.Fprintf(w, "- Rebuild %s, %d objs, %d recs\n", + pi.Rebuild.State, pi.Rebuild.Objects, pi.Rebuild.Records) + } else { + fmt.Fprintf(w, "- Rebuild failed, status=%d\n", pi.Rebuild.Status) + } + } + + if pi.QueryMask.HasOption("space") && pi.TierStats != nil { + fmt.Fprintln(w, "Pool space info:") + fmt.Fprintf(w, "- Target(VOS) count:%d\n", pi.ActiveTargets) for tierIdx, tierStats := range pi.TierStats { fmt.Fprintln(w, getTierNameText(tierIdx)) fmt.Fprintf(w, " Total size: %s\n", humanize.Bytes(tierStats.Total)) @@ -63,15 +73,6 @@ func PrintPoolInfo(pi *daos.PoolInfo, out io.Writer) error { humanize.Bytes(tierStats.Max), humanize.Bytes(tierStats.Mean)) } } - if pi.Rebuild != nil { - if pi.Rebuild.Status == 0 { - fmt.Fprintf(w, "Rebuild %s, %d objs, %d recs\n", - pi.Rebuild.State, pi.Rebuild.Objects, pi.Rebuild.Records) - } else { - fmt.Fprintf(w, "Rebuild failed, status=%d\n", pi.Rebuild.Status) - } - } - return w.Err } diff --git a/src/control/cmd/daos/pretty/pool_test.go b/src/control/cmd/daos/pretty/pool_test.go index ef10485b00ee..41efed524806 100644 --- a/src/control/cmd/daos/pretty/pool_test.go +++ b/src/control/cmd/daos/pretty/pool_test.go @@ -31,12 +31,12 @@ func TestPretty_PrintPoolInfo(t *testing.T) { pi: &daos.PoolInfo{}, expPrintStr: fmt.Sprintf(` Pool %s, ntarget=0, disabled=0, leader=0, version=0, state=Creating -Pool space info: -- Target(VOS) count:0 +Pool health info: `, uuid.Nil.String()), }, "normal response": { pi: &daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateDegraded, UUID: poolUUID, TotalTargets: 2, @@ -65,6 +65,8 @@ Pool space info: expPrintStr: fmt.Sprintf(` Pool %s, ntarget=2, disabled=1, leader=42, version=100, state=Degraded Pool layout out of date (1 < 2) -- see `+backtickStr+` for details. +Pool health info: +- Rebuild busy, 42 objs, 21 recs Pool space info: - Target(VOS) count:1 - Storage tier 0 (SCM): @@ -73,11 +75,11 @@ Pool space info: - Storage tier 1 (NVMe): Total size: 2 B Free: 1 B, min:0 B, max:0 B, mean:0 B -Rebuild busy, 42 objs, 21 recs `, poolUUID.String()), }, "normal response; enabled ranks": { pi: &daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateDegraded, UUID: poolUUID, TotalTargets: 2, @@ -107,8 +109,10 @@ Rebuild busy, 42 objs, 21 recs expPrintStr: fmt.Sprintf(` Pool %s, ntarget=2, disabled=1, leader=42, version=100, state=Degraded Pool layout out of date (1 < 2) -- see `+backtickStr+` for details. -Pool space info: +Pool health info: - Enabled ranks: 0-2 +- Rebuild busy, 42 objs, 21 recs +Pool space info: - Target(VOS) count:1 - Storage tier 0 (SCM): Total size: 2 B @@ -116,11 +120,11 @@ Pool space info: - Storage tier 1 (NVMe): Total size: 2 B Free: 1 B, min:0 B, max:0 B, mean:0 B -Rebuild busy, 42 objs, 21 recs `, poolUUID.String()), }, "normal response; disabled ranks": { pi: &daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateDegraded, UUID: poolUUID, TotalTargets: 2, @@ -150,8 +154,10 @@ Rebuild busy, 42 objs, 21 recs expPrintStr: fmt.Sprintf(` Pool %s, ntarget=2, disabled=1, leader=42, version=100, state=Degraded Pool layout out of date (1 < 2) -- see `+backtickStr+` for details. -Pool space info: +Pool health info: - Disabled ranks: 0-1,3 +- Rebuild busy, 42 objs, 21 recs +Pool space info: - Target(VOS) count:1 - Storage tier 0 (SCM): Total size: 2 B @@ -159,11 +165,11 @@ Pool space info: - Storage tier 1 (NVMe): Total size: 2 B Free: 1 B, min:0 B, max:0 B, mean:0 B -Rebuild busy, 42 objs, 21 recs `, poolUUID.String()), }, "unknown/invalid rebuild state response": { pi: &daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateDegraded, UUID: poolUUID, TotalTargets: 2, @@ -193,8 +199,10 @@ Rebuild busy, 42 objs, 21 recs expPrintStr: fmt.Sprintf(` Pool %s, ntarget=2, disabled=1, leader=42, version=100, state=Degraded Pool layout out of date (1 < 2) -- see `+backtickStr+` for details. -Pool space info: +Pool health info: - Disabled ranks: 0-1,3 +- Rebuild unknown, 42 objs, 21 recs +Pool space info: - Target(VOS) count:1 - Storage tier 0 (SCM): Total size: 2 B @@ -202,11 +210,11 @@ Pool space info: - Storage tier 1 (NVMe): Total size: 2 B Free: 1 B, min:0 B, max:0 B, mean:0 B -Rebuild unknown, 42 objs, 21 recs `, poolUUID.String()), }, "rebuild failed": { pi: &daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateDegraded, UUID: poolUUID, TotalTargets: 2, @@ -236,6 +244,8 @@ Rebuild unknown, 42 objs, 21 recs expPrintStr: fmt.Sprintf(` Pool %s, ntarget=2, disabled=1, leader=42, version=100, state=Degraded Pool layout out of date (1 < 2) -- see `+backtickStr+` for details. +Pool health info: +- Rebuild failed, status=2 Pool space info: - Target(VOS) count:1 - Storage tier 0 (SCM): @@ -244,7 +254,6 @@ Pool space info: - Storage tier 1 (NVMe): Total size: 2 B Free: 1 B, min:0 B, max:0 B, mean:0 B -Rebuild failed, status=2 `, poolUUID.String()), }, } { diff --git a/src/control/cmd/dmg/pool.go b/src/control/cmd/dmg/pool.go index d327751fe972..67ed8a8bf453 100644 --- a/src/control/cmd/dmg/pool.go +++ b/src/control/cmd/dmg/pool.go @@ -1,5 +1,5 @@ // -// (C) Copyright 2019-2023 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -633,20 +633,28 @@ type PoolQueryCmd struct { poolCmd ShowEnabledRanks bool `short:"e" long:"show-enabled" description:"Show engine unique identifiers (ranks) which are enabled"` ShowDisabledRanks bool `short:"b" long:"show-disabled" description:"Show engine unique identifiers (ranks) which are disabled"` + HealthOnly bool `short:"t" long:"health-only" description:"Only perform pool health related queries"` } // Execute is run when PoolQueryCmd subcommand is activated func (cmd *PoolQueryCmd) Execute(args []string) error { req := &control.PoolQueryReq{ - ID: cmd.PoolID().String(), + ID: cmd.PoolID().String(), + QueryMask: daos.DefaultPoolQueryMask, } + if cmd.HealthOnly { + if !cmd.ShowEnabledRanks { + cmd.ShowDisabledRanks = true // enable for health queries + } + req.QueryMask.SetQuerySpace(false) + } // TODO (DAOS-10250) The two options should not be incompatible (i.e. engine limitation) if cmd.ShowEnabledRanks && cmd.ShowDisabledRanks { return errIncompatFlags("show-enabled-ranks", "show-disabled-ranks") } - req.IncludeEnabledRanks = cmd.ShowEnabledRanks - req.IncludeDisabledRanks = cmd.ShowDisabledRanks + req.QueryMask.SetQueryEnabledEngines(cmd.ShowEnabledRanks) + req.QueryMask.SetQueryDisabledEngines(cmd.ShowDisabledRanks) resp, err := control.PoolQuery(cmd.MustLogCtx(), cmd.ctlInvoker, req) @@ -662,6 +670,8 @@ func (cmd *PoolQueryCmd) Execute(args []string) error { if err := pretty.PrintPoolQueryResponse(resp, &bld); err != nil { return err } + + cmd.Debugf("Pool query options: %s", resp.PoolInfo.QueryMask) cmd.Info(bld.String()) return nil } diff --git a/src/control/cmd/dmg/pool_test.go b/src/control/cmd/dmg/pool_test.go index adc6158de19c..239d8fae760d 100644 --- a/src/control/cmd/dmg/pool_test.go +++ b/src/control/cmd/dmg/pool_test.go @@ -187,6 +187,12 @@ func TestPoolCommands(t *testing.T) { return prop } + setQueryMask := func(xfrm func(qm *daos.PoolQueryMask)) daos.PoolQueryMask { + qm := daos.DefaultPoolQueryMask + xfrm(&qm) + return qm + } + runCmdTests(t, []cmdTest{ { "Pool create with extra argument", @@ -956,7 +962,8 @@ func TestPoolCommands(t *testing.T) { "pool query 12345678-1234-1234-1234-1234567890ab", strings.Join([]string{ printRequest(t, &control.PoolQueryReq{ - ID: "12345678-1234-1234-1234-1234567890ab", + ID: "12345678-1234-1234-1234-1234567890ab", + QueryMask: daos.DefaultPoolQueryMask, }), }, " "), nil, @@ -966,8 +973,8 @@ func TestPoolCommands(t *testing.T) { "pool query --show-enabled 12345678-1234-1234-1234-1234567890ab", strings.Join([]string{ printRequest(t, &control.PoolQueryReq{ - ID: "12345678-1234-1234-1234-1234567890ab", - IncludeEnabledRanks: true, + ID: "12345678-1234-1234-1234-1234567890ab", + QueryMask: setQueryMask(func(qm *daos.PoolQueryMask) { qm.SetQueryEnabledEngines(true) }), }), }, " "), nil, @@ -977,8 +984,8 @@ func TestPoolCommands(t *testing.T) { "pool query -e 12345678-1234-1234-1234-1234567890ab", strings.Join([]string{ printRequest(t, &control.PoolQueryReq{ - ID: "12345678-1234-1234-1234-1234567890ab", - IncludeEnabledRanks: true, + ID: "12345678-1234-1234-1234-1234567890ab", + QueryMask: setQueryMask(func(qm *daos.PoolQueryMask) { qm.SetQueryEnabledEngines(true) }), }), }, " "), nil, @@ -988,8 +995,8 @@ func TestPoolCommands(t *testing.T) { "pool query --show-disabled 12345678-1234-1234-1234-1234567890ab", strings.Join([]string{ printRequest(t, &control.PoolQueryReq{ - ID: "12345678-1234-1234-1234-1234567890ab", - IncludeDisabledRanks: true, + ID: "12345678-1234-1234-1234-1234567890ab", + QueryMask: setQueryMask(func(qm *daos.PoolQueryMask) { qm.SetQueryDisabledEngines(true) }), }), }, " "), nil, @@ -999,8 +1006,19 @@ func TestPoolCommands(t *testing.T) { "pool query -b 12345678-1234-1234-1234-1234567890ab", strings.Join([]string{ printRequest(t, &control.PoolQueryReq{ - ID: "12345678-1234-1234-1234-1234567890ab", - IncludeDisabledRanks: true, + ID: "12345678-1234-1234-1234-1234567890ab", + QueryMask: setQueryMask(func(qm *daos.PoolQueryMask) { qm.SetQueryDisabledEngines(true) }), + }), + }, " "), + nil, + }, + { + "Query pool for health only", + "pool query --health-only 12345678-1234-1234-1234-1234567890ab", + strings.Join([]string{ + printRequest(t, &control.PoolQueryReq{ + ID: "12345678-1234-1234-1234-1234567890ab", + QueryMask: setQueryMask(func(qm *daos.PoolQueryMask) { qm.SetQueryDisabledEngines(true); qm.SetQuerySpace(false) }), }), }, " "), nil, @@ -1010,7 +1028,8 @@ func TestPoolCommands(t *testing.T) { "pool query test_label", strings.Join([]string{ printRequest(t, &control.PoolQueryReq{ - ID: "test_label", + ID: "test_label", + QueryMask: daos.DefaultPoolQueryMask, }), }, " "), nil, diff --git a/src/control/common/proto/mgmt/pool.pb.go b/src/control/common/proto/mgmt/pool.pb.go index e8bcd401238e..b699d1f55dc2 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-2023 Intel Corporation. +// (C) Copyright 2019-2024 Intel Corporation. // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -1591,11 +1591,10 @@ type PoolQueryReq struct { 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 - IncludeEnabledRanks bool `protobuf:"varint,4,opt,name=include_enabled_ranks,json=includeEnabledRanks,proto3" json:"include_enabled_ranks,omitempty"` // True if the list of enabled ranks shall be returned - IncludeDisabledRanks bool `protobuf:"varint,5,opt,name=include_disabled_ranks,json=includeDisabledRanks,proto3" json:"include_disabled_ranks,omitempty"` // True if the list of disabled ranks shall be returned + 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() { @@ -1651,18 +1650,11 @@ func (x *PoolQueryReq) GetSvcRanks() []uint32 { return nil } -func (x *PoolQueryReq) GetIncludeEnabledRanks() bool { +func (x *PoolQueryReq) GetQueryMask() uint64 { if x != nil { - return x.IncludeEnabledRanks + return x.QueryMask } - return false -} - -func (x *PoolQueryReq) GetIncludeDisabledRanks() bool { - if x != nil { - return x.IncludeDisabledRanks - } - return false + return 0 } // StorageUsageStats represents usage statistics for a storage subsystem. @@ -1849,6 +1841,7 @@ type PoolQueryResp struct { 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 } func (x *PoolQueryResp) Reset() { @@ -2009,6 +2002,13 @@ func (x *PoolQueryResp) GetSvcReps() []uint32 { return nil } +func (x *PoolQueryResp) GetQueryMask() uint64 { + if x != nil { + return x.QueryMask + } + return 0 +} + type PoolProperty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3002,179 +3002,176 @@ var file_mgmt_pool_proto_rawDesc = []byte{ 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, 0xb7, 0x01, 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, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x72, - 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x73, - 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, 0xa1, 0x05, - 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, 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, + 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, 0xda, 0x02, 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, 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, + 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, 0xc0, 0x05, 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, 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, 0xda, 0x02, 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, 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 ( diff --git a/src/control/common/proto/mgmt/svc.pb.go b/src/control/common/proto/mgmt/svc.pb.go index 2004e9b6f607..59f66c18efe8 100644 --- a/src/control/common/proto/mgmt/svc.pb.go +++ b/src/control/common/proto/mgmt/svc.pb.go @@ -6,8 +6,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.5.0 +// protoc-gen-go v1.31.0 +// protoc v3.21.12 // source: mgmt/svc.proto package mgmt diff --git a/src/control/common/proto/mgmt/system.pb.go b/src/control/common/proto/mgmt/system.pb.go index 9a23ad39fdea..b4d66dd73646 100644 --- a/src/control/common/proto/mgmt/system.pb.go +++ b/src/control/common/proto/mgmt/system.pb.go @@ -6,8 +6,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.5.0 +// protoc-gen-go v1.31.0 +// protoc v3.21.12 // source: mgmt/system.proto package mgmt diff --git a/src/control/common/proto/srv/srv.pb.go b/src/control/common/proto/srv/srv.pb.go index ae26aad0aad6..232a011a42e7 100644 --- a/src/control/common/proto/srv/srv.pb.go +++ b/src/control/common/proto/srv/srv.pb.go @@ -8,8 +8,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.5.0 +// protoc-gen-go v1.31.0 +// protoc v3.21.12 // source: srv/srv.proto package srv diff --git a/src/control/lib/control/pool.go b/src/control/lib/control/pool.go index ec446da27e29..3c3cb8a146d3 100644 --- a/src/control/lib/control/pool.go +++ b/src/control/lib/control/pool.go @@ -442,9 +442,8 @@ type ( // PoolQueryReq contains the parameters for a pool query request. PoolQueryReq struct { poolRequest - ID string - IncludeEnabledRanks bool - IncludeDisabledRanks bool + ID string + QueryMask daos.PoolQueryMask } // PoolQueryResp contains the pool query response. @@ -558,10 +557,9 @@ func PoolQuery(ctx context.Context, rpcClient UnaryInvoker, req *PoolQueryReq) ( // that will be filled out with the query details. func poolQueryInt(ctx context.Context, rpcClient UnaryInvoker, req *PoolQueryReq, resp *PoolQueryResp) (*PoolQueryResp, error) { pbReq := &mgmtpb.PoolQueryReq{ - Sys: req.getSystem(rpcClient), - Id: req.ID, - IncludeEnabledRanks: req.IncludeEnabledRanks, - IncludeDisabledRanks: req.IncludeDisabledRanks, + Sys: req.getSystem(rpcClient), + Id: req.ID, + QueryMask: uint64(req.QueryMask), } req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { return mgmtpb.NewMgmtSvcClient(conn).PoolQuery(ctx, pbReq) diff --git a/src/control/lib/control/pool_test.go b/src/control/lib/control/pool_test.go index 36f47683dd90..4f14a18739da 100644 --- a/src/control/lib/control/pool_test.go +++ b/src/control/lib/control/pool_test.go @@ -798,6 +798,7 @@ func TestControl_PoolQueryResp_MarshalJSON(t *testing.T) { pqr: &PoolQueryResp{ Status: 0, PoolInfo: daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateReady, UUID: poolUUID, TotalTargets: 1, @@ -806,16 +807,18 @@ func TestControl_PoolQueryResp_MarshalJSON(t *testing.T) { DisabledTargets: 4, Version: 5, ServiceLeader: 6, + ServiceReplicas: []ranklist.Rank{0, 1, 2}, PoolLayoutVer: 7, UpgradeLayoutVer: 8, }, }, - exp: `{"enabled_ranks":null,"disabled_ranks":null,"status":0,"state":"Ready","uuid":"` + poolUUID.String() + `","total_targets":1,"active_targets":2,"total_engines":3,"disabled_targets":4,"version":5,"svc_ldr":6,"svc_reps":null,"rebuild":null,"tier_stats":null,"pool_layout_ver":7,"upgrade_layout_ver":8}`, + exp: `{"enabled_ranks":null,"disabled_ranks":null,"status":0,"query_mask":"space,rebuild","state":"Ready","uuid":"` + poolUUID.String() + `","total_targets":1,"active_targets":2,"total_engines":3,"disabled_targets":4,"version":5,"svc_ldr":6,"svc_reps":[0,1,2],"rebuild":null,"tier_stats":null,"pool_layout_ver":7,"upgrade_layout_ver":8}`, }, "valid rankset": { pqr: &PoolQueryResp{ Status: 0, PoolInfo: daos.PoolInfo{ + QueryMask: daos.DefaultPoolQueryMask, State: daos.PoolServiceStateReady, UUID: poolUUID, TotalTargets: 1, @@ -830,7 +833,7 @@ func TestControl_PoolQueryResp_MarshalJSON(t *testing.T) { UpgradeLayoutVer: 8, }, }, - exp: `{"enabled_ranks":[0,1,2,3,5],"disabled_ranks":[],"status":0,"state":"Ready","uuid":"` + poolUUID.String() + `","total_targets":1,"active_targets":2,"total_engines":3,"disabled_targets":4,"version":5,"svc_ldr":6,"svc_reps":null,"rebuild":null,"tier_stats":null,"pool_layout_ver":7,"upgrade_layout_ver":8}`, + exp: `{"enabled_ranks":[0,1,2,3,5],"disabled_ranks":[],"status":0,"query_mask":"space,rebuild","state":"Ready","uuid":"` + poolUUID.String() + `","total_targets":1,"active_targets":2,"total_engines":3,"disabled_targets":4,"version":5,"svc_ldr":6,"rebuild":null,"tier_stats":null,"pool_layout_ver":7,"upgrade_layout_ver":8}`, }, } { t.Run(name, func(t *testing.T) { diff --git a/src/control/lib/daos/pool.go b/src/control/lib/daos/pool.go index a0ce38acda30..5ee2ec175fab 100644 --- a/src/control/lib/daos/pool.go +++ b/src/control/lib/daos/pool.go @@ -18,6 +18,13 @@ import ( "github.com/daos-stack/daos/src/control/lib/ranklist" ) +/* +#include + +#include +*/ +import "C" + type ( // PoolTierUsage describes usage of a single pool storage tier in // a simpler format. @@ -53,6 +60,7 @@ type ( // PoolInfo contains information about the pool. PoolInfo struct { + QueryMask PoolQueryMask `json:"query_mask"` State PoolServiceState `json:"state"` UUID uuid.UUID `json:"uuid"` Label string `json:"label,omitempty"` @@ -87,8 +95,125 @@ type ( Free uint64 `json:"free"` MediaType StorageMediaType `json:"media_type"` } + + // PoolQueryMask implements a bitmask for pool query options. + PoolQueryMask C.uint64_t ) +// DefaultPoolQueryMask defines the default pool query mask. +const DefaultPoolQueryMask = PoolQueryMask(^uint64(0) &^ (C.DPI_ENGINES_ENABLED | C.DPI_ENGINES_DISABLED)) + +var poolQueryOptMap = map[C.int]string{ + C.DPI_SPACE: "space", + C.DPI_REBUILD_STATUS: "rebuild", + C.DPI_ENGINES_ENABLED: "enabled_engines", + C.DPI_ENGINES_DISABLED: "disabled_engines", +} + +// SetQueryAll sets the pool query mask to include all pool query options. +func (pqm *PoolQueryMask) SetQueryAll(enabled bool) { + if enabled { + *pqm = PoolQueryMask(^uint64(0)) // DPI_ALL is -1 + } else { + *pqm = 0 + } +} + +// SetQuerySpace toggles the pool space query option. +func (pqm *PoolQueryMask) SetQuerySpace(enabled bool) { + if enabled { + *pqm |= PoolQueryMask(C.DPI_SPACE) + } else { + *pqm &^= PoolQueryMask(C.DPI_SPACE) + } +} + +// SetQueryRebuild toggles the pool rebuild query option. +func (pqm *PoolQueryMask) SetQueryRebuild(enabled bool) { + if enabled { + *pqm |= PoolQueryMask(C.DPI_REBUILD_STATUS) + } else { + *pqm &^= PoolQueryMask(C.DPI_REBUILD_STATUS) + } +} + +// SetQueryEnabledEngines toggles the engines enabled query option. +func (pqm *PoolQueryMask) SetQueryEnabledEngines(enabled bool) { + if enabled { + *pqm |= PoolQueryMask(C.DPI_ENGINES_ENABLED) + } else { + *pqm &^= PoolQueryMask(C.DPI_ENGINES_ENABLED) + } +} + +// SetQueryDisabledEngines toggles the engines disabled query option. +func (pqm *PoolQueryMask) SetQueryDisabledEngines(enabled bool) { + if enabled { + *pqm |= PoolQueryMask(C.DPI_ENGINES_DISABLED) + } else { + *pqm &^= PoolQueryMask(C.DPI_ENGINES_DISABLED) + } +} + +// HasOption returns true if the pool query mask includes the specified option. +func (pqm PoolQueryMask) HasOption(optName string) bool { + return strings.Contains(pqm.String(), optName) +} + +func (pqm PoolQueryMask) String() string { + var flags []string + for i := 0; i < 64; i++ { + switch i { + case C.DPI_SPACE: + if pqm&PoolQueryMask(C.DPI_SPACE) != 0 { + flags = append(flags, poolQueryOptMap[C.DPI_SPACE]) + } + case C.DPI_REBUILD_STATUS: + if pqm&PoolQueryMask(C.DPI_REBUILD_STATUS) != 0 { + flags = append(flags, poolQueryOptMap[C.DPI_REBUILD_STATUS]) + } + case C.DPI_ENGINES_ENABLED: + if pqm&PoolQueryMask(C.DPI_ENGINES_ENABLED) != 0 { + flags = append(flags, poolQueryOptMap[C.DPI_ENGINES_ENABLED]) + } + case C.DPI_ENGINES_DISABLED: + if pqm&PoolQueryMask(C.DPI_ENGINES_DISABLED) != 0 { + flags = append(flags, poolQueryOptMap[C.DPI_ENGINES_DISABLED]) + } + } + } + return strings.Join(flags, ",") +} + +func (pqm PoolQueryMask) MarshalJSON() ([]byte, error) { + return json.Marshal(pqm.String()) +} + +func (pqm *PoolQueryMask) UnmarshalJSON(data []byte) error { + if len(data) == 0 { + *pqm = 0 + return nil + } + + val, err := strconv.ParseUint(string(data), 10, 64) + if err == nil { + *pqm = PoolQueryMask(val) + return nil + } + + for _, opt := range strings.Split(string(data), ",") { + for k, v := range poolQueryOptMap { + if v == opt { + *pqm |= PoolQueryMask(k) + goto next + } + } + return errors.Errorf("invalid pool query option: %s", opt) + next: + } + return nil +} + func (srs *StorageUsageStats) calcImbalance(targCount uint32) uint32 { spread := srs.Max - srs.Min return uint32((float64(spread) / (float64(srs.Total) / float64(targCount))) * 100) diff --git a/src/control/lib/daos/pool_test.go b/src/control/lib/daos/pool_test.go index 5e57f6b56e41..90d1f9c73b3a 100644 --- a/src/control/lib/daos/pool_test.go +++ b/src/control/lib/daos/pool_test.go @@ -11,6 +11,9 @@ import ( "github.com/dustin/go-humanize" "github.com/google/go-cmp/cmp" + "github.com/pkg/errors" + + "github.com/daos-stack/daos/src/control/common/test" ) func TestDaos_PoolInfo_Usage(t *testing.T) { @@ -102,3 +105,158 @@ func TestDaos_PoolInfo_Usage(t *testing.T) { }) } } + +func genTestMask(xfrm func(pqm *PoolQueryMask)) PoolQueryMask { + testMask := PoolQueryMask(0) + xfrm(&testMask) + return testMask +} + +func TestDaos_PoolQueryMask(t *testing.T) { + for name, tc := range map[string]struct { + testMask PoolQueryMask + expString string + }{ + "no mask": { + expString: "", + }, + "set query all=true": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryAll(true) + }), + expString: "space,rebuild,enabled_engines,disabled_engines", + }, + "set query all=false": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + *pqm = PoolQueryMask(^uint64(0)) + pqm.SetQueryAll(false) + }), + expString: "", + }, + "set query space=true": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQuerySpace(true) + }), + expString: "space", + }, + "set query space=false": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryAll(true) + pqm.SetQuerySpace(false) + }), + expString: "rebuild,enabled_engines,disabled_engines", + }, + "set query rebuild=true": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryRebuild(true) + }), + expString: "rebuild", + }, + "set query rebuild=false": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryAll(true) + pqm.SetQueryRebuild(false) + }), + expString: "space,enabled_engines,disabled_engines", + }, + "set query engines_enabled=true": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryEnabledEngines(true) + }), + expString: "enabled_engines", + }, + "set query engines_enabled=false": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryAll(true) + pqm.SetQueryEnabledEngines(false) + }), + expString: "space,rebuild,disabled_engines", + }, + "set query engines_disabled=true": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryDisabledEngines(true) + }), + expString: "disabled_engines", + }, + "set query engines_disabled=false": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryAll(true) + pqm.SetQueryDisabledEngines(false) + }), + expString: "space,rebuild,enabled_engines", + }, + } { + t.Run(name, func(t *testing.T) { + if diff := cmp.Diff(tc.expString, tc.testMask.String()); diff != "" { + t.Fatalf("Unexpected response (-want, +got):\n%s\n", diff) + } + }) + } +} + +func TestDaos_PoolQueryMaskMarshalJSON(t *testing.T) { + // NB: The MarshalJSON implementation uses the stringer, so + // there's no point in testing all of the options here. + for name, tc := range map[string]struct { + testMask PoolQueryMask + expJSON []byte + }{ + "no mask": { + expJSON: []byte(`""`), + }, + "set query all=true": { + testMask: genTestMask(func(pqm *PoolQueryMask) { + pqm.SetQueryAll(true) + }), + expJSON: []byte(`"space,rebuild,enabled_engines,disabled_engines"`), + }, + } { + t.Run(name, func(t *testing.T) { + gotJSON, err := tc.testMask.MarshalJSON() + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + if diff := cmp.Diff(tc.expJSON, gotJSON); diff != "" { + t.Fatalf("Unexpected response (-want, +got):\n%s\n", diff) + } + }) + } +} + +func TestDaos_PoolQueryMaskUnmarshalJSON(t *testing.T) { + for name, tc := range map[string]struct { + testData []byte + expString string + expErr error + }{ + "unknown value": { + testData: []byte("rebuild,foo"), + expErr: errors.New("foo"), + }, + "empty value": { + expString: "", + }, + "uint64 value": { + testData: []byte("18446744073709551603"), + expString: "space,rebuild", + }, + "string values": { + testData: []byte("rebuild,disabled_engines"), + expString: "rebuild,disabled_engines", + }, + } { + t.Run(name, func(t *testing.T) { + var testMask PoolQueryMask + + gotErr := testMask.UnmarshalJSON(tc.testData) + test.CmpErr(t, tc.expErr, gotErr) + if tc.expErr != nil { + return + } + + if diff := cmp.Diff(tc.expString, testMask.String()); diff != "" { + t.Fatalf("Unexpected mask after UnmarshalJSON (-want, +got):\n%s\n", diff) + } + }) + } +} diff --git a/src/include/daos_pool.h b/src/include/daos_pool.h index 99173ea6638f..73f443689131 100644 --- a/src/include/daos_pool.h +++ b/src/include/daos_pool.h @@ -155,15 +155,15 @@ struct daos_rebuild_status { */ enum daos_pool_info_bit { /** true to query pool space usage false to not query space usage. */ - DPI_SPACE = 1ULL << 0, + DPI_SPACE = 1ULL << 0, /** true to query pool rebuild status. false to not query rebuild status. */ - DPI_REBUILD_STATUS = 1ULL << 1, - /** true to return (in \a ranks) engines with all targets enabled (up or draining). - * false to return (in \a ranks) the engines with some or all targets disabled (down). - */ - DPI_ENGINES_ENABLED = 1ULL << 2, + DPI_REBUILD_STATUS = 1ULL << 1, + /** true to include (in \a ranks) engines with all targets enabled (up or draining). */ + DPI_ENGINES_ENABLED = 1ULL << 2, + /** true to include (in \a ranks) engines with some or all targets disabled (down). */ + DPI_ENGINES_DISABLED = 1ULL << 3, /** query all above optional info */ - DPI_ALL = -1, + DPI_ALL = -1, }; /** diff --git a/src/mgmt/pool.pb-c.c b/src/mgmt/pool.pb-c.c index 84b773ceac36..3859da6374c3 100644 --- a/src/mgmt/pool.pb-c.c +++ b/src/mgmt/pool.pb-c.c @@ -1504,84 +1504,176 @@ void mgmt__pool_query_target_resp__free_unpacked assert(message->base.descriptor == &mgmt__pool_query_target_resp__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor mgmt__pool_create_req__field_descriptors[14] = { - { - "uuid", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, uuid), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "sys", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, sys), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "user", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, user), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "usergroup", 4, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, usergroup), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "acl", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Mgmt__PoolCreateReq, n_acl), offsetof(Mgmt__PoolCreateReq, acl), NULL, - &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "properties", 6, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Mgmt__PoolCreateReq, n_properties), offsetof(Mgmt__PoolCreateReq, properties), - &mgmt__pool_property__descriptor, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "faultDomains", 7, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolCreateReq, n_faultdomains), offsetof(Mgmt__PoolCreateReq, faultdomains), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "numsvcreps", 8, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, numsvcreps), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "totalbytes", 9, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, totalbytes), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tierratio", 10, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_DOUBLE, - offsetof(Mgmt__PoolCreateReq, n_tierratio), offsetof(Mgmt__PoolCreateReq, tierratio), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "numranks", 11, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, numranks), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "ranks", 12, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolCreateReq, n_ranks), offsetof(Mgmt__PoolCreateReq, ranks), NULL, NULL, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tierbytes", 13, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT64, - offsetof(Mgmt__PoolCreateReq, n_tierbytes), offsetof(Mgmt__PoolCreateReq, tierbytes), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "meta_blob_size", 14, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateReq, meta_blob_size), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_create_req__field_descriptors[14] = +{ + { + "uuid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, uuid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sys", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, sys), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "user", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, user), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "usergroup", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, usergroup), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "acl", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Mgmt__PoolCreateReq, n_acl), + offsetof(Mgmt__PoolCreateReq, acl), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "properties", + 6, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__PoolCreateReq, n_properties), + offsetof(Mgmt__PoolCreateReq, properties), + &mgmt__pool_property__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "faultDomains", + 7, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolCreateReq, n_faultdomains), + offsetof(Mgmt__PoolCreateReq, faultdomains), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "numsvcreps", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, numsvcreps), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "totalbytes", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, totalbytes), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tierratio", + 10, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(Mgmt__PoolCreateReq, n_tierratio), + offsetof(Mgmt__PoolCreateReq, tierratio), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "numranks", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, numranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ranks", + 12, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolCreateReq, n_ranks), + offsetof(Mgmt__PoolCreateReq, ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tierbytes", + 13, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT64, + offsetof(Mgmt__PoolCreateReq, n_tierbytes), + offsetof(Mgmt__PoolCreateReq, tierbytes), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "meta_blob_size", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateReq, meta_blob_size), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_create_req__field_indices_by_name[] = { 4, /* field[4] = acl */ @@ -1619,41 +1711,80 @@ const ProtobufCMessageDescriptor mgmt__pool_create_req__descriptor = (ProtobufCMessageInit) mgmt__pool_create_req__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_create_resp__field_descriptors[6] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ldr", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateResp, svc_ldr), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_reps", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolCreateResp, n_svc_reps), offsetof(Mgmt__PoolCreateResp, svc_reps), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tgt_ranks", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolCreateResp, n_tgt_ranks), offsetof(Mgmt__PoolCreateResp, tgt_ranks), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tier_bytes", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT64, - offsetof(Mgmt__PoolCreateResp, n_tier_bytes), offsetof(Mgmt__PoolCreateResp, tier_bytes), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "meta_blob_size", 6, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolCreateResp, meta_blob_size), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_create_resp__field_descriptors[6] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ldr", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateResp, svc_ldr), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_reps", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolCreateResp, n_svc_reps), + offsetof(Mgmt__PoolCreateResp, svc_reps), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tgt_ranks", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolCreateResp, n_tgt_ranks), + offsetof(Mgmt__PoolCreateResp, tgt_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tier_bytes", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT64, + offsetof(Mgmt__PoolCreateResp, n_tier_bytes), + offsetof(Mgmt__PoolCreateResp, tier_bytes), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "meta_blob_size", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolCreateResp, meta_blob_size), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_create_resp__field_indices_by_name[] = { 5, /* field[5] = meta_blob_size */ @@ -1683,33 +1814,68 @@ const ProtobufCMessageDescriptor mgmt__pool_create_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_create_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_destroy_req__field_descriptors[5] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolDestroyReq, 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__PoolDestroyReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "force", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_BOOL, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolDestroyReq, force), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolDestroyReq, n_svc_ranks), offsetof(Mgmt__PoolDestroyReq, svc_ranks), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "recursive", 5, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_BOOL, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolDestroyReq, recursive), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_destroy_req__field_descriptors[5] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolDestroyReq, 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__PoolDestroyReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "force", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolDestroyReq, force), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolDestroyReq, n_svc_ranks), + offsetof(Mgmt__PoolDestroyReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "recursive", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolDestroyReq, recursive), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_destroy_req__field_indices_by_name[] = { 2, /* field[2] = force */ @@ -1776,83 +1942,148 @@ const ProtobufCMessageDescriptor mgmt__pool_destroy_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_destroy_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_evict_req__field_descriptors[7] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolEvictReq, 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__PoolEvictReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolEvictReq, n_svc_ranks), offsetof(Mgmt__PoolEvictReq, svc_ranks), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "handles", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_STRING, - offsetof(Mgmt__PoolEvictReq, n_handles), offsetof(Mgmt__PoolEvictReq, handles), NULL, - &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "destroy", 5, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_BOOL, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolEvictReq, destroy), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "force_destroy", 6, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_BOOL, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolEvictReq, force_destroy), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "machine", 7, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolEvictReq, machine), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_evict_req__field_indices_by_name[] = { - 4, /* field[4] = destroy */ - 5, /* field[5] = force_destroy */ - 3, /* field[3] = handles */ - 1, /* field[1] = id */ - 6, /* field[6] = machine */ - 2, /* field[2] = svc_ranks */ - 0, /* field[0] = sys */ -}; -static const ProtobufCIntRange mgmt__pool_evict_req__number_ranges[1 + 1] = {{1, 0}, {0, 7}}; -const ProtobufCMessageDescriptor mgmt__pool_evict_req__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolEvictReq", - "PoolEvictReq", - "Mgmt__PoolEvictReq", - "mgmt", - sizeof(Mgmt__PoolEvictReq), - 7, - mgmt__pool_evict_req__field_descriptors, - mgmt__pool_evict_req__field_indices_by_name, +static const ProtobufCFieldDescriptor mgmt__pool_evict_req__field_descriptors[7] = +{ + { + "sys", 1, - mgmt__pool_evict_req__number_ranges, - (ProtobufCMessageInit)mgmt__pool_evict_req__init, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolEvictReq, 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__PoolEvictReq, id), NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_evict_resp__field_descriptors[2] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolEvictResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "count", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolEvictResp, count), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolEvictReq, n_svc_ranks), + offsetof(Mgmt__PoolEvictReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "handles", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Mgmt__PoolEvictReq, n_handles), + offsetof(Mgmt__PoolEvictReq, handles), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "destroy", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolEvictReq, destroy), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "force_destroy", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolEvictReq, force_destroy), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "machine", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolEvictReq, machine), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_evict_req__field_indices_by_name[] = { + 4, /* field[4] = destroy */ + 5, /* field[5] = force_destroy */ + 3, /* field[3] = handles */ + 1, /* field[1] = id */ + 6, /* field[6] = machine */ + 2, /* field[2] = svc_ranks */ + 0, /* field[0] = sys */ +}; +static const ProtobufCIntRange mgmt__pool_evict_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor mgmt__pool_evict_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolEvictReq", + "PoolEvictReq", + "Mgmt__PoolEvictReq", + "mgmt", + sizeof(Mgmt__PoolEvictReq), + 7, + mgmt__pool_evict_req__field_descriptors, + mgmt__pool_evict_req__field_indices_by_name, + 1, mgmt__pool_evict_req__number_ranges, + (ProtobufCMessageInit) mgmt__pool_evict_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_evict_resp__field_descriptors[2] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolEvictResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "count", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolEvictResp, count), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_evict_resp__field_indices_by_name[] = { 1, /* field[1] = count */ @@ -1878,34 +2109,68 @@ const ProtobufCMessageDescriptor mgmt__pool_evict_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_evict_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_exclude_req__field_descriptors[5] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolExcludeReq, 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__PoolExcludeReq, 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__PoolExcludeReq, rank), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "targetidx", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolExcludeReq, n_targetidx), offsetof(Mgmt__PoolExcludeReq, targetidx), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolExcludeReq, n_svc_ranks), offsetof(Mgmt__PoolExcludeReq, svc_ranks), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_exclude_req__field_descriptors[5] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolExcludeReq, 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__PoolExcludeReq, 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__PoolExcludeReq, rank), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "targetidx", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolExcludeReq, n_targetidx), + offsetof(Mgmt__PoolExcludeReq, targetidx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolExcludeReq, n_svc_ranks), + offsetof(Mgmt__PoolExcludeReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_exclude_req__field_indices_by_name[] = { 1, /* field[1] = id */ @@ -1934,62 +2199,106 @@ const ProtobufCMessageDescriptor mgmt__pool_exclude_req__descriptor = (ProtobufCMessageInit) mgmt__pool_exclude_req__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_exclude_resp__field_descriptors[1] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolExcludeResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_exclude_resp__field_descriptors[1] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolExcludeResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_exclude_resp__field_indices_by_name[] = { - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange mgmt__pool_exclude_resp__number_ranges[1 + 1] = {{1, 0}, {0, 1}}; -const ProtobufCMessageDescriptor mgmt__pool_exclude_resp__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolExcludeResp", - "PoolExcludeResp", - "Mgmt__PoolExcludeResp", - "mgmt", - sizeof(Mgmt__PoolExcludeResp), - 1, - mgmt__pool_exclude_resp__field_descriptors, - mgmt__pool_exclude_resp__field_indices_by_name, + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange mgmt__pool_exclude_resp__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor mgmt__pool_exclude_resp__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolExcludeResp", + "PoolExcludeResp", + "Mgmt__PoolExcludeResp", + "mgmt", + sizeof(Mgmt__PoolExcludeResp), + 1, + mgmt__pool_exclude_resp__field_descriptors, + mgmt__pool_exclude_resp__field_indices_by_name, + 1, mgmt__pool_exclude_resp__number_ranges, + (ProtobufCMessageInit) mgmt__pool_exclude_resp__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_drain_req__field_descriptors[5] = +{ + { + "sys", 1, - mgmt__pool_exclude_resp__number_ranges, - (ProtobufCMessageInit)mgmt__pool_exclude_resp__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_drain_req__field_descriptors[5] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolDrainReq, 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__PoolDrainReq, 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__PoolDrainReq, rank), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "targetidx", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolDrainReq, n_targetidx), offsetof(Mgmt__PoolDrainReq, targetidx), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolDrainReq, n_svc_ranks), offsetof(Mgmt__PoolDrainReq, svc_ranks), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolDrainReq, 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__PoolDrainReq, 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__PoolDrainReq, rank), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "targetidx", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolDrainReq, n_targetidx), + offsetof(Mgmt__PoolDrainReq, targetidx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolDrainReq, n_svc_ranks), + offsetof(Mgmt__PoolDrainReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_drain_req__field_indices_by_name[] = { 1, /* field[1] = id */ @@ -2056,183 +2365,280 @@ const ProtobufCMessageDescriptor mgmt__pool_drain_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_drain_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_extend_req__field_descriptors[6] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolExtendReq, 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__PoolExtendReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "ranks", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolExtendReq, n_ranks), offsetof(Mgmt__PoolExtendReq, ranks), NULL, NULL, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolExtendReq, n_svc_ranks), offsetof(Mgmt__PoolExtendReq, svc_ranks), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tierbytes", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT64, - offsetof(Mgmt__PoolExtendReq, n_tierbytes), offsetof(Mgmt__PoolExtendReq, tierbytes), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "faultDomains", 6, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolExtendReq, n_faultdomains), offsetof(Mgmt__PoolExtendReq, faultdomains), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_extend_req__field_indices_by_name[] = { - 5, /* field[5] = faultDomains */ - 1, /* field[1] = id */ - 2, /* field[2] = ranks */ - 3, /* field[3] = svc_ranks */ - 0, /* field[0] = sys */ - 4, /* field[4] = tierbytes */ -}; -static const ProtobufCIntRange mgmt__pool_extend_req__number_ranges[1 + 1] = {{1, 0}, {0, 6}}; -const ProtobufCMessageDescriptor mgmt__pool_extend_req__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolExtendReq", - "PoolExtendReq", - "Mgmt__PoolExtendReq", - "mgmt", - sizeof(Mgmt__PoolExtendReq), - 6, - mgmt__pool_extend_req__field_descriptors, - mgmt__pool_extend_req__field_indices_by_name, - 1, - mgmt__pool_extend_req__number_ranges, - (ProtobufCMessageInit)mgmt__pool_extend_req__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_extend_resp__field_descriptors[2] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolExtendResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tier_bytes", 2, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT64, - offsetof(Mgmt__PoolExtendResp, n_tier_bytes), offsetof(Mgmt__PoolExtendResp, tier_bytes), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_extend_resp__field_indices_by_name[] = { - 0, /* field[0] = status */ - 1, /* field[1] = tier_bytes */ -}; -static const ProtobufCIntRange mgmt__pool_extend_resp__number_ranges[1 + 1] = {{1, 0}, {0, 2}}; -const ProtobufCMessageDescriptor mgmt__pool_extend_resp__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolExtendResp", - "PoolExtendResp", - "Mgmt__PoolExtendResp", - "mgmt", - sizeof(Mgmt__PoolExtendResp), - 2, - mgmt__pool_extend_resp__field_descriptors, - mgmt__pool_extend_resp__field_indices_by_name, - 1, - mgmt__pool_extend_resp__number_ranges, - (ProtobufCMessageInit)mgmt__pool_extend_resp__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_reintegrate_req__field_descriptors[6] = { - { - "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 */ - }, - { - "targetidx", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolReintegrateReq, n_targetidx), - offsetof(Mgmt__PoolReintegrateReq, targetidx), 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 */ - }, - { - "tierbytes", 6, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT64, - offsetof(Mgmt__PoolReintegrateReq, n_tierbytes), - offsetof(Mgmt__PoolReintegrateReq, tierbytes), 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 */ - 2, /* field[2] = rank */ - 4, /* field[4] = svc_ranks */ - 0, /* field[0] = sys */ - 3, /* field[3] = targetidx */ - 5, /* field[5] = tierbytes */ -}; -static const ProtobufCIntRange mgmt__pool_reintegrate_req__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 6 } -}; -const ProtobufCMessageDescriptor mgmt__pool_reintegrate_req__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolReintegrateReq", - "PoolReintegrateReq", - "Mgmt__PoolReintegrateReq", - "mgmt", - sizeof(Mgmt__PoolReintegrateReq), - 6, - 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] = +static const ProtobufCFieldDescriptor mgmt__pool_extend_req__field_descriptors[6] = { { - "status", + "sys", 1, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, + PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolReintegrateResp, status), - NULL, + offsetof(Mgmt__PoolExtendReq, sys), NULL, + &protobuf_c_empty_string, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, -}; -static const unsigned mgmt__pool_reintegrate_resp__field_indices_by_name[] = { - 0, /* field[0] = status */ + { + "id", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolExtendReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ranks", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolExtendReq, n_ranks), + offsetof(Mgmt__PoolExtendReq, ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolExtendReq, n_svc_ranks), + offsetof(Mgmt__PoolExtendReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tierbytes", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT64, + offsetof(Mgmt__PoolExtendReq, n_tierbytes), + offsetof(Mgmt__PoolExtendReq, tierbytes), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "faultDomains", + 6, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolExtendReq, n_faultdomains), + offsetof(Mgmt__PoolExtendReq, faultdomains), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_extend_req__field_indices_by_name[] = { + 5, /* field[5] = faultDomains */ + 1, /* field[1] = id */ + 2, /* field[2] = ranks */ + 3, /* field[3] = svc_ranks */ + 0, /* field[0] = sys */ + 4, /* field[4] = tierbytes */ +}; +static const ProtobufCIntRange mgmt__pool_extend_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor mgmt__pool_extend_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolExtendReq", + "PoolExtendReq", + "Mgmt__PoolExtendReq", + "mgmt", + sizeof(Mgmt__PoolExtendReq), + 6, + mgmt__pool_extend_req__field_descriptors, + mgmt__pool_extend_req__field_indices_by_name, + 1, mgmt__pool_extend_req__number_ranges, + (ProtobufCMessageInit) mgmt__pool_extend_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_extend_resp__field_descriptors[2] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolExtendResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tier_bytes", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT64, + offsetof(Mgmt__PoolExtendResp, n_tier_bytes), + offsetof(Mgmt__PoolExtendResp, tier_bytes), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_extend_resp__field_indices_by_name[] = { + 0, /* field[0] = status */ + 1, /* field[1] = tier_bytes */ +}; +static const ProtobufCIntRange mgmt__pool_extend_resp__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor mgmt__pool_extend_resp__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolExtendResp", + "PoolExtendResp", + "Mgmt__PoolExtendResp", + "mgmt", + sizeof(Mgmt__PoolExtendResp), + 2, + mgmt__pool_extend_resp__field_descriptors, + mgmt__pool_extend_resp__field_indices_by_name, + 1, mgmt__pool_extend_resp__number_ranges, + (ProtobufCMessageInit) mgmt__pool_extend_resp__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_reintegrate_req__field_descriptors[6] = +{ + { + "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 */ + }, + { + "targetidx", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolReintegrateReq, n_targetidx), + offsetof(Mgmt__PoolReintegrateReq, targetidx), + 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 */ + }, + { + "tierbytes", + 6, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT64, + offsetof(Mgmt__PoolReintegrateReq, n_tierbytes), + offsetof(Mgmt__PoolReintegrateReq, tierbytes), + 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 */ + 2, /* field[2] = rank */ + 4, /* field[4] = svc_ranks */ + 0, /* field[0] = sys */ + 3, /* field[3] = targetidx */ + 5, /* field[5] = tierbytes */ +}; +static const ProtobufCIntRange mgmt__pool_reintegrate_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor mgmt__pool_reintegrate_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolReintegrateReq", + "PoolReintegrateReq", + "Mgmt__PoolReintegrateReq", + "mgmt", + sizeof(Mgmt__PoolReintegrateReq), + 6, + 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", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolReintegrateResp, status), + 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] = { @@ -2269,564 +2675,896 @@ static const ProtobufCFieldDescriptor mgmt__list_pools_req__field_descriptors[1] 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; -static const unsigned mgmt__list_pools_req__field_indices_by_name[] = { - 0, /* field[0] = sys */ -}; -static const ProtobufCIntRange mgmt__list_pools_req__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor mgmt__list_pools_req__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.ListPoolsReq", - "ListPoolsReq", - "Mgmt__ListPoolsReq", - "mgmt", - sizeof(Mgmt__ListPoolsReq), - 1, - mgmt__list_pools_req__field_descriptors, - mgmt__list_pools_req__field_indices_by_name, - 1, mgmt__list_pools_req__number_ranges, - (ProtobufCMessageInit) mgmt__list_pools_req__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__list_pools_resp__pool__field_descriptors[5] = { - { - "uuid", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__ListPoolsResp__Pool, uuid), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "label", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__ListPoolsResp__Pool, label), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_reps", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__ListPoolsResp__Pool, n_svc_reps), - offsetof(Mgmt__ListPoolsResp__Pool, svc_reps), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "state", 4, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__ListPoolsResp__Pool, state), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "rebuild_state", 5, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Mgmt__ListPoolsResp__Pool, rebuild_state), NULL, &protobuf_c_empty_string, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__list_pools_resp__pool__field_indices_by_name[] = { - 1, /* field[1] = label */ - 4, /* field[4] = rebuild_state */ - 3, /* field[3] = state */ - 2, /* field[2] = svc_reps */ - 0, /* field[0] = uuid */ +static const unsigned mgmt__list_pools_req__field_indices_by_name[] = { + 0, /* field[0] = sys */ +}; +static const ProtobufCIntRange mgmt__list_pools_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor mgmt__list_pools_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.ListPoolsReq", + "ListPoolsReq", + "Mgmt__ListPoolsReq", + "mgmt", + sizeof(Mgmt__ListPoolsReq), + 1, + mgmt__list_pools_req__field_descriptors, + mgmt__list_pools_req__field_indices_by_name, + 1, mgmt__list_pools_req__number_ranges, + (ProtobufCMessageInit) mgmt__list_pools_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__list_pools_resp__pool__field_descriptors[5] = +{ + { + "uuid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListPoolsResp__Pool, uuid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "label", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListPoolsResp__Pool, label), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_reps", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__ListPoolsResp__Pool, n_svc_reps), + offsetof(Mgmt__ListPoolsResp__Pool, svc_reps), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "state", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListPoolsResp__Pool, state), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rebuild_state", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListPoolsResp__Pool, rebuild_state), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__list_pools_resp__pool__field_indices_by_name[] = { + 1, /* field[1] = label */ + 4, /* field[4] = rebuild_state */ + 3, /* field[3] = state */ + 2, /* field[2] = svc_reps */ + 0, /* field[0] = uuid */ +}; +static const ProtobufCIntRange mgmt__list_pools_resp__pool__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor mgmt__list_pools_resp__pool__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.ListPoolsResp.Pool", + "Pool", + "Mgmt__ListPoolsResp__Pool", + "mgmt", + sizeof(Mgmt__ListPoolsResp__Pool), + 5, + mgmt__list_pools_resp__pool__field_descriptors, + mgmt__list_pools_resp__pool__field_indices_by_name, + 1, mgmt__list_pools_resp__pool__number_ranges, + (ProtobufCMessageInit) mgmt__list_pools_resp__pool__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__list_pools_resp__field_descriptors[3] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListPoolsResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pools", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__ListPoolsResp, n_pools), + offsetof(Mgmt__ListPoolsResp, pools), + &mgmt__list_pools_resp__pool__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "data_version", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListPoolsResp, data_version), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__list_pools_resp__field_indices_by_name[] = { + 2, /* field[2] = data_version */ + 1, /* field[1] = pools */ + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange mgmt__list_pools_resp__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor mgmt__list_pools_resp__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.ListPoolsResp", + "ListPoolsResp", + "Mgmt__ListPoolsResp", + "mgmt", + sizeof(Mgmt__ListPoolsResp), + 3, + mgmt__list_pools_resp__field_descriptors, + mgmt__list_pools_resp__field_indices_by_name, + 1, mgmt__list_pools_resp__number_ranges, + (ProtobufCMessageInit) mgmt__list_pools_resp__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__list_cont_req__field_descriptors[3] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListContReq, 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__ListContReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__ListContReq, n_svc_ranks), + offsetof(Mgmt__ListContReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__list_cont_req__field_indices_by_name[] = { + 1, /* field[1] = id */ + 2, /* field[2] = svc_ranks */ + 0, /* field[0] = sys */ +}; +static const ProtobufCIntRange mgmt__list_cont_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor mgmt__list_cont_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.ListContReq", + "ListContReq", + "Mgmt__ListContReq", + "mgmt", + sizeof(Mgmt__ListContReq), + 3, + mgmt__list_cont_req__field_descriptors, + mgmt__list_cont_req__field_indices_by_name, + 1, mgmt__list_cont_req__number_ranges, + (ProtobufCMessageInit) mgmt__list_cont_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__list_cont_resp__cont__field_descriptors[1] = +{ + { + "uuid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListContResp__Cont, uuid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__list_cont_resp__cont__field_indices_by_name[] = { + 0, /* field[0] = uuid */ +}; +static const ProtobufCIntRange mgmt__list_cont_resp__cont__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor mgmt__list_cont_resp__cont__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.ListContResp.Cont", + "Cont", + "Mgmt__ListContResp__Cont", + "mgmt", + sizeof(Mgmt__ListContResp__Cont), + 1, + mgmt__list_cont_resp__cont__field_descriptors, + mgmt__list_cont_resp__cont__field_indices_by_name, + 1, mgmt__list_cont_resp__cont__number_ranges, + (ProtobufCMessageInit) mgmt__list_cont_resp__cont__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__list_cont_resp__field_descriptors[2] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__ListContResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "containers", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__ListContResp, n_containers), + offsetof(Mgmt__ListContResp, containers), + &mgmt__list_cont_resp__cont__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__list_cont_resp__field_indices_by_name[] = { + 1, /* field[1] = containers */ + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange mgmt__list_cont_resp__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor mgmt__list_cont_resp__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.ListContResp", + "ListContResp", + "Mgmt__ListContResp", + "mgmt", + sizeof(Mgmt__ListContResp), + 2, + mgmt__list_cont_resp__field_descriptors, + mgmt__list_cont_resp__field_indices_by_name, + 1, mgmt__list_cont_resp__number_ranges, + (ProtobufCMessageInit) mgmt__list_cont_resp__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_query_req__field_descriptors[4] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryReq, 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__PoolQueryReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolQueryReq, n_svc_ranks), + offsetof(Mgmt__PoolQueryReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "query_mask", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryReq, query_mask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_query_req__field_indices_by_name[] = { + 1, /* field[1] = id */ + 3, /* field[3] = query_mask */ + 2, /* field[2] = svc_ranks */ + 0, /* field[0] = sys */ +}; +static const ProtobufCIntRange mgmt__pool_query_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor mgmt__pool_query_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolQueryReq", + "PoolQueryReq", + "Mgmt__PoolQueryReq", + "mgmt", + sizeof(Mgmt__PoolQueryReq), + 4, + mgmt__pool_query_req__field_descriptors, + mgmt__pool_query_req__field_indices_by_name, + 1, mgmt__pool_query_req__number_ranges, + (ProtobufCMessageInit) mgmt__pool_query_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__storage_usage_stats__field_descriptors[6] = +{ + { + "total", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__StorageUsageStats, total), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "free", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__StorageUsageStats, free), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "min", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__StorageUsageStats, min), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__StorageUsageStats, max), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mean", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__StorageUsageStats, mean), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "media_type", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Mgmt__StorageUsageStats, media_type), + &mgmt__storage_media_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__storage_usage_stats__field_indices_by_name[] = { + 1, /* field[1] = free */ + 3, /* field[3] = max */ + 4, /* field[4] = mean */ + 5, /* field[5] = media_type */ + 2, /* field[2] = min */ + 0, /* field[0] = total */ +}; +static const ProtobufCIntRange mgmt__storage_usage_stats__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor mgmt__storage_usage_stats__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.StorageUsageStats", + "StorageUsageStats", + "Mgmt__StorageUsageStats", + "mgmt", + sizeof(Mgmt__StorageUsageStats), + 6, + mgmt__storage_usage_stats__field_descriptors, + mgmt__storage_usage_stats__field_indices_by_name, + 1, mgmt__storage_usage_stats__number_ranges, + (ProtobufCMessageInit) mgmt__storage_usage_stats__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue mgmt__pool_rebuild_status__state__enum_values_by_number[3] = +{ + { "IDLE", "MGMT__POOL_REBUILD_STATUS__STATE__IDLE", 0 }, + { "DONE", "MGMT__POOL_REBUILD_STATUS__STATE__DONE", 1 }, + { "BUSY", "MGMT__POOL_REBUILD_STATUS__STATE__BUSY", 2 }, +}; +static const ProtobufCIntRange mgmt__pool_rebuild_status__state__value_ranges[] = { +{0, 0},{0, 3} +}; +static const ProtobufCEnumValueIndex mgmt__pool_rebuild_status__state__enum_values_by_name[3] = +{ + { "BUSY", 2 }, + { "DONE", 1 }, + { "IDLE", 0 }, +}; +const ProtobufCEnumDescriptor mgmt__pool_rebuild_status__state__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "mgmt.PoolRebuildStatus.State", + "State", + "Mgmt__PoolRebuildStatus__State", + "mgmt", + 3, + mgmt__pool_rebuild_status__state__enum_values_by_number, + 3, + mgmt__pool_rebuild_status__state__enum_values_by_name, + 1, + mgmt__pool_rebuild_status__state__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_rebuild_status__field_descriptors[4] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolRebuildStatus, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "state", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolRebuildStatus, state), + &mgmt__pool_rebuild_status__state__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "objects", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolRebuildStatus, objects), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "records", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolRebuildStatus, records), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_rebuild_status__field_indices_by_name[] = { + 2, /* field[2] = objects */ + 3, /* field[3] = records */ + 1, /* field[1] = state */ + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange mgmt__pool_rebuild_status__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor mgmt__pool_rebuild_status__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "mgmt.PoolRebuildStatus", + "PoolRebuildStatus", + "Mgmt__PoolRebuildStatus", + "mgmt", + sizeof(Mgmt__PoolRebuildStatus), + 4, + mgmt__pool_rebuild_status__field_descriptors, + mgmt__pool_rebuild_status__field_indices_by_name, + 1, mgmt__pool_rebuild_status__number_ranges, + (ProtobufCMessageInit) mgmt__pool_rebuild_status__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor mgmt__pool_query_resp__field_descriptors[19] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "uuid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, uuid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "label", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, label), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "total_targets", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, total_targets), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "active_targets", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, active_targets), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "disabled_targets", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, disabled_targets), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rebuild", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, rebuild), + &mgmt__pool_rebuild_status__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tier_stats", + 8, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__PoolQueryResp, n_tier_stats), + offsetof(Mgmt__PoolQueryResp, tier_stats), + &mgmt__storage_usage_stats__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "version", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, version), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "leader", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, leader), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "enabled_ranks", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, enabled_ranks), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "disabled_ranks", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, disabled_ranks), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "total_engines", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, total_engines), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pool_layout_ver", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, pool_layout_ver), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "upgrade_layout_ver", + 16, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, upgrade_layout_ver), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "state", + 17, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, state), + &mgmt__pool_service_state__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ldr", + 18, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, svc_ldr), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_reps", + 19, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolQueryResp, n_svc_reps), + offsetof(Mgmt__PoolQueryResp, svc_reps), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "query_mask", + 20, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryResp, query_mask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned mgmt__pool_query_resp__field_indices_by_name[] = { + 4, /* field[4] = active_targets */ + 11, /* field[11] = disabled_ranks */ + 5, /* field[5] = disabled_targets */ + 10, /* field[10] = enabled_ranks */ + 2, /* field[2] = label */ + 9, /* field[9] = leader */ + 13, /* field[13] = pool_layout_ver */ + 18, /* field[18] = query_mask */ + 6, /* field[6] = rebuild */ + 15, /* field[15] = state */ + 0, /* field[0] = status */ + 16, /* field[16] = svc_ldr */ + 17, /* field[17] = svc_reps */ + 7, /* field[7] = tier_stats */ + 12, /* field[12] = total_engines */ + 3, /* field[3] = total_targets */ + 14, /* field[14] = upgrade_layout_ver */ + 1, /* field[1] = uuid */ + 8, /* field[8] = version */ }; -static const ProtobufCIntRange mgmt__list_pools_resp__pool__number_ranges[1 + 1] = +static const ProtobufCIntRange mgmt__pool_query_resp__number_ranges[2 + 1] = { { 1, 0 }, - { 0, 5 } + { 10, 8 }, + { 0, 19 } }; -const ProtobufCMessageDescriptor mgmt__list_pools_resp__pool__descriptor = +const ProtobufCMessageDescriptor mgmt__pool_query_resp__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.ListPoolsResp.Pool", - "Pool", - "Mgmt__ListPoolsResp__Pool", + "mgmt.PoolQueryResp", + "PoolQueryResp", + "Mgmt__PoolQueryResp", "mgmt", - sizeof(Mgmt__ListPoolsResp__Pool), - 5, - mgmt__list_pools_resp__pool__field_descriptors, - mgmt__list_pools_resp__pool__field_indices_by_name, - 1, mgmt__list_pools_resp__pool__number_ranges, - (ProtobufCMessageInit) mgmt__list_pools_resp__pool__init, + sizeof(Mgmt__PoolQueryResp), + 19, + mgmt__pool_query_resp__field_descriptors, + mgmt__pool_query_resp__field_indices_by_name, + 2, mgmt__pool_query_resp__number_ranges, + (ProtobufCMessageInit) mgmt__pool_query_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__list_pools_resp__field_descriptors[3] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__ListPoolsResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "pools", 2, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Mgmt__ListPoolsResp, n_pools), offsetof(Mgmt__ListPoolsResp, pools), - &mgmt__list_pools_resp__pool__descriptor, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "data_version", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__ListPoolsResp, data_version), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__list_pools_resp__field_indices_by_name[] = { - 2, /* field[2] = data_version */ - 1, /* field[1] = pools */ - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange mgmt__list_pools_resp__number_ranges[1 + 1] = {{1, 0}, {0, 3}}; -const ProtobufCMessageDescriptor mgmt__list_pools_resp__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.ListPoolsResp", - "ListPoolsResp", - "Mgmt__ListPoolsResp", - "mgmt", - sizeof(Mgmt__ListPoolsResp), - 3, - mgmt__list_pools_resp__field_descriptors, - mgmt__list_pools_resp__field_indices_by_name, - 1, - mgmt__list_pools_resp__number_ranges, - (ProtobufCMessageInit)mgmt__list_pools_resp__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__list_cont_req__field_descriptors[3] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__ListContReq, 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__ListContReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__ListContReq, n_svc_ranks), offsetof(Mgmt__ListContReq, svc_ranks), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__list_cont_req__field_indices_by_name[] = { - 1, /* field[1] = id */ - 2, /* field[2] = svc_ranks */ - 0, /* field[0] = sys */ -}; -static const ProtobufCIntRange mgmt__list_cont_req__number_ranges[1 + 1] = {{1, 0}, {0, 3}}; -const ProtobufCMessageDescriptor mgmt__list_cont_req__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.ListContReq", - "ListContReq", - "Mgmt__ListContReq", - "mgmt", - sizeof(Mgmt__ListContReq), - 3, - mgmt__list_cont_req__field_descriptors, - mgmt__list_cont_req__field_indices_by_name, - 1, - mgmt__list_cont_req__number_ranges, - (ProtobufCMessageInit)mgmt__list_cont_req__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__list_cont_resp__cont__field_descriptors[1] = { - { - "uuid", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__ListContResp__Cont, uuid), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__list_cont_resp__cont__field_indices_by_name[] = { - 0, /* field[0] = uuid */ -}; -static const ProtobufCIntRange mgmt__list_cont_resp__cont__number_ranges[1 + 1] = {{1, 0}, {0, 1}}; -const ProtobufCMessageDescriptor mgmt__list_cont_resp__cont__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.ListContResp.Cont", - "Cont", - "Mgmt__ListContResp__Cont", - "mgmt", - sizeof(Mgmt__ListContResp__Cont), - 1, - mgmt__list_cont_resp__cont__field_descriptors, - mgmt__list_cont_resp__cont__field_indices_by_name, - 1, - mgmt__list_cont_resp__cont__number_ranges, - (ProtobufCMessageInit)mgmt__list_cont_resp__cont__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__list_cont_resp__field_descriptors[2] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__ListContResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "containers", 2, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Mgmt__ListContResp, n_containers), offsetof(Mgmt__ListContResp, containers), - &mgmt__list_cont_resp__cont__descriptor, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__list_cont_resp__field_indices_by_name[] = { - 1, /* field[1] = containers */ - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange mgmt__list_cont_resp__number_ranges[1 + 1] = {{1, 0}, {0, 2}}; -const ProtobufCMessageDescriptor mgmt__list_cont_resp__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.ListContResp", - "ListContResp", - "Mgmt__ListContResp", - "mgmt", - sizeof(Mgmt__ListContResp), - 2, - mgmt__list_cont_resp__field_descriptors, - mgmt__list_cont_resp__field_indices_by_name, - 1, - mgmt__list_cont_resp__number_ranges, - (ProtobufCMessageInit)mgmt__list_cont_resp__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_query_req__field_descriptors[5] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryReq, 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__PoolQueryReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolQueryReq, n_svc_ranks), offsetof(Mgmt__PoolQueryReq, svc_ranks), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "include_enabled_ranks", 4, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryReq, include_enabled_ranks), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "include_disabled_ranks", 5, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryReq, include_disabled_ranks), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_query_req__field_indices_by_name[] = { - 1, /* field[1] = id */ - 4, /* field[4] = include_disabled_ranks */ - 3, /* field[3] = include_enabled_ranks */ - 2, /* field[2] = svc_ranks */ - 0, /* field[0] = sys */ -}; -static const ProtobufCIntRange mgmt__pool_query_req__number_ranges[1 + 1] = {{1, 0}, {0, 5}}; -const ProtobufCMessageDescriptor mgmt__pool_query_req__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolQueryReq", - "PoolQueryReq", - "Mgmt__PoolQueryReq", - "mgmt", - sizeof(Mgmt__PoolQueryReq), - 5, - mgmt__pool_query_req__field_descriptors, - mgmt__pool_query_req__field_indices_by_name, - 1, - mgmt__pool_query_req__number_ranges, - (ProtobufCMessageInit)mgmt__pool_query_req__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__storage_usage_stats__field_descriptors[6] = { - { - "total", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__StorageUsageStats, total), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "free", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__StorageUsageStats, free), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "min", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__StorageUsageStats, min), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "max", 4, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__StorageUsageStats, max), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "mean", 5, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__StorageUsageStats, mean), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "media_type", 6, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ - offsetof(Mgmt__StorageUsageStats, media_type), &mgmt__storage_media_type__descriptor, NULL, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__storage_usage_stats__field_indices_by_name[] = { - 1, /* field[1] = free */ - 3, /* field[3] = max */ - 4, /* field[4] = mean */ - 5, /* field[5] = media_type */ - 2, /* field[2] = min */ - 0, /* field[0] = total */ -}; -static const ProtobufCIntRange mgmt__storage_usage_stats__number_ranges[1 + 1] = {{1, 0}, {0, 6}}; -const ProtobufCMessageDescriptor mgmt__storage_usage_stats__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.StorageUsageStats", - "StorageUsageStats", - "Mgmt__StorageUsageStats", - "mgmt", - sizeof(Mgmt__StorageUsageStats), - 6, - mgmt__storage_usage_stats__field_descriptors, - mgmt__storage_usage_stats__field_indices_by_name, - 1, - mgmt__storage_usage_stats__number_ranges, - (ProtobufCMessageInit)mgmt__storage_usage_stats__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue mgmt__pool_rebuild_status__state__enum_values_by_number[3] = { - {"IDLE", "MGMT__POOL_REBUILD_STATUS__STATE__IDLE", 0}, - {"DONE", "MGMT__POOL_REBUILD_STATUS__STATE__DONE", 1}, - {"BUSY", "MGMT__POOL_REBUILD_STATUS__STATE__BUSY", 2}, -}; -static const ProtobufCIntRange mgmt__pool_rebuild_status__state__value_ranges[] = {{0, 0}, {0, 3}}; -static const ProtobufCEnumValueIndex mgmt__pool_rebuild_status__state__enum_values_by_name[3] = { - {"BUSY", 2}, - {"DONE", 1}, - {"IDLE", 0}, -}; -const ProtobufCEnumDescriptor mgmt__pool_rebuild_status__state__descriptor = { - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "mgmt.PoolRebuildStatus.State", - "State", - "Mgmt__PoolRebuildStatus__State", - "mgmt", - 3, - mgmt__pool_rebuild_status__state__enum_values_by_number, - 3, - mgmt__pool_rebuild_status__state__enum_values_by_name, - 1, - mgmt__pool_rebuild_status__state__value_ranges, - NULL, - NULL, - NULL, - NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_rebuild_status__field_descriptors[4] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolRebuildStatus, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "state", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolRebuildStatus, state), &mgmt__pool_rebuild_status__state__descriptor, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "objects", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolRebuildStatus, objects), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "records", 4, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT64, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolRebuildStatus, records), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_rebuild_status__field_indices_by_name[] = { - 2, /* field[2] = objects */ - 3, /* field[3] = records */ - 1, /* field[1] = state */ - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange mgmt__pool_rebuild_status__number_ranges[1 + 1] = {{1, 0}, {0, 4}}; -const ProtobufCMessageDescriptor mgmt__pool_rebuild_status__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolRebuildStatus", - "PoolRebuildStatus", - "Mgmt__PoolRebuildStatus", - "mgmt", - sizeof(Mgmt__PoolRebuildStatus), - 4, - mgmt__pool_rebuild_status__field_descriptors, - mgmt__pool_rebuild_status__field_indices_by_name, - 1, - mgmt__pool_rebuild_status__number_ranges, - (ProtobufCMessageInit)mgmt__pool_rebuild_status__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor mgmt__pool_query_resp__field_descriptors[18] = { - { - "status", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_INT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, status), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "uuid", 2, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, uuid), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "label", 3, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, label), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "total_targets", 4, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, total_targets), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "active_targets", 5, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, active_targets), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "disabled_targets", 6, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, disabled_targets), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "rebuild", 7, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, rebuild), &mgmt__pool_rebuild_status__descriptor, NULL, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "tier_stats", 8, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Mgmt__PoolQueryResp, n_tier_stats), offsetof(Mgmt__PoolQueryResp, tier_stats), - &mgmt__storage_usage_stats__descriptor, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "version", 10, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, version), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "leader", 11, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, leader), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "enabled_ranks", 12, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, enabled_ranks), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "disabled_ranks", 13, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, disabled_ranks), NULL, &protobuf_c_empty_string, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "total_engines", 14, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, total_engines), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "pool_layout_ver", 15, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, pool_layout_ver), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "upgrade_layout_ver", 16, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, upgrade_layout_ver), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "state", 17, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, state), &mgmt__pool_service_state__descriptor, NULL, - 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ldr", 18, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryResp, svc_ldr), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_reps", 19, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolQueryResp, n_svc_reps), offsetof(Mgmt__PoolQueryResp, svc_reps), NULL, - NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned mgmt__pool_query_resp__field_indices_by_name[] = { - 4, /* field[4] = active_targets */ - 11, /* field[11] = disabled_ranks */ - 5, /* field[5] = disabled_targets */ - 10, /* field[10] = enabled_ranks */ - 2, /* field[2] = label */ - 9, /* field[9] = leader */ - 13, /* field[13] = pool_layout_ver */ - 6, /* field[6] = rebuild */ - 15, /* field[15] = state */ - 0, /* field[0] = status */ - 16, /* field[16] = svc_ldr */ - 17, /* field[17] = svc_reps */ - 7, /* field[7] = tier_stats */ - 12, /* field[12] = total_engines */ - 3, /* field[3] = total_targets */ - 14, /* field[14] = upgrade_layout_ver */ - 1, /* field[1] = uuid */ - 8, /* field[8] = version */ -}; -static const ProtobufCIntRange mgmt__pool_query_resp__number_ranges[2 + 1] = { - {1, 0}, {10, 8}, {0, 18}}; -const ProtobufCMessageDescriptor mgmt__pool_query_resp__descriptor = { - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "mgmt.PoolQueryResp", - "PoolQueryResp", - "Mgmt__PoolQueryResp", - "mgmt", - sizeof(Mgmt__PoolQueryResp), - 18, - mgmt__pool_query_resp__field_descriptors, - mgmt__pool_query_resp__field_indices_by_name, - 2, - mgmt__pool_query_resp__number_ranges, - (ProtobufCMessageInit)mgmt__pool_query_resp__init, - NULL, - NULL, - NULL /* reserved[123] */ -}; static const ProtobufCFieldDescriptor mgmt__pool_property__field_descriptors[3] = { { @@ -2891,29 +3629,56 @@ const ProtobufCMessageDescriptor mgmt__pool_property__descriptor = (ProtobufCMessageInit) mgmt__pool_property__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_set_prop_req__field_descriptors[4] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolSetPropReq, 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__PoolSetPropReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "properties", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Mgmt__PoolSetPropReq, n_properties), offsetof(Mgmt__PoolSetPropReq, properties), - &mgmt__pool_property__descriptor, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolSetPropReq, n_svc_ranks), offsetof(Mgmt__PoolSetPropReq, svc_ranks), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_set_prop_req__field_descriptors[4] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolSetPropReq, 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__PoolSetPropReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "properties", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__PoolSetPropReq, n_properties), + offsetof(Mgmt__PoolSetPropReq, properties), + &mgmt__pool_property__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolSetPropReq, n_svc_ranks), + offsetof(Mgmt__PoolSetPropReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_set_prop_req__field_indices_by_name[] = { 1, /* field[1] = id */ @@ -2979,29 +3744,56 @@ const ProtobufCMessageDescriptor mgmt__pool_set_prop_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_set_prop_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_get_prop_req__field_descriptors[4] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolGetPropReq, 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__PoolGetPropReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "properties", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - offsetof(Mgmt__PoolGetPropReq, n_properties), offsetof(Mgmt__PoolGetPropReq, properties), - &mgmt__pool_property__descriptor, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolGetPropReq, n_svc_ranks), offsetof(Mgmt__PoolGetPropReq, svc_ranks), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_get_prop_req__field_descriptors[4] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolGetPropReq, 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__PoolGetPropReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "properties", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__PoolGetPropReq, n_properties), + offsetof(Mgmt__PoolGetPropReq, properties), + &mgmt__pool_property__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolGetPropReq, n_svc_ranks), + offsetof(Mgmt__PoolGetPropReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_get_prop_req__field_indices_by_name[] = { 1, /* field[1] = id */ @@ -3080,23 +3872,44 @@ const ProtobufCMessageDescriptor mgmt__pool_get_prop_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_get_prop_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_upgrade_req__field_descriptors[3] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolUpgradeReq, 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__PoolUpgradeReq, id), NULL, &protobuf_c_empty_string, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolUpgradeReq, n_svc_ranks), offsetof(Mgmt__PoolUpgradeReq, svc_ranks), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_upgrade_req__field_descriptors[3] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolUpgradeReq, 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__PoolUpgradeReq, id), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolUpgradeReq, n_svc_ranks), + offsetof(Mgmt__PoolUpgradeReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_upgrade_req__field_indices_by_name[] = { 1, /* field[1] = id */ @@ -3161,34 +3974,68 @@ const ProtobufCMessageDescriptor mgmt__pool_upgrade_resp__descriptor = (ProtobufCMessageInit) mgmt__pool_upgrade_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__pool_query_target_req__field_descriptors[5] = { - { - "sys", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(Mgmt__PoolQueryTargetReq, 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__PoolQueryTargetReq, 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__PoolQueryTargetReq, rank), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "targets", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolQueryTargetReq, n_targets), offsetof(Mgmt__PoolQueryTargetReq, targets), - NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, - { - "svc_ranks", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_UINT32, - offsetof(Mgmt__PoolQueryTargetReq, n_svc_ranks), - offsetof(Mgmt__PoolQueryTargetReq, svc_ranks), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__pool_query_target_req__field_descriptors[5] = +{ + { + "sys", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Mgmt__PoolQueryTargetReq, 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__PoolQueryTargetReq, 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__PoolQueryTargetReq, rank), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "targets", + 4, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolQueryTargetReq, n_targets), + offsetof(Mgmt__PoolQueryTargetReq, targets), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "svc_ranks", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_UINT32, + offsetof(Mgmt__PoolQueryTargetReq, n_svc_ranks), + offsetof(Mgmt__PoolQueryTargetReq, svc_ranks), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__pool_query_target_req__field_indices_by_name[] = { 1, /* field[1] = id */ diff --git a/src/mgmt/pool.pb-c.h b/src/mgmt/pool.pb-c.h index 4e461323eedd..ad8dee1e9d91 100644 --- a/src/mgmt/pool.pb-c.h +++ b/src/mgmt/pool.pb-c.h @@ -731,17 +731,13 @@ struct _Mgmt__PoolQueryReq size_t n_svc_ranks; uint32_t *svc_ranks; /* - * True if the list of enabled ranks shall be returned + * Bitmask of pool query options */ - protobuf_c_boolean include_enabled_ranks; - /* - * True if the list of disabled ranks shall be returned - */ - protobuf_c_boolean include_disabled_ranks; + uint64_t query_mask; }; #define MGMT__POOL_QUERY_REQ__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__pool_query_req__descriptor) \ - , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL, 0, 0 } + , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL, 0 } /* @@ -855,20 +851,21 @@ struct _Mgmt__PoolQueryResp /* * current raft leader (2.6+) */ - uint32_t svc_ldr; + uint32_t svc_ldr; /* * service replica ranks */ - size_t n_svc_reps; - uint32_t *svc_reps; + size_t n_svc_reps; + uint32_t *svc_reps; + /* + * Bitmask of pool query options used + */ + uint64_t query_mask; }; -#define MGMT__POOL_QUERY_RESP__INIT \ - { \ - PROTOBUF_C_MESSAGE_INIT(&mgmt__pool_query_resp__descriptor) \ - , 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0, 0, NULL, 0, \ - NULL, 0, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0, \ - 0, MGMT__POOL_SERVICE_STATE__Creating, 0, 0, NULL \ - } +#define MGMT__POOL_QUERY_RESP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&mgmt__pool_query_resp__descriptor) \ + , 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0, 0, NULL, 0,NULL, 0, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0, 0, MGMT__POOL_SERVICE_STATE__Creating, 0, 0,NULL, 0 } + typedef enum { MGMT__POOL_PROPERTY__VALUE__NOT_SET = 0, diff --git a/src/mgmt/srv_drpc.c b/src/mgmt/srv_drpc.c index 02537c3dc14e..5d41d42afcc6 100644 --- a/src/mgmt/srv_drpc.c +++ b/src/mgmt/srv_drpc.c @@ -1767,12 +1767,17 @@ ds_mgmt_drpc_pool_query(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) goto out; } + /* TODO (DAOS-10250) Enabled and disabled engines should be retrieve both if needed */ + if (req->query_mask & DPI_ENGINES_ENABLED && req->query_mask & DPI_ENGINES_DISABLED) { + D_ERROR("cannot query enabled and disabled engines in the same request\n"); + D_GOTO(out, rc = -DER_NOTSUPPORTED); + } + svc_ranks = uint32_array_to_rank_list(req->svc_ranks, req->n_svc_ranks); if (svc_ranks == NULL) D_GOTO(out, rc = -DER_NOMEM); - /* TODO (DAOS-10250) Enabled and disabled engines should be retrieve both if needed */ - pool_info.pi_bits = req->include_enabled_ranks ? DPI_ALL : (DPI_ALL & ~DPI_ENGINES_ENABLED); + pool_info.pi_bits = req->query_mask; rc = ds_mgmt_pool_query(uuid, svc_ranks, &ranks, &pool_info, &resp.pool_layout_ver, &resp.upgrade_layout_ver); if (rc != 0) { @@ -1792,6 +1797,7 @@ ds_mgmt_drpc_pool_query(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) truncated ? " ...(TRUNCATED)" : ""); /* Populate the response */ + resp.query_mask = pool_info.pi_bits; resp.uuid = req->id; resp.total_targets = pool_info.pi_ntargets; resp.disabled_targets = pool_info.pi_ndisabled; @@ -1801,8 +1807,8 @@ ds_mgmt_drpc_pool_query(Drpc__Call *drpc_req, Drpc__Response *drpc_resp) resp.svc_reps = req->svc_ranks; resp.n_svc_reps = req->n_svc_ranks; resp.version = pool_info.pi_map_ver; - resp.enabled_ranks = (req->include_enabled_ranks) ? range_list_str : ""; - resp.disabled_ranks = (req->include_disabled_ranks) ? range_list_str : ""; + resp.enabled_ranks = (req->query_mask & DPI_ENGINES_ENABLED) ? range_list_str : ""; + resp.disabled_ranks = (req->query_mask & DPI_ENGINES_DISABLED) ? range_list_str : ""; D_ALLOC_ARRAY(resp.tier_stats, DAOS_MEDIA_MAX); if (resp.tier_stats == NULL) { diff --git a/src/mgmt/tests/srv_drpc_tests.c b/src/mgmt/tests/srv_drpc_tests.c index 4d5778802013..4d93b5e6728b 100644 --- a/src/mgmt/tests/srv_drpc_tests.c +++ b/src/mgmt/tests/srv_drpc_tests.c @@ -1,5 +1,5 @@ /* - * (C) Copyright 2019-2023 Intel Corporation. + * (C) Copyright 2019-2024 Intel Corporation. * * SPDX-License-Identifier: BSD-2-Clause-Patent */ @@ -35,6 +35,7 @@ #ifndef UUID_STR_LEN #define UUID_STR_LEN 37 #endif +#define DEFAULT_QUERY_BITS (DPI_ALL ^ (DPI_ENGINES_DISABLED | DPI_ENGINES_ENABLED)) static uint32_t TEST_IDXS[] = {0, 1, 2}; static uint32_t TEST_RANKS[] = {0, 1, 2}; @@ -1243,12 +1244,12 @@ pack_pool_query_req(Drpc__Call *call, Mgmt__PoolQueryReq *req) } static void -setup_pool_query_drpc_call(Drpc__Call *call, char *uuid) +setup_pool_query_drpc_call(Drpc__Call *call, char *uuid, uint64_t qflags) { Mgmt__PoolQueryReq req = MGMT__POOL_QUERY_REQ__INIT; req.id = uuid; - req.include_enabled_ranks = true; + req.query_mask = DEFAULT_QUERY_BITS | qflags; pack_pool_query_req(call, &req); } @@ -1268,13 +1269,29 @@ expect_drpc_pool_query_resp_with_error(Drpc__Response *resp, int expected_err) mgmt__pool_query_resp__free_unpacked(pq_resp, NULL); } +static void +test_drpc_pool_query_incompat_ranks_flags(void **state) +{ + Drpc__Call call = DRPC__CALL__INIT; + Drpc__Response resp = DRPC__RESPONSE__INIT; + + setup_pool_query_drpc_call(&call, TEST_UUID, DPI_ENGINES_DISABLED | DPI_ENGINES_ENABLED); + + ds_mgmt_drpc_pool_query(&call, &resp); + + expect_drpc_pool_query_resp_with_error(&resp, -DER_NOTSUPPORTED); + + D_FREE(call.body.data); + D_FREE(resp.body.data); +} + static void test_drpc_pool_query_bad_uuid(void **state) { Drpc__Call call = DRPC__CALL__INIT; Drpc__Response resp = DRPC__RESPONSE__INIT; - setup_pool_query_drpc_call(&call, "BAD"); + setup_pool_query_drpc_call(&call, "BAD", 0); ds_mgmt_drpc_pool_query(&call, &resp); @@ -1290,7 +1307,7 @@ test_drpc_pool_query_mgmt_svc_fails(void **state) Drpc__Call call = DRPC__CALL__INIT; Drpc__Response resp = DRPC__RESPONSE__INIT; - setup_pool_query_drpc_call(&call, TEST_UUID); + setup_pool_query_drpc_call(&call, TEST_UUID, 0); ds_mgmt_pool_query_return = -DER_MISC; ds_mgmt_drpc_pool_query(&call, &resp); @@ -1309,7 +1326,7 @@ init_test_pool_info(daos_pool_info_t *pool_info) if (uuid_parse(TEST_UUID, pool_info->pi_uuid)) return; - pool_info->pi_bits = DPI_ALL; + pool_info->pi_bits = DEFAULT_QUERY_BITS; /* Values are arbitrary, just want to see that they are copied over */ pool_info->pi_ntargets = 100; @@ -1412,7 +1429,7 @@ test_drpc_pool_query_success(void **state) init_test_rebuild_status(&exp_info.pi_rebuild_st); ds_mgmt_pool_query_info_out = exp_info; - setup_pool_query_drpc_call(&call, TEST_UUID); + setup_pool_query_drpc_call(&call, TEST_UUID, DPI_ENGINES_ENABLED); ds_mgmt_drpc_pool_query(&call, &resp); @@ -1422,7 +1439,8 @@ test_drpc_pool_query_success(void **state) assert_int_equal(uuid_compare(exp_uuid, ds_mgmt_pool_query_uuid), 0); assert_non_null(ds_mgmt_pool_query_info_ptr); assert_non_null(ds_mgmt_pool_query_ranks_out); - assert_int_equal(ds_mgmt_pool_query_info_in.pi_bits, DPI_ALL); + assert_int_equal(ds_mgmt_pool_query_info_in.pi_bits, + DEFAULT_QUERY_BITS | DPI_ENGINES_ENABLED); expect_query_resp_with_info(&exp_info, MGMT__POOL_REBUILD_STATUS__STATE__IDLE, @@ -1444,7 +1462,7 @@ test_drpc_pool_query_success_rebuild_busy(void **state) exp_info.pi_rebuild_st.rs_version = 1; ds_mgmt_pool_query_info_out = exp_info; - setup_pool_query_drpc_call(&call, TEST_UUID); + setup_pool_query_drpc_call(&call, TEST_UUID, 0); ds_mgmt_drpc_pool_query(&call, &resp); @@ -1469,7 +1487,7 @@ test_drpc_pool_query_success_rebuild_done(void **state) exp_info.pi_rebuild_st.rs_state = DRS_COMPLETED; ds_mgmt_pool_query_info_out = exp_info; - setup_pool_query_drpc_call(&call, TEST_UUID); + setup_pool_query_drpc_call(&call, TEST_UUID, 0); ds_mgmt_drpc_pool_query(&call, &resp); @@ -1500,7 +1518,7 @@ test_drpc_pool_query_success_rebuild_err(void **state) ds_mgmt_pool_query_info_out.pi_rebuild_st.rs_obj_nr = 42; ds_mgmt_pool_query_info_out.pi_rebuild_st.rs_rec_nr = 999; - setup_pool_query_drpc_call(&call, TEST_UUID); + setup_pool_query_drpc_call(&call, TEST_UUID, 0); ds_mgmt_drpc_pool_query(&call, &resp); @@ -3055,82 +3073,83 @@ int main(void) { const struct CMUnitTest tests[] = { - cmocka_unit_test(test_mgmt_drpc_handlers_bad_call_payload), - ACL_TEST(test_drpc_pool_get_acl_bad_uuid), - ACL_TEST(test_drpc_pool_get_acl_mgmt_svc_fails), - ACL_TEST(test_drpc_pool_get_acl_cant_translate_acl), - ACL_TEST(test_drpc_pool_get_acl_success), - ACL_TEST(test_drpc_pool_overwrite_acl_bad_uuid), - ACL_TEST(test_drpc_pool_overwrite_acl_bad_acl), - ACL_TEST(test_drpc_pool_overwrite_acl_mgmt_svc_fails), - ACL_TEST(test_drpc_pool_overwrite_acl_success), - ACL_TEST(test_drpc_pool_update_acl_bad_uuid), - ACL_TEST(test_drpc_pool_update_acl_bad_acl), - ACL_TEST(test_drpc_pool_update_acl_mgmt_svc_fails), - ACL_TEST(test_drpc_pool_update_acl_success), - ACL_TEST(test_drpc_pool_delete_acl_bad_uuid), - ACL_TEST(test_drpc_pool_delete_acl_mgmt_svc_fails), - ACL_TEST(test_drpc_pool_delete_acl_success), - LIST_CONT_TEST(test_drpc_pool_list_cont_bad_uuid), - LIST_CONT_TEST(test_drpc_pool_list_cont_mgmt_svc_fails), - LIST_CONT_TEST(test_drpc_pool_list_cont_no_containers), - LIST_CONT_TEST(test_drpc_pool_list_cont_with_containers), - POOL_SET_PROP_TEST(test_drpc_pool_set_prop_invalid_value_type), - POOL_SET_PROP_TEST(test_drpc_pool_set_prop_bad_uuid), - POOL_SET_PROP_TEST(test_drpc_pool_set_prop_success), - POOL_GET_PROP_TEST(test_drpc_pool_get_prop_bad_uuid), - POOL_GET_PROP_TEST(test_drpc_pool_get_prop_num_success), - POOL_GET_PROP_TEST(test_drpc_pool_get_prop_str_success), - POOL_GET_PROP_TEST(test_drpc_pool_get_prop_svcl_success), - POOL_GET_PROP_TEST(test_drpc_pool_get_prop_null_svcl), - EXCLUDE_TEST(test_drpc_exclude_bad_uuid), - EXCLUDE_TEST(test_drpc_exclude_mgmt_svc_fails), - EXCLUDE_TEST(test_drpc_exclude_success), - DRAIN_TEST(test_drpc_drain_bad_uuid), - DRAIN_TEST(test_drpc_drain_mgmt_svc_fails), - DRAIN_TEST(test_drpc_drain_success), - 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), - QUERY_TEST(test_drpc_pool_query_bad_uuid), - QUERY_TEST(test_drpc_pool_query_mgmt_svc_fails), - QUERY_TEST(test_drpc_pool_query_success), - QUERY_TEST(test_drpc_pool_query_success_rebuild_busy), - QUERY_TEST(test_drpc_pool_query_success_rebuild_done), - QUERY_TEST(test_drpc_pool_query_success_rebuild_err), - QUERY_TARGETS_TEST(test_drpc_pool_query_targets_bad_uuid), - QUERY_TARGETS_TEST(test_drpc_pool_query_targets_mgmt_svc_fails), - QUERY_TARGETS_TEST(test_drpc_pool_query_targets_with_targets), - POOL_CREATE_TEST(test_drpc_pool_create_invalid_acl), - POOL_EVICT_TEST(test_drpc_pool_evict_bad_uuid), - POOL_EVICT_TEST(test_drpc_pool_evict_mgmt_svc_fails), - POOL_EVICT_TEST(test_drpc_pool_evict_success), - PING_RANK_TEST(test_drpc_ping_rank_success), - PREP_SHUTDOWN_TEST(test_drpc_prep_shutdown_success), - SET_LOG_MASKS_TEST(test_drpc_set_log_masks_success), - CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_bad_cont_uuid), - CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_bad_pool_uuid), - CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_failed), - CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_success), - POOL_UPGRADE_TEST(test_drpc_pool_upgrade_bad_uuid), - POOL_UPGRADE_TEST(test_drpc_pool_upgrade_mgmt_svc_fails), - POOL_UPGRADE_TEST(test_drpc_pool_upgrade_success), - LED_MANAGE_TEST(test_drpc_dev_manage_led_bad_tr_addr), - LED_MANAGE_TEST(test_drpc_dev_manage_led_fails), - LED_MANAGE_TEST(test_drpc_dev_manage_led_success), - DEV_REPLACE_TEST(test_drpc_dev_replace_bad_old_uuid), - DEV_REPLACE_TEST(test_drpc_dev_replace_bad_new_uuid), - DEV_REPLACE_TEST(test_drpc_dev_replace_fails), - DEV_REPLACE_TEST(test_drpc_dev_replace_success), - SET_FAULTY_TEST(test_drpc_dev_set_faulty_bad_uuid), - SET_FAULTY_TEST(test_drpc_dev_set_faulty_fails), - SET_FAULTY_TEST(test_drpc_dev_set_faulty_success), - CHECK_START_TEST(test_drpc_check_start_success), - CHECK_STOP_TEST(test_drpc_check_stop_success), - CHECK_QUERY_TEST(test_drpc_check_query_success), - CHECK_PROP_TEST(test_drpc_check_prop_success), - CHECK_ACT_TEST(test_drpc_check_act_success), + cmocka_unit_test(test_mgmt_drpc_handlers_bad_call_payload), + ACL_TEST(test_drpc_pool_get_acl_bad_uuid), + ACL_TEST(test_drpc_pool_get_acl_mgmt_svc_fails), + ACL_TEST(test_drpc_pool_get_acl_cant_translate_acl), + ACL_TEST(test_drpc_pool_get_acl_success), + ACL_TEST(test_drpc_pool_overwrite_acl_bad_uuid), + ACL_TEST(test_drpc_pool_overwrite_acl_bad_acl), + ACL_TEST(test_drpc_pool_overwrite_acl_mgmt_svc_fails), + ACL_TEST(test_drpc_pool_overwrite_acl_success), + ACL_TEST(test_drpc_pool_update_acl_bad_uuid), + ACL_TEST(test_drpc_pool_update_acl_bad_acl), + ACL_TEST(test_drpc_pool_update_acl_mgmt_svc_fails), + ACL_TEST(test_drpc_pool_update_acl_success), + ACL_TEST(test_drpc_pool_delete_acl_bad_uuid), + ACL_TEST(test_drpc_pool_delete_acl_mgmt_svc_fails), + ACL_TEST(test_drpc_pool_delete_acl_success), + LIST_CONT_TEST(test_drpc_pool_list_cont_bad_uuid), + LIST_CONT_TEST(test_drpc_pool_list_cont_mgmt_svc_fails), + LIST_CONT_TEST(test_drpc_pool_list_cont_no_containers), + LIST_CONT_TEST(test_drpc_pool_list_cont_with_containers), + POOL_SET_PROP_TEST(test_drpc_pool_set_prop_invalid_value_type), + POOL_SET_PROP_TEST(test_drpc_pool_set_prop_bad_uuid), + POOL_SET_PROP_TEST(test_drpc_pool_set_prop_success), + POOL_GET_PROP_TEST(test_drpc_pool_get_prop_bad_uuid), + POOL_GET_PROP_TEST(test_drpc_pool_get_prop_num_success), + POOL_GET_PROP_TEST(test_drpc_pool_get_prop_str_success), + POOL_GET_PROP_TEST(test_drpc_pool_get_prop_svcl_success), + POOL_GET_PROP_TEST(test_drpc_pool_get_prop_null_svcl), + EXCLUDE_TEST(test_drpc_exclude_bad_uuid), + EXCLUDE_TEST(test_drpc_exclude_mgmt_svc_fails), + EXCLUDE_TEST(test_drpc_exclude_success), + DRAIN_TEST(test_drpc_drain_bad_uuid), + DRAIN_TEST(test_drpc_drain_mgmt_svc_fails), + DRAIN_TEST(test_drpc_drain_success), + 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), + QUERY_TEST(test_drpc_pool_query_incompat_ranks_flags), + QUERY_TEST(test_drpc_pool_query_bad_uuid), + QUERY_TEST(test_drpc_pool_query_mgmt_svc_fails), + QUERY_TEST(test_drpc_pool_query_success), + QUERY_TEST(test_drpc_pool_query_success_rebuild_busy), + QUERY_TEST(test_drpc_pool_query_success_rebuild_done), + QUERY_TEST(test_drpc_pool_query_success_rebuild_err), + QUERY_TARGETS_TEST(test_drpc_pool_query_targets_bad_uuid), + QUERY_TARGETS_TEST(test_drpc_pool_query_targets_mgmt_svc_fails), + QUERY_TARGETS_TEST(test_drpc_pool_query_targets_with_targets), + POOL_CREATE_TEST(test_drpc_pool_create_invalid_acl), + POOL_EVICT_TEST(test_drpc_pool_evict_bad_uuid), + POOL_EVICT_TEST(test_drpc_pool_evict_mgmt_svc_fails), + POOL_EVICT_TEST(test_drpc_pool_evict_success), + PING_RANK_TEST(test_drpc_ping_rank_success), + PREP_SHUTDOWN_TEST(test_drpc_prep_shutdown_success), + SET_LOG_MASKS_TEST(test_drpc_set_log_masks_success), + CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_bad_cont_uuid), + CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_bad_pool_uuid), + CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_failed), + CONT_SET_OWNER_TEST(test_drpc_cont_set_owner_success), + POOL_UPGRADE_TEST(test_drpc_pool_upgrade_bad_uuid), + POOL_UPGRADE_TEST(test_drpc_pool_upgrade_mgmt_svc_fails), + POOL_UPGRADE_TEST(test_drpc_pool_upgrade_success), + LED_MANAGE_TEST(test_drpc_dev_manage_led_bad_tr_addr), + LED_MANAGE_TEST(test_drpc_dev_manage_led_fails), + LED_MANAGE_TEST(test_drpc_dev_manage_led_success), + DEV_REPLACE_TEST(test_drpc_dev_replace_bad_old_uuid), + DEV_REPLACE_TEST(test_drpc_dev_replace_bad_new_uuid), + DEV_REPLACE_TEST(test_drpc_dev_replace_fails), + DEV_REPLACE_TEST(test_drpc_dev_replace_success), + SET_FAULTY_TEST(test_drpc_dev_set_faulty_bad_uuid), + SET_FAULTY_TEST(test_drpc_dev_set_faulty_fails), + SET_FAULTY_TEST(test_drpc_dev_set_faulty_success), + CHECK_START_TEST(test_drpc_check_start_success), + CHECK_STOP_TEST(test_drpc_check_stop_success), + CHECK_QUERY_TEST(test_drpc_check_query_success), + CHECK_PROP_TEST(test_drpc_check_prop_success), + CHECK_ACT_TEST(test_drpc_check_act_success), }; return cmocka_run_group_tests_name("mgmt_srv_drpc", tests, NULL, NULL); diff --git a/src/proto/mgmt/pool.proto b/src/proto/mgmt/pool.proto index e9a50a5c7586..d54ceca42802 100644 --- a/src/proto/mgmt/pool.proto +++ b/src/proto/mgmt/pool.proto @@ -176,8 +176,7 @@ message PoolQueryReq { string sys = 1; // DAOS system identifier string id = 2; repeated uint32 svc_ranks = 3; // List of pool service ranks - bool include_enabled_ranks = 4; // True if the list of enabled ranks shall be returned - bool include_disabled_ranks = 5; // True if the list of disabled ranks shall be returned + uint64 query_mask = 4; // Bitmask of pool query options } enum StorageMediaType { @@ -238,6 +237,7 @@ message PoolQueryResp { PoolServiceState state = 17; // pool state uint32 svc_ldr = 18; // current raft leader (2.6+) repeated uint32 svc_reps = 19; // service replica ranks + uint64 query_mask = 20; // Bitmask of pool query options used } message PoolProperty {