Skip to content

Commit 32fba6c

Browse files
committed
add waiters
1 parent 56eda3b commit 32fba6c

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/stackitcloud/stackit-sdk-go/core v0.12.0
1717
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.2.0
1818
github.com/stackitcloud/stackit-sdk-go/services/dns v0.9.1
19-
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v0.12.0
19+
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v0.13.0
2020
github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.13.0
2121
github.com/stackitcloud/stackit-sdk-go/services/postgresflex v0.13.0
2222
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.8.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ github.com/stackitcloud/stackit-sdk-go/services/logme v0.13.0 h1:/wqs+pfHSjFWTak
9191
github.com/stackitcloud/stackit-sdk-go/services/logme v0.13.0/go.mod h1:bj9cn1treNSxKTRCEmESwqfENN8vCYn60HUnEA0P83c=
9292
github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.13.0 h1:qioXHNeQ2xdwT5iGOk0c3hQIpct7zlAYzLRqXvsJ7CA=
9393
github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.13.0/go.mod h1:kPetkX9hNm9HkRyiKQL/tlgdi8frZdMP8afg0mEvQ9s=
94-
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v0.12.0 h1:/m6N/CdsFxomexsowU7PwT1S4UTmI39PnEvvWGsDh1s=
95-
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v0.12.0/go.mod h1:iFerEzGmkg6R13ldFUyHUWHm0ac9cS4ftTDLhP0k/dU=
94+
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v0.13.0 h1:Dhanx9aV5VRfpHg22Li07661FbRT5FR9/M6FowN08a8=
95+
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v0.13.0/go.mod h1:iFerEzGmkg6R13ldFUyHUWHm0ac9cS4ftTDLhP0k/dU=
9696
github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.9.0 h1:rWgy4/eCIgyA2dUuc4a30pldmS6taQDwiLqoeZmyeP8=
9797
github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.9.0/go.mod h1:dkVMJI88eJ3Xs0ZV15r4tUpgitUGJXcvrX3RL4Zq2bQ=
9898
github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.13.0 h1:dzt2wd1QkFVctKPQDBlyMCsHEJV4Bf2bRkZTUFFCZhs=

internal/cmd/mongodbflex/backup/restore/restore.go

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ import (
1212
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
1313
"github.com/stackitcloud/stackit-cli/internal/pkg/services/mongodbflex/client"
1414
mongodbUtils "github.com/stackitcloud/stackit-cli/internal/pkg/services/mongodbflex/utils"
15+
"github.com/stackitcloud/stackit-cli/internal/pkg/spinner"
1516

1617
"github.com/spf13/cobra"
1718
"github.com/stackitcloud/stackit-sdk-go/services/mongodbflex"
19+
"github.com/stackitcloud/stackit-sdk-go/services/mongodbflex/wait"
1820
)
1921

2022
const (
@@ -47,11 +49,11 @@ func NewCmd(p *print.Printer) *cobra.Command {
4749
`Restores a MongoDB Flex instance with id "yyy" using backup with id "zzz"`,
4850
`$ stackit mongodbflex backup restore --instance-id yyy --backup-id zzz`),
4951
examples.NewExample(
50-
`Restores a MongoDB Flex instance with id "yyy" using backup with timestamp "zzz"`,
52+
`Clone a MongoDB Flex instance with id "yyy" via point-in-time restore to timestamp "zzz"`,
5153
`$ stackit mongodbflex backup restore --instance-id yyy --timestamp zzz`),
5254
examples.NewExample(
5355
`Restores a MongoDB Flex instance with id "yyy" using backup from instance with id "zzz" with backup id "aaa"`,
54-
`$ stackit mongodbflex backup restore --instance-id yyy --backup-instance-id zzz --backup-id aaa`),
56+
`$ stackit mongodbflex backup restore --instance-id zzz --backup-instance-id yyy --backup-id aaa`),
5557
),
5658
RunE: func(cmd *cobra.Command, args []string) error {
5759
ctx := context.Background()
@@ -96,16 +98,37 @@ func NewCmd(p *print.Printer) *cobra.Command {
9698
return fmt.Errorf("restore MongoDB Flex instance: %w", err)
9799
}
98100

101+
if !model.Async {
102+
s := spinner.New(p)
103+
s.Start("Restoring instance")
104+
_, err = wait.RestoreInstanceWaitHandler(ctx, apiClient, model.ProjectId, model.InstanceId, model.BackupId).WaitWithContext(ctx)
105+
if err != nil {
106+
return fmt.Errorf("wait for MongoDB Flex instance restoration: %w", err)
107+
}
108+
s.Stop()
109+
}
110+
99111
p.Outputf("Restored instance %q with backup %q\n", model.InstanceId, model.BackupId)
100112
return nil
101113
}
102114

103-
// Else, if timestamp is provided, clone the instance from the backup with the timestep
115+
// Else, if timestamp is provided, clone the instance from a point-in-time snapshot
104116
req := buildCloneRequest(ctx, model, apiClient)
105117
_, err = req.Execute()
106118
if err != nil {
107119
return fmt.Errorf("clone MongoDB Flex instance: %w", err)
108120
}
121+
122+
if !model.Async {
123+
s := spinner.New(p)
124+
s.Start("Cloning instance")
125+
_, err = wait.CloneInstanceWaitHandler(ctx, apiClient, model.ProjectId, model.InstanceId).WaitWithContext(ctx)
126+
if err != nil {
127+
return fmt.Errorf("wait for MongoDB Flex instance cloning: %w", err)
128+
}
129+
s.Stop()
130+
}
131+
109132
p.Outputf("Cloned instance %q from backup with timestamp %q\n", model.InstanceId, model.Timestamp)
110133
return nil
111134
},

0 commit comments

Comments
 (0)