Implement controller publish/transfer logic + node mount/unmount
This commit is contained in:
@@ -122,13 +122,26 @@ func (d *controllerService) ControllerGetCapabilities(ctx context.Context, reque
|
||||
// ControllerPublishVolume publish a volume
|
||||
func (d *controllerService) ControllerPublishVolume(ctx context.Context, request *csi.ControllerPublishVolumeRequest) (*csi.ControllerPublishVolumeResponse, error) {
|
||||
klog.Infof("controller.ControllerPublishVolume: %s on node %s", request.GetVolumeId(), request.GetNodeId())
|
||||
return nil, status.Error(codes.Unimplemented, "controller.ControllerPublishVolume")
|
||||
|
||||
vol, err := d.p5x.GetVolumeByName(request.GetVolumeId())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = d.p5x.TransferVolume(vol, request.GetNodeId())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &csi.ControllerPublishVolumeResponse{}, nil
|
||||
}
|
||||
|
||||
// ControllerUnpublishVolume unpublish a volume
|
||||
func (d *controllerService) ControllerUnpublishVolume(ctx context.Context, request *csi.ControllerUnpublishVolumeRequest) (*csi.ControllerUnpublishVolumeResponse, error) {
|
||||
klog.Infof("controller.ControllerUnpublishVolume: %s on node %s", request.GetVolumeId(), request.GetNodeId())
|
||||
return nil, status.Error(codes.Unimplemented, "controller.ControllerUnpublishVolume")
|
||||
|
||||
// No need to "unpublish" a volume currently -- it will be transferred to the correct node next time it's published
|
||||
return &csi.ControllerUnpublishVolumeResponse{}, nil
|
||||
}
|
||||
|
||||
// ValidateVolumeCapabilities validate volume capabilities
|
||||
|
||||
Reference in New Issue
Block a user