From 70e0f8197aea24cf585ca4371663d82398b1d427 Mon Sep 17 00:00:00 2001 From: Derek Pryor Date: Tue, 21 Dec 2021 14:07:53 -0800 Subject: [PATCH] Fix the leak of vSphere client sessions Implement the test cleanup callback method to close any open vSphere client connections. Without this clean up sessions were leaking during testing. --- test/e2e/storage/drivers/in_tree.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index 554dbb5328e..afb1487304d 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -1491,10 +1491,19 @@ func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *storageframework func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { return &storageframework.PerTestConfig{ - Driver: v, - Prefix: "vsphere", - Framework: f, - }, func() {} + Driver: v, + Prefix: "vsphere", + Framework: f, + }, func() { + // Driver Cleanup function + // Logout each vSphere client connection to prevent session leakage + nodes := vspheretest.GetReadySchedulableNodeInfos() + for _, node := range nodes { + if node.VSphere.Client != nil { + node.VSphere.Client.Logout(context.TODO()) + } + } + } } func (v *vSphereDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {