From 378a24c426cd2129ad4fae8b3d726e5a465f15a3 Mon Sep 17 00:00:00 2001 From: Yogesh Sobale <6104071+ysobale@users.noreply.github.com> Date: Tue, 21 Jul 2020 21:10:12 +0800 Subject: [PATCH] Vsan Performance Data Collection API (#2021) --- vsan/client.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/vsan/client.go b/vsan/client.go index f6ac98606..3648da290 100644 --- a/vsan/client.go +++ b/vsan/client.go @@ -38,6 +38,10 @@ var ( Type: "VsanVcClusterConfigSystem", Value: "vsan-cluster-config-system", } + VsanPerformanceManagerInstance = vimtypes.ManagedObjectReference{ + Type: "VsanPerformanceManager", + Value: "vsan-performance-manager", + } ) // Client used for accessing vsan health APIs. @@ -65,3 +69,18 @@ func (c *Client) VsanClusterGetConfig(ctx context.Context, cluster vimtypes.Mana } return &res.Returnval, nil } + +// VsanPerfQueryPerf calls the vsan performance manager API +func (c *Client) VsanPerfQueryPerf(ctx context.Context, cluster *vimtypes.ManagedObjectReference, qSpecs []vsantypes.VsanPerfQuerySpec) ([]vsantypes.VsanPerfEntityMetricCSV, error) { + req := vsantypes.VsanPerfQueryPerf{ + This: VsanPerformanceManagerInstance, + Cluster: cluster, + QuerySpecs: qSpecs, + } + + res, err := methods.VsanPerfQueryPerf(ctx, c.serviceClient, &req) + if err != nil { + return nil, err + } + return res.Returnval, nil +}