From d0ce72592916b0b147b688c451795929a7fba32b Mon Sep 17 00:00:00 2001 From: Rusty Bee <145002912+rustybee42@users.noreply.github.com> Date: Thu, 3 Sep 2026 12:14:11 +0200 Subject: [PATCH] doc: Loosen the buddy group option field requirements They were added to the existing create and get messages, thus "required" doesn't make sense due to compatibility. Management already handles this correctly. Also, document for which release they were added. --- go/management/management.pb.go | 14 ++++++++------ go/management/management_protoopaque.pb.go | 8 +++++--- proto/management.proto | 8 +++++--- rust/management.rs | 8 +++++--- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/go/management/management.pb.go b/go/management/management.pb.go index 8b5e56e..7b2b967 100644 --- a/go/management/management.pb.go +++ b/go/management/management.pb.go @@ -1742,12 +1742,13 @@ func (b0 DeletePoolResponse_builder) Build() *DeletePoolResponse { return m0 } +// New in 8.5. type BuddyGroupOptions struct { state protoimpl.MessageState `protogen:"hybrid.v1"` // The quota accounting mode for this buddy group. // When used for setting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. - // When used for getting options: Required if the corresponding buddy group is a storage group, + // When used for getting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. QuotaAccounting *BuddyGroupOptions_BuddyGroupQuotaAccounting `protobuf:"varint,1,opt,name=quota_accounting,json=quotaAccounting,proto3,enum=management.BuddyGroupOptions_BuddyGroupQuotaAccounting,oneof" json:"quota_accounting,omitempty"` unknownFields protoimpl.UnknownFields @@ -1807,7 +1808,7 @@ type BuddyGroupOptions_builder struct { // The quota accounting mode for this buddy group. // When used for setting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. - // When used for getting options: Required if the corresponding buddy group is a storage group, + // When used for getting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. QuotaAccounting *BuddyGroupOptions_BuddyGroupQuotaAccounting } @@ -1942,7 +1943,7 @@ type CreateBuddyGroupRequest struct { // Required. One identifier is sufficient. SecondaryTarget *beegfs.EntityIdSet `protobuf:"bytes,5,opt,name=secondary_target,json=secondaryTarget,proto3,oneof" json:"secondary_target,omitempty"` // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Assume default values if unset. Options *BuddyGroupOptions `protobuf:"bytes,6,opt,name=options,proto3,oneof" json:"options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -2124,7 +2125,7 @@ type CreateBuddyGroupRequest_builder struct { // Required. One identifier is sufficient. SecondaryTarget *beegfs.EntityIdSet // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Assume default values if unset. Options *BuddyGroupOptions } @@ -2214,6 +2215,7 @@ func (b0 CreateBuddyGroupResponse_builder) Build() *CreateBuddyGroupResponse { } // Modifies a buddy group or its config. +// New in 8.5. type ModifyBuddyGroupRequest struct { state protoimpl.MessageState `protogen:"hybrid.v1"` // The buddy group to modify. @@ -5009,7 +5011,7 @@ type GetBuddyGroupsResponse_BuddyGroup struct { // set, should be completely populated. StoragePool *beegfs.EntityIdSet `protobuf:"bytes,7,opt,name=storage_pool,json=storagePool,proto3,oneof" json:"storage_pool,omitempty"` // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Options *BuddyGroupOptions `protobuf:"bytes,8,opt,name=options,proto3,oneof" json:"options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -5209,7 +5211,7 @@ type GetBuddyGroupsResponse_BuddyGroup_builder struct { // set, should be completely populated. StoragePool *beegfs.EntityIdSet // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Options *BuddyGroupOptions } diff --git a/go/management/management_protoopaque.pb.go b/go/management/management_protoopaque.pb.go index 3f939e4..eb979aa 100644 --- a/go/management/management_protoopaque.pb.go +++ b/go/management/management_protoopaque.pb.go @@ -1755,6 +1755,7 @@ func (b0 DeletePoolResponse_builder) Build() *DeletePoolResponse { return m0 } +// New in 8.5. type BuddyGroupOptions struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_QuotaAccounting BuddyGroupOptions_BuddyGroupQuotaAccounting `protobuf:"varint,1,opt,name=quota_accounting,json=quotaAccounting,proto3,enum=management.BuddyGroupOptions_BuddyGroupQuotaAccounting,oneof" json:"quota_accounting,omitempty"` @@ -1821,7 +1822,7 @@ type BuddyGroupOptions_builder struct { // The quota accounting mode for this buddy group. // When used for setting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. - // When used for getting options: Required if the corresponding buddy group is a storage group, + // When used for getting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. QuotaAccounting *BuddyGroupOptions_BuddyGroupQuotaAccounting } @@ -2143,7 +2144,7 @@ type CreateBuddyGroupRequest_builder struct { // Required. One identifier is sufficient. SecondaryTarget *beegfs.EntityIdSet // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Assume default values if unset. Options *BuddyGroupOptions } @@ -2240,6 +2241,7 @@ func (b0 CreateBuddyGroupResponse_builder) Build() *CreateBuddyGroupResponse { } // Modifies a buddy group or its config. +// New in 8.5. type ModifyBuddyGroupRequest struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Group *beegfs.EntityIdSet `protobuf:"bytes,1,opt,name=group,proto3,oneof" json:"group,omitempty"` @@ -5265,7 +5267,7 @@ type GetBuddyGroupsResponse_BuddyGroup_builder struct { // set, should be completely populated. StoragePool *beegfs.EntityIdSet // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Options *BuddyGroupOptions } diff --git a/proto/management.proto b/proto/management.proto index 7479036..481329c 100644 --- a/proto/management.proto +++ b/proto/management.proto @@ -302,6 +302,7 @@ message DeletePoolResponse { // Buddy groups +// New in 8.5. message BuddyGroupOptions { enum BuddyGroupQuotaAccounting { BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED = 0; @@ -312,7 +313,7 @@ message BuddyGroupOptions { // The quota accounting mode for this buddy group. // When used for setting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. - // When used for getting options: Required if the corresponding buddy group is a storage group, + // When used for getting options: Optional if the corresponding buddy group is a storage group, // unset otherwise. optional BuddyGroupQuotaAccounting quota_accounting = 1; } @@ -345,7 +346,7 @@ message GetBuddyGroupsResponse { // set, should be completely populated. optional beegfs.EntityIdSet storage_pool = 7; // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. optional BuddyGroupOptions options = 8; } @@ -371,7 +372,7 @@ message CreateBuddyGroupRequest { // Required. One identifier is sufficient. optional beegfs.EntityIdSet secondary_target = 5; // The options for this buddy group. - // Required. + // New in 8.5. Optional for compatibility. Assume default values if unset. optional BuddyGroupOptions options = 6; } message CreateBuddyGroupResponse { @@ -381,6 +382,7 @@ message CreateBuddyGroupResponse { } // Modifies a buddy group or its config. +// New in 8.5. message ModifyBuddyGroupRequest { // The buddy group to modify. // Required. One identifier is sufficient. diff --git a/rust/management.rs b/rust/management.rs index 7c38fa5..42f1640 100644 --- a/rust/management.rs +++ b/rust/management.rs @@ -330,12 +330,13 @@ pub struct DeletePoolResponse { #[prost(message, optional, tag = "1")] pub pool: ::core::option::Option, } +/// New in 8.5. #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] pub struct BuddyGroupOptions { /// The quota accounting mode for this buddy group. /// When used for setting options: Optional if the corresponding buddy group is a storage group, /// unset otherwise. - /// When used for getting options: Required if the corresponding buddy group is a storage group, + /// When used for getting options: Optional if the corresponding buddy group is a storage group, /// unset otherwise. #[prost( enumeration = "buddy_group_options::BuddyGroupQuotaAccounting", @@ -430,7 +431,7 @@ pub mod get_buddy_groups_response { #[prost(message, optional, tag = "7")] pub storage_pool: ::core::option::Option, /// The options for this buddy group. - /// Required. + /// New in 8.5. Optional for compatibility. #[prost(message, optional, tag = "8")] pub options: ::core::option::Option, } @@ -459,7 +460,7 @@ pub struct CreateBuddyGroupRequest { #[prost(message, optional, tag = "5")] pub secondary_target: ::core::option::Option, /// The options for this buddy group. - /// Required. + /// New in 8.5. Optional for compatibility. Assume default values if unset. #[prost(message, optional, tag = "6")] pub options: ::core::option::Option, } @@ -471,6 +472,7 @@ pub struct CreateBuddyGroupResponse { pub group: ::core::option::Option, } /// Modifies a buddy group or its config. +/// New in 8.5. #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct ModifyBuddyGroupRequest { /// The buddy group to modify.