talos/api/storage/storage.proto
Artem Chernyshev 6ffabe5169 feat: add ability to find disk by disk properties
Fixes: https://github.com/talos-systems/talos/issues/3323

Not exactly matching with udevd generated `by-<id>` symlinks, but should
provide sufficient amount of property selectors to be able to pick
specific disks for any kind of disk: sd card, hdd, ssd, nvme.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2021-03-23 14:23:02 -07:00

53 lines
1.4 KiB
Protocol Buffer

syntax = "proto3";
package storage;
option go_package = "github.com/talos-systems/talos/pkg/machinery/api/storage";
option java_multiple_files = true;
option java_outer_classname = "StorageApi";
option java_package = "com.storage.api";
import "google/protobuf/empty.proto";
import "common/common.proto";
// StorageService represents the storage service.
service StorageService {
rpc Disks(google.protobuf.Empty) returns (DisksResponse);
}
// Disk represents a disk.
message Disk {
// Size indicates the disk size in bytes.
uint64 size = 1;
// Model idicates the disk model.
string model = 2;
// DeviceName indicates the disk name (e.g. `sda`).
string device_name = 3;
// Name as in `/sys/block/<dev>/device/name`.
string name = 4;
// Serial as in `/sys/block/<dev>/device/serial`.
string serial = 5;
// Modalias as in `/sys/block/<dev>/device/modalias`.
string modalias = 6;
// Uuid as in `/sys/block/<dev>/device/uuid`.
string uuid = 7;
// Wwid as in `/sys/block/<dev>/device/wwid`.
string wwid = 8;
enum DiskType {
UNKNOWN = 0;
SSD = 1;
HDD = 2;
NVME = 3;
SD = 4;
}
// Type is a type of the disk: nvme, ssd, hdd, sd card.
DiskType type = 9;
}
// DisksResponse represents the response of the `Disks` RPC.
message Disks {
common.Metadata metadata = 1;
repeated Disk disks = 2;
}
message DisksResponse { repeated Disks messages = 1; }