fix breaking change in pkg/bindings

pkg/bindings is considered stable. We cannot make changes that would
break any users. If someone uses this field their code would fail to
compile. Since the fix is obviously correct we will keep it but also
add the old field back in to keep compatibility with old code.

When both fields are set ImportArchive is preferred over ImportAchive.

Fixes changes from commit 217197340c8f

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger
2022-03-15 13:58:55 +01:00
parent 68ce83fe91
commit 0db184fb08
3 changed files with 38 additions and 9 deletions

View File

@ -79,7 +79,14 @@ func Restore(ctx context.Context, nameOrID string, options *RestoreOptions) (*en
// Open the to-be-imported archive if needed. // Open the to-be-imported archive if needed.
var r io.Reader var r io.Reader
if i := options.GetImportArchive(); i != "" { i := options.GetImportArchive()
if i == "" {
// backwards compat, ImportAchive is a typo but we still have to
// support this to avoid breaking users
// TODO: remove ImportAchive with 5.0
i = options.GetImportAchive()
}
if i != "" {
params.Set("import", "true") params.Set("import", "true")
r, err = os.Open(i) r, err = os.Open(i)
if err != nil { if err != nil {

View File

@ -64,6 +64,13 @@ type RestoreOptions struct {
IgnoreVolumes *bool IgnoreVolumes *bool
IgnoreStaticIP *bool IgnoreStaticIP *bool
IgnoreStaticMAC *bool IgnoreStaticMAC *bool
// ImportAchive is the path to an archive which contains the checkpoint data.
//
// Deprecated: Use ImportArchive instead. This field name is a typo and
// will be removed in a future major release.
ImportAchive *string
// ImportArchive is the path to an archive which contains the checkpoint data.
// ImportArchive is preferred over ImportAchive when both are set.
ImportArchive *string ImportArchive *string
Keep *bool Keep *bool
Name *string Name *string

View File

@ -77,6 +77,21 @@ func (o *RestoreOptions) GetIgnoreStaticMAC() bool {
return *o.IgnoreStaticMAC return *o.IgnoreStaticMAC
} }
// WithImportAchive set field ImportAchive to given value
func (o *RestoreOptions) WithImportAchive(value string) *RestoreOptions {
o.ImportAchive = &value
return o
}
// GetImportAchive returns value of field ImportAchive
func (o *RestoreOptions) GetImportAchive() string {
if o.ImportAchive == nil {
var z string
return z
}
return *o.ImportAchive
}
// WithImportArchive set field ImportArchive to given value // WithImportArchive set field ImportArchive to given value
func (o *RestoreOptions) WithImportArchive(value string) *RestoreOptions { func (o *RestoreOptions) WithImportArchive(value string) *RestoreOptions {
o.ImportArchive = &value o.ImportArchive = &value