From 0ac00d3522b4c3dd6e50630bae3bbd11c06e1373 Mon Sep 17 00:00:00 2001 From: rohitjogvmw Date: Mon, 21 Aug 2017 14:58:01 -0700 Subject: [PATCH] Automated-cherry-pick-of-#50722-upstream-release-1.7 Fix for Policy based volume provisioning failure due to long VM Name in vSphere cloud provider #50722 --- pkg/cloudprovider/providers/vsphere/vsphere.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/vsphere/vsphere.go b/pkg/cloudprovider/providers/vsphere/vsphere.go index e400046761f7..e36fe797d9ba 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -19,6 +19,7 @@ package vsphere import ( "errors" "fmt" + "hash/fnv" "io" "io/ioutil" "net" @@ -1401,7 +1402,9 @@ func (vs *VSphere) CreateVolume(volumeOptions *VolumeOptions) (volumePath string // Check if the VM exists in kubernetes cluster folder. // The kubernetes cluster folder - vs.cfg.Global.WorkingDir is where all the nodes in the kubernetes cluster are created. - dummyVMFullName := DummyVMPrefixName + "-" + volumeOptions.Name + fnvHash := fnv.New32a() + fnvHash.Write([]byte(volumeOptions.Name)) + dummyVMFullName := DummyVMPrefixName + "-" + fmt.Sprint(fnvHash.Sum32()) vmRegex := vs.cfg.Global.WorkingDir + dummyVMFullName dummyVM, err := f.VirtualMachine(ctx, vmRegex) if err != nil {