From 9df8bfaba99dee9b8d94a5ad0012af0af861ff2a Mon Sep 17 00:00:00 2001 From: Benny Zlotnik Date: Mon, 5 Oct 2020 19:36:04 +0300 Subject: [PATCH] check FollowLink errors connection#FollowLink issues an additional HTTP call which may fail if ovirt-engine suddenly becomes unavailable. Currently it will panic, but once [1] is merged, an error will be returned. [1] https://github.com/oVirt/ovirt-engine-sdk-go/pull/215 Signed-off-by: Benny Zlotnik --- pkg/operator/storageclass_controller.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/operator/storageclass_controller.go b/pkg/operator/storageclass_controller.go index 0122b323..0a1b327d 100644 --- a/pkg/operator/storageclass_controller.go +++ b/pkg/operator/storageclass_controller.go @@ -97,7 +97,12 @@ func (c *OvirtStrogeClassController) getStorageDomain(ctx context.Context) (stri for _, attachment := range attachments.MustAttachments().Slice() { if attachment.MustBootable() { - d, _ := conn.FollowLink(attachment.MustDisk()) + d, err := conn.FollowLink(attachment.MustDisk()) + if err != nil { + klog.Errorf("Failed to follow disk: %v", err) + return "", err + } + disk, ok := d.(*ovirtsdk.Disk) klog.Info(fmt.Sprintf("Extracting Storage Domain from disk: %s", disk.MustId())) @@ -106,7 +111,11 @@ func (c *OvirtStrogeClassController) getStorageDomain(ctx context.Context) (stri return "", err } - s, _ := conn.FollowLink(disk.MustStorageDomains().Slice()[0]) + s, err := conn.FollowLink(disk.MustStorageDomains().Slice()[0]) + if err != nil { + klog.Errorf("Failed to follow Storage Domain: %v", err) + return "", err + } sd, ok := s.(*ovirtsdk.StorageDomain) klog.Info(fmt.Sprintf("Fetched Storage Domain %s", sd.MustName()))