Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: expose nexus rebuild fix #86

Merged
merged 1 commit into from
Jun 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions apis/io-engine/protobuf/v1/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,17 @@ enum ShareProtocol {
NVMF = 1; // NVMe over Fabrics (TCP)
ISCSI = 2; // iSCSI
}

message MayastorFeatures {
// NVMe ANA enablement status.
bool asymmetricNamespaceAccess = 1;
// LVM backend presence and enablement status.
tiagolobocastro marked this conversation as resolved.
Show resolved Hide resolved
optional bool logicalVolumeManager = 2;
// SnapshotRebuild presence and enablement status.
optional bool snapshotRebuild = 3;
}

message MayastorBugFixes {
// Nexus rebuilds both the clusters allocated to the replica and its ancestors clusters
bool nexusRebuildReplicaAncestry = 1;
}
9 changes: 4 additions & 5 deletions apis/io-engine/protobuf/v1/host.proto
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,15 @@ service HostRpc {
rpc StatNvmeController (StatNvmeControllerRequest) returns (StatNvmeControllerResponse) {}
}

message MayastorFeatures {
message BackCompatMayastorFeatures {
// NVMe ANA enablement status.
bool asymmetricNamespaceAccess = 1;
tiagolobocastro marked this conversation as resolved.
Show resolved Hide resolved
bool logicalVolumeManager = 2;
bool snapshotRebuild = 3;
}

message MayastorInfoResponse {
string version = 1;
MayastorFeatures supportedFeatures = 2;
RegisterRequest registration_info = 3;
BackCompatMayastorFeatures previous_features = 2;
RegisterRequest registration_info = 3;
}

message BlockDevice {
Expand Down
7 changes: 7 additions & 0 deletions apis/io-engine/protobuf/v1/registration.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ syntax = "proto3";

import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";
import "common.proto";

package mayastor.v1;

Expand All @@ -17,6 +18,12 @@ message RegisterRequest {
repeated APIVersion api_version = 4;
// nvme initiator hostnqn used by this instance
google.protobuf.StringValue hostnqn = 5;
// Mayastor features.
optional MayastorFeatures features = 6;
// Mayastor bugfixes.
optional MayastorBugFixes bugfixes = 7;
// Version of mayastor.
optional string version = 8;
}

// api version supported by the dataplane
Expand Down
14 changes: 9 additions & 5 deletions apis/io-engine/src/v1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,17 +64,21 @@ pub mod snapshot {
};
}
pub mod registration {
pub use super::pb::{registration_client, ApiVersion, DeregisterRequest, RegisterRequest};
pub use super::pb::{
registration_client, ApiVersion, DeregisterRequest, MayastorBugFixes, MayastorFeatures,
RegisterRequest,
};
}
pub mod host {
pub use super::pb::{
block_device::{Filesystem, Partition},
host_rpc_client::HostRpcClient,
host_rpc_server::{HostRpc, HostRpcServer},
BlockDevice, GetMayastorResourceUsageResponse, ListBlockDevicesRequest,
ListBlockDevicesResponse, ListNvmeControllersResponse, MayastorFeatures,
MayastorInfoResponse, NvmeController, NvmeControllerIoStats, NvmeControllerState,
ResourceUsage, StatNvmeControllerRequest, StatNvmeControllerResponse,
BackCompatMayastorFeatures, BlockDevice, GetMayastorResourceUsageResponse,
ListBlockDevicesRequest, ListBlockDevicesResponse, ListNvmeControllersResponse,
MayastorBugFixes, MayastorFeatures, MayastorInfoResponse, NvmeController,
NvmeControllerIoStats, NvmeControllerState, ResourceUsage, StatNvmeControllerRequest,
StatNvmeControllerResponse,
};
}

Expand Down
Loading