@@ -44,11 +44,11 @@ service Controller {
44
44
}
45
45
46
46
service Node {
47
- rpc NodePublishDevice ( NodePublishDeviceRequest )
48
- returns (NodePublishDeviceResponse ) {}
47
+ rpc NodeStageVolume ( NodeStageVolumeRequest )
48
+ returns (NodeStageVolumeResponse ) {}
49
49
50
- rpc NodeUnpublishDevice ( NodeUnpublishDeviceRequest )
51
- returns (NodeUnpublishDeviceResponse ) {}
50
+ rpc NodeUnstageVolume ( NodeUnstageVolumeRequest )
51
+ returns (NodeUnstageVolumeResponse ) {}
52
52
53
53
rpc NodePublishVolume (NodePublishVolumeRequest )
54
54
returns (NodePublishVolumeResponse ) {}
@@ -188,18 +188,18 @@ message CreateVolumeRequest {
188
188
// validating these parameters. COs will treat these as opaque.
189
189
map <string , string > parameters = 5 ;
190
190
191
- // End user credentials used to authenticate/authorize volume creation
192
- // request.
191
+ // Credentials used by Controller plugin to authenticate/authorize
192
+ // volume creation request.
193
193
// This field contains credential data, for example username and
194
194
// password. Each key must consist of alphanumeric characters, '-',
195
195
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
196
196
// choose to accept binary (non-string) data by using a binary-to-text
197
197
// encoding scheme, like base64. An SP SHALL advertise the
198
198
// requirements for credentials in documentation. COs SHALL permit
199
- // users to pass through the required credentials. This information is
199
+ // passing through the required credentials. This information is
200
200
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
201
201
// This field is OPTIONAL.
202
- map <string , string > user_credentials = 6 ;
202
+ map <string , string > controller_create_credentials = 6 ;
203
203
}
204
204
205
205
message CreateVolumeResponse {
@@ -318,18 +318,18 @@ message DeleteVolumeRequest {
318
318
// This field is REQUIRED.
319
319
string volume_id = 2 ;
320
320
321
- // End user credentials used to authenticate/authorize volume deletion
322
- // request.
321
+ // Credentials used by Controller plugin to authenticate/authorize
322
+ // volume deletion request.
323
323
// This field contains credential data, for example username and
324
324
// password. Each key must consist of alphanumeric characters, '-',
325
325
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
326
326
// choose to accept binary (non-string) data by using a binary-to-text
327
327
// encoding scheme, like base64. An SP SHALL advertise the
328
328
// requirements for credentials in documentation. COs SHALL permit
329
- // users to pass through the required credentials. This information is
329
+ // passing through the required credentials. This information is
330
330
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
331
331
// This field is OPTIONAL.
332
- map <string , string > user_credentials = 3 ;
332
+ map <string , string > controller_delete_credentials = 3 ;
333
333
}
334
334
335
335
message DeleteVolumeResponse {}
@@ -355,18 +355,18 @@ message ControllerPublishVolumeRequest {
355
355
// REQUIRED.
356
356
bool readonly = 5 ;
357
357
358
- // End user credentials used to authenticate/authorize controller
359
- // publish request.
358
+ // Credentials used by Controller plugin to authenticate/authorize
359
+ // controller publish request.
360
360
// This field contains credential data, for example username and
361
361
// password. Each key must consist of alphanumeric characters, '-',
362
362
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
363
363
// choose to accept binary (non-string) data by using a binary-to-text
364
364
// encoding scheme, like base64. An SP SHALL advertise the
365
365
// requirements for credentials in documentation. COs SHALL permit
366
- // users to pass through the required credentials. This information is
366
+ // passing through the required credentials. This information is
367
367
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
368
368
// This field is OPTIONAL.
369
- map <string , string > user_credentials = 6 ;
369
+ map <string , string > controller_publish_credentials = 6 ;
370
370
371
371
// Attributes of the volume to be used on a node. This field is
372
372
// OPTIONAL and MUST match the attributes of the Volume identified
@@ -376,8 +376,8 @@ message ControllerPublishVolumeRequest {
376
376
377
377
message ControllerPublishVolumeResponse {
378
378
// The SP specific information that will be passed to the Plugin in
379
- // the subsequent `NodePublishDevice` and `NodePublishVolume` calls
380
- // for the given volume.
379
+ // the subsequent `NodeStageVolume` or `NodePublishVolume` calls
380
+ // for the given volume.
381
381
// This information is opaque to the CO. This field is OPTIONAL.
382
382
map <string , string > publish_info = 1 ;
383
383
}
@@ -397,18 +397,18 @@ message ControllerUnpublishVolumeRequest {
397
397
// the volume from all nodes it is published to.
398
398
string node_id = 3 ;
399
399
400
- // End user credentials used to authenticate/authorize controller
401
- // unpublish request.
400
+ // Credentials used by Controller plugin to authenticate/authorize
401
+ // controller unpublish request.
402
402
// This field contains credential data, for example username and
403
403
// password. Each key must consist of alphanumeric characters, '-',
404
404
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
405
405
// choose to accept binary (non-string) data by using a binary-to-text
406
406
// encoding scheme, like base64. An SP SHALL advertise the
407
407
// requirements for credentials in documentation. COs SHALL permit
408
- // users to pass through the required credentials. This information is
408
+ // passing through the required credentials. This information is
409
409
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
410
410
// This field is OPTIONAL.
411
- map <string , string > user_credentials = 4 ;
411
+ map <string , string > controller_unpublish_credentials = 4 ;
412
412
}
413
413
414
414
message ControllerUnpublishVolumeResponse {}
@@ -550,7 +550,7 @@ message ControllerServiceCapability {
550
550
}
551
551
////////
552
552
////////
553
- message NodePublishDeviceRequest {
553
+ message NodeStageVolumeRequest {
554
554
// The API version assumed by the CO. This is a REQUIRED field.
555
555
Version version = 1 ;
556
556
@@ -562,24 +562,42 @@ message NodePublishDeviceRequest {
562
562
// has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be
563
563
// left unset if the corresponding Controller Plugin does not have
564
564
// this capability. This is an OPTIONAL field.
565
- map <string , string > publish_volume_info = 3 ;
565
+ map <string , string > publish_info = 3 ;
566
566
567
567
// The path to which the volume will be published. It MUST be an
568
568
// absolute path in the root filesystem of the process serving this
569
- // request. The CO SHALL ensure uniqueness of global_target_path per
570
- // volume.
569
+ // request. The CO SHALL ensure that there is only one
570
+ // staging_target_path per volume.
571
571
// This is a REQUIRED field.
572
- string global_target_path = 4 ;
572
+ string staging_target_path = 4 ;
573
573
574
574
// The capability of the volume the CO expects the volume to have.
575
575
// This is a REQUIRED field.
576
576
VolumeCapability volume_capability = 5 ;
577
+
578
+ // Credentials used by Node plugin to authenticate/authorize node
579
+ // stage request.
580
+ // This field contains credential data, for example username and
581
+ // password. Each key must consist of alphanumeric characters, '-',
582
+ // '_' or '.'. Each value MUST contain a valid string. An SP MAY
583
+ // choose to accept binary (non-string) data by using a binary-to-text
584
+ // encoding scheme, like base64. An SP SHALL advertise the
585
+ // requirements for credentials in documentation. COs SHALL permit
586
+ // passing through the required credentials. This information is
587
+ // sensitive and MUST be treated as such (not logged, etc.) by the CO.
588
+ // This field is OPTIONAL.
589
+ map <string , string > node_stage_credentials = 6 ;
590
+
591
+ // Attributes of the volume to publish. This field is OPTIONAL and
592
+ // MUST match the attributes of the VolumeInfo identified by
593
+ // `volume_id`.
594
+ map <string ,string > volume_attributes = 7 ;
577
595
}
578
596
579
- message NodePublishDeviceResponse {}
597
+ message NodeStageVolumeResponse {}
580
598
////////
581
599
////////
582
- message NodeUnpublishDeviceRequest {
600
+ message NodeUnstageVolumeRequest {
583
601
// The API version assumed by the CO. This is a REQUIRED field.
584
602
Version version = 1 ;
585
603
@@ -589,10 +607,23 @@ message NodeUnpublishDeviceRequest {
589
607
// The path at which the volume was published. It MUST be an absolute
590
608
// path in the root filesystem of the process serving this request.
591
609
// This is a REQUIRED field.
592
- string global_target_path = 3 ;
610
+ string staging_target_path = 3 ;
611
+
612
+ // Credentials used by Node plugin to authenticate/authorize node
613
+ // unstage request.
614
+ // This field contains credential data, for example username and
615
+ // password. Each key must consist of alphanumeric characters, '-',
616
+ // '_' or '.'. Each value MUST contain a valid string. An SP MAY
617
+ // choose to accept binary (non-string) data by using a binary-to-text
618
+ // encoding scheme, like base64. An SP SHALL advertise the
619
+ // requirements for credentials in documentation. COs SHALL permit
620
+ // passing through the required credentials. This information is
621
+ // sensitive and MUST be treated as such (not logged, etc.) by the CO.
622
+ // This field is OPTIONAL.
623
+ map <string , string > node_unstage_credentials = 4 ;
593
624
}
594
625
595
- message NodeUnpublishDeviceResponse {}
626
+ message NodeUnstageVolumeResponse {}
596
627
////////
597
628
////////
598
629
message NodePublishVolumeRequest {
@@ -609,11 +640,13 @@ message NodePublishVolumeRequest {
609
640
// this capability. This is an OPTIONAL field.
610
641
map <string , string > publish_info = 3 ;
611
642
612
- // The path to which the device was mounted by `NodePublishDevice `.
643
+ // The path to which the device was mounted by `NodeStageVolume `.
613
644
// It MUST be an absolute path in the root filesystem of the process
614
645
// serving this request.
646
+ // It MUST be set if the Node Plugin implements the
647
+ // `STAGE_UNSTAGE_VOLUME` node capability.
615
648
// This is an OPTIONAL field.
616
- string global_target_path = 4 ;
649
+ string staging_target_path = 4 ;
617
650
618
651
// The path to which the volume will be published. It MUST be an
619
652
// absolute path in the root filesystem of the process serving this
@@ -631,18 +664,19 @@ message NodePublishVolumeRequest {
631
664
// REQUIRED.
632
665
bool readonly = 7 ;
633
666
634
- // End user credentials used to authenticate/authorize node
667
+ // Credentials used by Node plugin to authenticate/authorize node
635
668
// publish request.
636
669
// This field contains credential data, for example username and
637
670
// password. Each key must consist of alphanumeric characters, '-',
638
671
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
639
672
// choose to accept binary (non-string) data by using a binary-to-text
640
673
// encoding scheme, like base64. An SP SHALL advertise the
641
674
// requirements for credentials in documentation. COs SHALL permit
642
- // users to pass through the required credentials. This information is
675
+ // passing through the required credentials. This information is
643
676
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
644
677
// This field is OPTIONAL.
645
- map <string , string > user_credentials = 8 ;
678
+ map <string , string > node_publish_credentials = 8 ;
679
+
646
680
647
681
// Attributes of the volume to publish. This field is OPTIONAL and
648
682
// MUST match the attributes of the Volume identified by
@@ -660,29 +694,23 @@ message NodeUnpublishVolumeRequest {
660
694
// The ID of the volume. This field is REQUIRED.
661
695
string volume_id = 2 ;
662
696
663
- // The path to which the device was mounted by `NodePublishDevice`.
664
- // It MUST be an absolute path in the root filesystem of the process
665
- // serving this request.
666
- // This is an OPTIONAL field.
667
- string global_target_path = 3 ;
668
-
669
697
// The path at which the volume was published. It MUST be an absolute
670
698
// path in the root filesystem of the process serving this request.
671
699
// This is a REQUIRED field.
672
- string target_path = 4 ;
700
+ string target_path = 3 ;
673
701
674
- // End user credentials used to authenticate/authorize node
702
+ // Credentials used by Node plugin to authenticate/authorize node
675
703
// unpublish request.
676
704
// This field contains credential data, for example username and
677
705
// password. Each key must consist of alphanumeric characters, '-',
678
706
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
679
707
// choose to accept binary (non-string) data by using a binary-to-text
680
708
// encoding scheme, like base64. An SP SHALL advertise the
681
709
// requirements for credentials in documentation. COs SHALL permit
682
- // users to pass through the required credentials. This information is
710
+ // passing through the required credentials. This information is
683
711
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
684
712
// This field is OPTIONAL.
685
- map <string , string > user_credentials = 5 ;
713
+ map <string , string > node_unpublish_credentials = 4 ;
686
714
}
687
715
688
716
message NodeUnpublishVolumeResponse {}
@@ -725,7 +753,7 @@ message NodeServiceCapability {
725
753
message RPC {
726
754
enum Type {
727
755
UNKNOWN = 0 ;
728
- PUBLISH_UNPUBLISH_DEVICE = 1 ;
756
+ STAGE_UNSTAGE_VOLUME = 1 ;
729
757
}
730
758
731
759
Type type = 1 ;
0 commit comments