From 1de7d4781923af2cb0042dd3d693c33b903ff4b1 Mon Sep 17 00:00:00 2001 From: rohitjogvmw Date: Tue, 15 Aug 2017 17:55:53 -0700 Subject: [PATCH] Using hash/fnv to generate the vmName vSphere has limitation of 80 characters for vmName. with vsphere-k8s prefix and "vmdisk.volumeOptions.Name" vmName can become easily bigger than 80 chars. Used hash funciton just of the "vmdisk.volumeOptions.Name" part as cleanup dummyVm logic depends on prefix "vsphere-k8s" --- .../providers/vsphere/vclib/diskmanagers/vmdm.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go index 812ad845064..6e3302edd0c 100644 --- a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go @@ -18,6 +18,7 @@ package diskmanagers import ( "fmt" + "hash/fnv" "strings" "github.com/golang/glog" @@ -95,7 +96,9 @@ func (vmdisk vmDiskManager) Create(ctx context.Context, datastore *vclib.Datasto var dummyVM *vclib.VirtualMachine // Check if VM already exist in the folder. // If VM is already present, use it, else create a new dummy VM. - dummyVMFullName := vclib.DummyVMPrefixName + "-" + vmdisk.volumeOptions.Name + fnvHash := fnv.New32a() + fnvHash.Write([]byte(vmdisk.volumeOptions.Name)) + dummyVMFullName := vclib.DummyVMPrefixName + "-" + fmt.Sprint(fnvHash.Sum32()) dummyVM, err = datastore.Datacenter.GetVMByPath(ctx, vmdisk.vmOptions.VMFolder.InventoryPath+"/"+dummyVMFullName) if err != nil { // Create a dummy VM