diff --git a/internal/pkg/services/iaas/utils/utils.go b/internal/pkg/services/iaas/utils/utils.go index 43117701c..6f6bd4c83 100644 --- a/internal/pkg/services/iaas/utils/utils.go +++ b/internal/pkg/services/iaas/utils/utils.go @@ -39,8 +39,8 @@ func GetPublicIP(ctx context.Context, apiClient iaas.DefaultAPI, projectId, regi return "", "", fmt.Errorf("get public ip: %w", err) } associatedResourceId := "" - if resp.NetworkInterface.IsSet() { - associatedResourceId = *resp.NetworkInterface.Get() + if networkInterface := resp.NetworkInterface.Get(); networkInterface != nil { + associatedResourceId = *networkInterface } return *resp.Ip, associatedResourceId, nil } diff --git a/internal/pkg/services/iaas/utils/utils_test.go b/internal/pkg/services/iaas/utils/utils_test.go index bb27d10cf..4c2753e6f 100644 --- a/internal/pkg/services/iaas/utils/utils_test.go +++ b/internal/pkg/services/iaas/utils/utils_test.go @@ -263,6 +263,17 @@ func TestGetPublicIp(t *testing.T) { }, wantErr: true, }, + { + name: "nil network interface", + args: args{ + getPublicIpResp: &iaas.PublicIp{ + Ip: utils.Ptr("1.2.3.4"), + NetworkInterface: *iaas.NewNullableString(nil), + }, + }, + wantPublicIp: "1.2.3.4", + wantAssociatedResource: "", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {