From 3d227237cac91ec8b05b620a6044434cb3097115 Mon Sep 17 00:00:00 2001 From: Humble Chirammal Date: Sat, 31 Aug 2019 10:14:55 +0530 Subject: [PATCH 1/2] Mention about the possibilities of using staging_target_path at NodeStage. At present, it is unclear to SP that, how to use staging_target_path and the possibilities of using the same. This patch add more details on `staging target path` and its usage. Fix # https://github.com/container-storage-interface/spec/issues/385 Signed-off-by: Humble Chirammal --- csi.proto | 8 +++++++- lib/go/csi/csi.pb.go | 8 +++++++- spec.md | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/csi.proto b/csi.proto index 93a18b2f..3012d789 100644 --- a/csi.proto +++ b/csi.proto @@ -1095,7 +1095,13 @@ message NodeStageVolumeRequest { // that the path is directory and that the process serving the // request has `read` and `write` permission to that directory. The // CO SHALL be responsible for creating the directory if it does not - // exist. + // exist.The CO will pass around the staging_target_directory from + // NodeStageVolume to NodePublishVolume. SP can stage a volume + // however it like inside the staging_target_directory. + // For example, SP can stage it directly at the + // starging_target_directory or a subdirectory or file underneath. + // SP can also store other files/metadata inside the + // staging_target_directory if it like. // This is a REQUIRED field. string staging_target_path = 3; diff --git a/lib/go/csi/csi.pb.go b/lib/go/csi/csi.pb.go index ecd09770..694dcd87 100644 --- a/lib/go/csi/csi.pb.go +++ b/lib/go/csi/csi.pb.go @@ -3385,7 +3385,13 @@ type NodeStageVolumeRequest struct { // that the path is directory and that the process serving the // request has `read` and `write` permission to that directory. The // CO SHALL be responsible for creating the directory if it does not - // exist. + // exist.The CO will pass around the staging_target_directory from + // NodeStageVolume to NodePublishVolume. SP can stage a volume + // however it like inside the staging_target_directory. + // For example, SP can stage it directly at the + // starging_target_directory or a subdirectory or file underneath. + // SP can also store other files/metadata inside the + // staging_target_directory if it like. // This is a REQUIRED field. StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` // Volume capability describing how the CO intends to use this volume. diff --git a/spec.md b/spec.md index 4b47a313..a4b93a79 100644 --- a/spec.md +++ b/spec.md @@ -1931,7 +1931,13 @@ message NodeStageVolumeRequest { // that the path is directory and that the process serving the // request has `read` and `write` permission to that directory. The // CO SHALL be responsible for creating the directory if it does not - // exist. + // exist.The CO will pass around the staging_target_directory from + // NodeStageVolume to NodePublishVolume. SP can stage a volume + // however it like inside the staging_target_directory. + // For example, SP can stage it directly at the + // starging_target_directory or a subdirectory or file underneath. + // SP can also store other files/metadata inside the + // staging_target_directory if it like. // This is a REQUIRED field. string staging_target_path = 3; From c9551160f9ed72a323ba0d9e8df7b6ad5227f622 Mon Sep 17 00:00:00 2001 From: hchiramm Date: Thu, 16 Apr 2020 20:01:31 +0530 Subject: [PATCH 2/2] Reword the spec to incluse usage of staging_target_path Signed-off-by: hchiramm --- csi.proto | 15 ++++++++------- lib/go/csi/csi.pb.go | 15 ++++++++------- spec.md | 15 ++++++++------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/csi.proto b/csi.proto index 3012d789..d7019ad2 100644 --- a/csi.proto +++ b/csi.proto @@ -1095,13 +1095,14 @@ message NodeStageVolumeRequest { // that the path is directory and that the process serving the // request has `read` and `write` permission to that directory. The // CO SHALL be responsible for creating the directory if it does not - // exist.The CO will pass around the staging_target_directory from - // NodeStageVolume to NodePublishVolume. SP can stage a volume - // however it like inside the staging_target_directory. - // For example, SP can stage it directly at the - // starging_target_directory or a subdirectory or file underneath. - // SP can also store other files/metadata inside the - // staging_target_directory if it like. + // exist. The CO MUST pass the same staging_target_directory to + // NodeStageVolume and NodePublishVolume. + // The SP MAY use staging_target_directory in + // any way it chooses, including but not limited to: + // - as a mount point to stage the volume directly + // - as a parent directory for a newly created mount point + // - as a parent directory for an attached device + // - as a parent directory for metadata files // This is a REQUIRED field. string staging_target_path = 3; diff --git a/lib/go/csi/csi.pb.go b/lib/go/csi/csi.pb.go index 694dcd87..b16c510c 100644 --- a/lib/go/csi/csi.pb.go +++ b/lib/go/csi/csi.pb.go @@ -3385,13 +3385,14 @@ type NodeStageVolumeRequest struct { // that the path is directory and that the process serving the // request has `read` and `write` permission to that directory. The // CO SHALL be responsible for creating the directory if it does not - // exist.The CO will pass around the staging_target_directory from - // NodeStageVolume to NodePublishVolume. SP can stage a volume - // however it like inside the staging_target_directory. - // For example, SP can stage it directly at the - // starging_target_directory or a subdirectory or file underneath. - // SP can also store other files/metadata inside the - // staging_target_directory if it like. + // exist. The CO MUST pass the same staging_target_directory to + // NodeStageVolume and NodePublishVolume. + // The SP MAY use staging_target_directory in + // any way it chooses, including but not limited to: + // - as a mount point to stage the volume directly + // - as a parent directory for a newly created mount point + // - as a parent directory for an attached device + // - as a parent directory for metadata files // This is a REQUIRED field. StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` // Volume capability describing how the CO intends to use this volume. diff --git a/spec.md b/spec.md index a4b93a79..8544592f 100644 --- a/spec.md +++ b/spec.md @@ -1931,13 +1931,14 @@ message NodeStageVolumeRequest { // that the path is directory and that the process serving the // request has `read` and `write` permission to that directory. The // CO SHALL be responsible for creating the directory if it does not - // exist.The CO will pass around the staging_target_directory from - // NodeStageVolume to NodePublishVolume. SP can stage a volume - // however it like inside the staging_target_directory. - // For example, SP can stage it directly at the - // starging_target_directory or a subdirectory or file underneath. - // SP can also store other files/metadata inside the - // staging_target_directory if it like. + // exist. The CO MUST pass the same staging_target_directory to + // NodeStageVolume and NodePublishVolume. + // The SP MAY use staging_target_directory in + // any way it chooses, including but not limited to: + // - as a mount point to stage the volume directly + // - as a parent directory for a newly created mount point + // - as a parent directory for an attached device + // - as a parent directory for metadata files // This is a REQUIRED field. string staging_target_path = 3;