From 50c45f7d2a315f35e2b889ea87af1ecb6819ad7d Mon Sep 17 00:00:00 2001 From: "Lucas Y.Z. Zhang" Date: Thu, 8 Sep 2016 17:40:49 +0800 Subject: [PATCH] Only defer client.Logout if client has been successfully returned. --- vsphere-influxdb.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vsphere-influxdb.go b/vsphere-influxdb.go index 088c727..a338aaa 100644 --- a/vsphere-influxdb.go +++ b/vsphere-influxdb.go @@ -131,12 +131,12 @@ func (vcenter *VCenter) Init(config Configuration) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() client, err := vcenter.Connect() - defer client.Logout(ctx) if err != nil { errlog.Println("Could not connect to vcenter: ", vcenter.Hostname) errlog.Println("Error: ", err) return } + defer client.Logout(ctx) var perfmanager mo.PerformanceManager err = client.RetrieveOne(ctx, *client.ServiceContent.PerfManager, nil, &perfmanager) if err != nil { @@ -182,12 +182,12 @@ func (vcenter *VCenter) Query(config Configuration, InfluxDBClient influxclient. // Get the client client, err := vcenter.Connect() - defer client.Logout(ctx) if err != nil { errlog.Println("Could not connect to vcenter: ", vcenter.Hostname) errlog.Println("Error: ", err) return } + defer client.Logout(ctx) // Create the view manager var viewManager mo.ViewManager