From de1ca3289ef7f007d56a5cd120ce440fed793840 Mon Sep 17 00:00:00 2001 From: Seth Jennings Date: Fri, 15 Nov 2019 14:30:26 -0600 Subject: [PATCH] make volumeClient failure fatal only when needed --- pkg/cloud/openstack/clients/machineservice.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/cloud/openstack/clients/machineservice.go b/pkg/cloud/openstack/clients/machineservice.go index f9d11c9ae4..df8f8673d1 100644 --- a/pkg/cloud/openstack/clients/machineservice.go +++ b/pkg/cloud/openstack/clients/machineservice.go @@ -226,12 +226,10 @@ func NewInstanceServiceFromCloud(cloud clientconfig.Cloud) (*InstanceService, er return nil, fmt.Errorf("Create ImageClient err: %v", err) } - volumeClient, err := openstack.NewBlockStorageV3(provider, gophercloud.EndpointOpts{ + // defer error reporting until the volumeClient would actually be needed + volumeClient, _ := openstack.NewBlockStorageV3(provider, gophercloud.EndpointOpts{ Region: clientOpts.RegionName, }) - if err != nil { - return nil, fmt.Errorf("Create VolumeClient err: %v", err) - } return &InstanceService{ provider: provider, @@ -637,6 +635,10 @@ func (is *InstanceService) InstanceCreate(clusterName string, name string, clust // if source type is "image" then we have to create a volume from the image first klog.Infof("Creating a bootable volume from image %v.", config.RootVolume.SourceUUID) + if is.volumeClient == nil { + return nil, fmt.Errorf("Volume requested but block storage service is not available") + } + imageID, err := getImageID(is, config.RootVolume.SourceUUID) if err != nil { return nil, fmt.Errorf("Create new server err: %v", err)