Skip to content

Commit 45b6fd2

Browse files
committed
Implement jdef's grammar suggestions
1 parent 6fbff56 commit 45b6fd2

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

csi.proto

+2-3
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,6 @@ message ControllerServiceCapability {
10811081
// condition after a volume is provisioned.
10821082
GET_VOLUME = 12 [(alpha_enum_value) = true];
10831083

1084-
10851084
// Indicates the SP supports the SINGLE_NODE_SINGLE_WRITER and/or
10861085
// SINGLE_NODE_MULTI_WRITER access modes.
10871086
// These access modes are intended to replace the
@@ -1092,8 +1091,8 @@ message ControllerServiceCapability {
10921091
// supported, in order to permit older COs to continue working.
10931092
SINGLE_NODE_MULTI_WRITER = 13 [(alpha_enum_value) = true];
10941093

1095-
// Indicates the SP supports ControllerUnpublishVolume.fence
1096-
// field.
1094+
// Indicates the SP supports the
1095+
// ControllerUnpublishVolume.fence field.
10971096
UNPUBLISH_FENCE = 14 [(alpha_enum_value) = true];
10981097
}
10991098

lib/go/csi/csi.pb.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec.md

+8-9
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ The full list of plugin capabilities is documented in the `ControllerGetCapabili
265265

266266
The purpose of the `QUARANTINE_S`, `QUARANTINE_P`, and `QUARANTINE_SP` states are to enable recovery from node problems.
267267
Because CSI is designed to be used in distributed systems, it is inevitable that sometimes volumes will become attached to nodes that get stuck or lost, temporarily or permanently.
268-
Rather than require an administrator to manually clean up such situation, CSI offers a way disconnect a volume from a node "out of order" such that a volume can be disconnected from a problematic node, and safely connected to a different node, and the node can be reliably and safely cleaned up before accessing that volume again, as opposed to the normal path where the node must confirm a volume is disconnected before the controller can unpublish it.
268+
Rather than require an administrator to manually clean up in such a situation, CSI offers a way to disconnect a volume from a node "out of order" such that a volume can be disconnected from problematic *node A*, and safely connected to a different *node B*, and then *node A* can be reliably and safely cleaned up before accessing that volume again; as opposed to the normal path whereby *node A* must confirm a volume is disconnected before the controller can unpublish it.
269269

270270
## Container Storage Interface
271271

@@ -1328,13 +1328,13 @@ The CO MUST implement the specified error recovery behavior when it encounters t
13281328

13291329
Controller Plugin MUST implement this RPC call if it has `PUBLISH_UNPUBLISH_VOLUME` controller capability.
13301330
This RPC is a reverse operation of `ControllerPublishVolume`.
1331-
It MUST be called after all `NodeUnstageVolume` and `NodeUnpublishVolume` on the volume are called and succeed unless the plugin has the `UNPUBLISH_FENCE` capability.
1331+
It MUST be called after both `NodeUnstageVolume` and `NodeUnpublishVolume` on the volume are called and succeed unless the plugin has the `UNPUBLISH_FENCE` capability.
13321332
The Plugin SHOULD perform the work that is necessary for making the volume ready to be consumed by a different node.
13331333
The Plugin MUST NOT assume that this RPC will be executed on the node where the volume was previously used.
13341334

13351335
If the plugin has the `UNPUBLISH_FENCE` capability, the CO MAY specify `fence` as `true`, in which case the SP MUST ensure that the node may no longer access the volume before returning a successful response.
13361336
This results in a transition into one of the `QUARANTINE` states where the node must be cleaned up without being able to access the volume like usual.
1337-
This is intended cut off an unreachable node from accessing volumes so those volumes may be safely published to another node.
1337+
This is intended to cut off an unreachable node from accessing volumes so those volumes may be safely published to another node.
13381338
Once in one of the `QUARANTINE` states the volume MAY NOT be published to that node again until appropriate cleanup has happened using `NodeUnpublishVolume` and `NodeUnstageVolume` (if applicable).
13391339

13401340
This RPC is typically called by the CO when the workload using the volume is being moved to a different node, or all the workload using the volume on a node has finished.
@@ -1756,7 +1756,6 @@ message ControllerServiceCapability {
17561756
// condition after a volume is provisioned.
17571757
GET_VOLUME = 12 [(alpha_enum_value) = true];
17581758
1759-
17601759
// Indicates the SP supports the SINGLE_NODE_SINGLE_WRITER and/or
17611760
// SINGLE_NODE_MULTI_WRITER access modes.
17621761
// These access modes are intended to replace the
@@ -1767,8 +1766,8 @@ message ControllerServiceCapability {
17671766
// supported, in order to permit older COs to continue working.
17681767
SINGLE_NODE_MULTI_WRITER = 13 [(alpha_enum_value) = true];
17691768
1770-
// Indicates the SP supports ControllerUnpublishVolume.fence
1771-
// field.
1769+
// Indicates the SP supports the
1770+
// ControllerUnpublishVolume.fence field.
17721771
UNPUBLISH_FENCE = 14 [(alpha_enum_value) = true];
17731772
}
17741773
@@ -2227,7 +2226,7 @@ This RPC is a reverse operation of `NodeStageVolume`.
22272226
This RPC MUST undo the work by the corresponding `NodeStageVolume`.
22282227
This RPC SHALL be called by the CO once for each `staging_target_path` that was successfully setup via `NodeStageVolume`.
22292228

2230-
If the corresponding Controller Plugin has `PUBLISH_UNPUBLISH_VOLUME` controller capability and the Node Plugin has `STAGE_UNSTAGE_VOLUME` capability, the CO MUST guarantee that this RPC is called and returns success before calling `ControllerUnpublishVolume` for the given node and the given volume, unless the Controller Plugin has `UNPUBLISH_FENCE` capability and the Node Plugin has the `FORCE_UNPUBLISH` capability and the `force` flag is `true`.
2229+
If the corresponding Controller Plugin has the `PUBLISH_UNPUBLISH_VOLUME` controller capability and the Node Plugin has the `STAGE_UNSTAGE_VOLUME` capability, the CO MUST guarantee that this RPC is called and returns success before calling `ControllerUnpublishVolume` for the given node and the given volume, unless the Controller Plugin has the `UNPUBLISH_FENCE` capability and the Node Plugin has the `FORCE_UNPUBLISH` capability and the `force` flag is `true`.
22312230
The CO MUST guarantee that this RPC is called after all `NodeUnpublishVolume` have been called and returned success for the given volume on the given node.
22322231

22332232
If the Node Plugin has the `FORCE_UNPUBLISH` capability, the CO MAY specify `force` as `true` in which case the Node Plugin MUST support unstaging volumes even when access has been revoked with `ControllerUnpublishVolume`.
@@ -2418,12 +2417,12 @@ A Node Plugin MUST implement this RPC call.
24182417
This RPC is a reverse operation of `NodePublishVolume`.
24192418
This RPC MUST undo the work by the corresponding `NodePublishVolume`.
24202419
This RPC SHALL be called by the CO at least once for each `target_path` that was successfully setup via `NodePublishVolume`.
2421-
If the corresponding Controller Plugin has `PUBLISH_UNPUBLISH_VOLUME` controller capability, the CO SHOULD issue all `NodeUnpublishVolume` (as specified above) before calling `ControllerUnpublishVolume` for the given node and the given volume, unless the Controller Plugin has `UNPUBLISH_FENCE` capability and the Node Plugin has the `FORCE_UNPUBLISH` capability and the `force` flag is `true`.
2420+
If the corresponding Controller Plugin has the `PUBLISH_UNPUBLISH_VOLUME` controller capability, the CO SHOULD issue `NodeUnpublishVolume` (as specified above) before calling `ControllerUnpublishVolume` for the given node and the given volume, unless the Controller Plugin has the `UNPUBLISH_FENCE` capability and the Node Plugin has the `FORCE_UNPUBLISH` capability and the `force` flag is `true`.
24222421
The Plugin SHALL assume that this RPC will be executed on the node where the volume is being used.
24232422

24242423
If the Node Plugin has the `FORCE_UNPUBLISH` capability, the CO MAY specify `force` as `true` in which case the Node Plugin MUST support unpublishing volumes even when access has been revoked with `ControllerUnpublishVolume`.
24252424
Because data loss is inevitable in such circumstances, the `force` flag is an indication that success is desired even if it means losing data.
2426-
It is essential that after a successful call to `NodeUnpublishVolume` that there will be no buffered data on the node related to the volume which might result in unintetional modification of the volume if it was to be subsequently re-published to that node.
2425+
It is essential that after a successful call to `NodeUnpublishVolume` that there will be no buffered data on the node related to the volume that might result in unintentional modification of the volume if it was to be subsequently re-published to that node.
24272426

24282427
This RPC is typically called by the CO when the workload using the volume is being moved to a different node, or all the workload using the volume on a node has finished.
24292428

0 commit comments

Comments
 (0)