From c6927108764225fc092fbb6268e788a6999d843a Mon Sep 17 00:00:00 2001 From: Harsh Desai Date: Thu, 27 Jul 2017 16:12:26 -0700 Subject: [PATCH] Add comment for parameter parsing logic in Portworx volume create --- pkg/volume/portworx/portworx_util.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/volume/portworx/portworx_util.go b/pkg/volume/portworx/portworx_util.go index e29e8a30570..b1ae08784a4 100644 --- a/pkg/volume/portworx/portworx_util.go +++ b/pkg/volume/portworx/portworx_util.go @@ -55,13 +55,17 @@ func (util *PortworxVolumeUtil) CreateVolume(p *portworxVolumeProvisioner) (stri // Portworx Volumes are specified in GB requestGB := int(volume.RoundUpSize(capacity.Value(), 1024*1024*1024)) + // Perform a best-effort parsing of parameters. Portworx 1.2.9 and later parses volume parameters from + // spec.VolumeLabels. So even if below SpecFromOpts() fails to parse certain parameters or + // doesn't support new parameters, the server-side processing will parse it correctly. + // We still need to call SpecFromOpts() here to handle cases where someone is running Portworx 1.2.8 and lower. specHandler := osdspec.NewSpecHandler() spec, _ := specHandler.SpecFromOpts(p.options.Parameters) if spec == nil { spec = specHandler.DefaultSpec() } - // Pass all parameters as volume labels for Portworx server-side processing + // Pass all parameters as volume labels for Portworx server-side processing. spec.VolumeLabels = p.options.Parameters spec.Size = uint64(requestGB * 1024 * 1024 * 1024)