@@ -41,11 +41,11 @@ service Controller {
41
41
}
42
42
43
43
service Node {
44
- rpc NodePublishDevice ( NodePublishDeviceRequest )
45
- returns (NodePublishDeviceResponse ) {}
44
+ rpc NodeStageVolume ( NodeStageVolumeRequest )
45
+ returns (NodeStageVolumeResponse ) {}
46
46
47
- rpc NodeUnpublishDevice ( NodeUnpublishDeviceRequest )
48
- returns (NodeUnpublishDeviceResponse ) {}
47
+ rpc NodeUnstageVolume ( NodeUnstageVolumeRequest )
48
+ returns (NodeUnstageVolumeResponse ) {}
49
49
50
50
rpc NodePublishVolume (NodePublishVolumeRequest )
51
51
returns (NodePublishVolumeResponse ) {}
@@ -331,8 +331,8 @@ message ControllerPublishVolumeRequest {
331
331
332
332
message ControllerPublishVolumeResponse {
333
333
// The SP specific information that will be passed to the Plugin in
334
- // the subsequent `NodePublishDevice ` and `NodePublishVolume` calls
335
- // for the given volume.
334
+ // the subsequent `NodeStageVolume ` and `NodePublishVolume` calls
335
+ // for the given volume.
336
336
// This information is opaque to the CO. This field is OPTIONAL.
337
337
map <string , string > publish_volume_info = 1 ;
338
338
}
@@ -503,7 +503,7 @@ message ControllerServiceCapability {
503
503
}
504
504
////////
505
505
////////
506
- message NodePublishDeviceRequest {
506
+ message NodeStageVolumeRequest {
507
507
// The API version assumed by the CO. This is a REQUIRED field.
508
508
Version version = 1 ;
509
509
@@ -519,20 +519,38 @@ message NodePublishDeviceRequest {
519
519
520
520
// The path to which the volume will be published. It MUST be an
521
521
// absolute path in the root filesystem of the process serving this
522
- // request. The CO SHALL ensure uniqueness of global_target_path per
522
+ // request. The CO SHALL ensure uniqueness of staging_target_path per
523
523
// volume.
524
524
// This is a REQUIRED field.
525
- string global_target_path = 4 ;
525
+ string staging_target_path = 4 ;
526
526
527
527
// The capability of the volume the CO expects the volume to have.
528
528
// This is a REQUIRED field.
529
529
VolumeCapability volume_capability = 5 ;
530
+
531
+ // End user credentials used to authenticate/authorize node
532
+ // publish request.
533
+ // This field contains credential data, for example username and
534
+ // password. Each key must consist of alphanumeric characters, '-',
535
+ // '_' or '.'. Each value MUST contain a valid string. An SP MAY
536
+ // choose to accept binary (non-string) data by using a binary-to-text
537
+ // encoding scheme, like base64. An SP SHALL advertise the
538
+ // requirements for credentials in documentation. COs SHALL permit
539
+ // users to pass through the required credentials. This information is
540
+ // sensitive and MUST be treated as such (not logged, etc.) by the CO.
541
+ // This field is OPTIONAL.
542
+ map <string , string > user_credentials = 6 ;
543
+
544
+ // Attributes of the volume to publish. This field is OPTIONAL and
545
+ // MUST match the attributes of the VolumeInfo identified by
546
+ // `volume_id`.
547
+ map <string ,string > volume_attributes = 7 ;
530
548
}
531
549
532
- message NodePublishDeviceResponse {}
550
+ message NodeStageVolumeResponse {}
533
551
////////
534
552
////////
535
- message NodeUnpublishDeviceRequest {
553
+ message NodeUnstageVolumeRequest {
536
554
// The API version assumed by the CO. This is a REQUIRED field.
537
555
Version version = 1 ;
538
556
@@ -542,10 +560,10 @@ message NodeUnpublishDeviceRequest {
542
560
// The path at which the volume was published. It MUST be an absolute
543
561
// path in the root filesystem of the process serving this request.
544
562
// This is a REQUIRED field.
545
- string global_target_path = 3 ;
563
+ string staging_target_path = 3 ;
546
564
}
547
565
548
- message NodeUnpublishDeviceResponse {}
566
+ message NodeUnstageVolumeResponse {}
549
567
////////
550
568
////////
551
569
message NodePublishVolumeRequest {
@@ -562,11 +580,13 @@ message NodePublishVolumeRequest {
562
580
// this capability. This is an OPTIONAL field.
563
581
map <string , string > publish_volume_info = 3 ;
564
582
565
- // The path to which the device was mounted by `NodePublishDevice `.
583
+ // The path to which the device was mounted by `NodeStageVolume `.
566
584
// It MUST be an absolute path in the root filesystem of the process
567
585
// serving this request.
586
+ // It MUST be set if the Node Plugin implements the
587
+ // `STAGE_UNSTAGE_VOLUME` node capability.
568
588
// This is an OPTIONAL field.
569
- string global_target_path = 4 ;
589
+ string staging_target_path = 4 ;
570
590
571
591
// The path to which the volume will be published. It MUST be an
572
592
// absolute path in the root filesystem of the process serving this
@@ -613,16 +633,10 @@ message NodeUnpublishVolumeRequest {
613
633
// The ID of the volume. This field is REQUIRED.
614
634
string volume_id = 2 ;
615
635
616
- // The path to which the device was mounted by `NodePublishDevice`.
617
- // It MUST be an absolute path in the root filesystem of the process
618
- // serving this request.
619
- // This is an OPTIONAL field.
620
- string global_target_path = 3 ;
621
-
622
636
// The path at which the volume was published. It MUST be an absolute
623
637
// path in the root filesystem of the process serving this request.
624
638
// This is a REQUIRED field.
625
- string target_path = 4 ;
639
+ string target_path = 3 ;
626
640
627
641
// End user credentials used to authenticate/authorize node
628
642
// unpublish request.
@@ -635,7 +649,7 @@ message NodeUnpublishVolumeRequest {
635
649
// users to pass through the required credentials. This information is
636
650
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
637
651
// This field is OPTIONAL.
638
- map <string , string > user_credentials = 5 ;
652
+ map <string , string > user_credentials = 4 ;
639
653
}
640
654
641
655
message NodeUnpublishVolumeResponse {}
@@ -678,7 +692,7 @@ message NodeServiceCapability {
678
692
message RPC {
679
693
enum Type {
680
694
UNKNOWN = 0 ;
681
- PUBLISH_UNPUBLISH_DEVICE = 1 ;
695
+ STAGE_UNSTAGE_VOLUME = 1 ;
682
696
}
683
697
684
698
Type type = 1 ;
0 commit comments