From 1992c42ec963415e4837880edd730eec979145d7 Mon Sep 17 00:00:00 2001 From: Volker Theile Date: Wed, 2 Oct 2024 12:12:42 +0200 Subject: [PATCH] Make timeout during waiting for uploadImage configurable Add the fields `UploadImageRetryCount` and `UploadImageRetryDelay` to `OpenstackSourceSpec`. Related to: https://github.com/harvester/harvester/issues/6675 Signed-off-by: Volker Theile --- pkg/source/openstack/client_test.go | 71 +++++++++++++++++++---------- 1 file changed, 46 insertions(+), 25 deletions(-) diff --git a/pkg/source/openstack/client_test.go b/pkg/source/openstack/client_test.go index c1175db..faf864b 100644 --- a/pkg/source/openstack/client_test.go +++ b/pkg/source/openstack/client_test.go @@ -128,40 +128,61 @@ func Test_GenerateVirtualMachine(t *testing.T) { assert.NotEmpty(newVM.Spec.Template.Spec.Domain.Devices.Interfaces, "expected to find atleast 1 interface for pod-network") } -func Test_DefaultOptions(t *testing.T) { +func Test_ClientOptions(t *testing.T) { assert := require.New(t) assert.Equal(c.options.UploadImageRetryCount, migration.OpenStackDefaultRetryCount) assert.Equal(c.options.UploadImageRetryDelay, migration.OpenStackDefaultRetryDelay) } -func Test_CustomOptions(t *testing.T) { +func Test_SourceGetOptions(t *testing.T) { assert := require.New(t) - - s, err := SetupOpenstackSecretFromEnv("devstack") - if err != nil { - logrus.Fatal(err) - } - - endpoint, region, err := SetupOpenstackSourceFromEnv() - if err != nil { - logrus.Fatal(err) - } - - source := migration.OpenstackSource{ - Spec: migration.OpenstackSourceSpec{ - OpenstackSourceOptions: migration.OpenstackSourceOptions{ - UploadImageRetryCount: 10, - UploadImageRetryDelay: 30, + testCases := []struct { + desc string + options migration.OpenstackSourceOptions + expected migration.OpenstackSourceOptions + }{ + { + desc: "custom count and delay", + options: migration.OpenstackSourceOptions{ + UploadImageRetryCount: 25, + UploadImageRetryDelay: 15, + }, + expected: migration.OpenstackSourceOptions{ + UploadImageRetryCount: 25, + UploadImageRetryDelay: 15, + }, + }, + { + desc: "custom count and default delay", + options: migration.OpenstackSourceOptions{ + UploadImageRetryCount: 100, + }, + expected: migration.OpenstackSourceOptions{ + UploadImageRetryCount: 100, + UploadImageRetryDelay: migration.OpenStackDefaultRetryDelay, + }, + }, + { + desc: "default count and custom delay", + options: migration.OpenstackSourceOptions{ + UploadImageRetryDelay: 50, + }, + expected: migration.OpenstackSourceOptions{ + UploadImageRetryCount: migration.OpenStackDefaultRetryCount, + UploadImageRetryDelay: 50, }, }, } - options := source.GetOptions().(migration.OpenstackSourceOptions) - nc, err := NewClient(context.TODO(), endpoint, region, s, options) - if err != nil { - logrus.Fatal(err) - } + for _, tc := range testCases { + source := migration.OpenstackSource{ + Spec: migration.OpenstackSourceSpec{ + OpenstackSourceOptions: tc.options, + }, + } + options := source.GetOptions().(migration.OpenstackSourceOptions) - assert.Equal(nc.options.UploadImageRetryCount, 10) - assert.Equal(nc.options.UploadImageRetryDelay, 30) + assert.Equal(options.UploadImageRetryCount, tc.expected.UploadImageRetryCount, tc.desc) + assert.Equal(options.UploadImageRetryDelay, tc.expected.UploadImageRetryDelay, tc.desc) + } }