99
1010 "github.com/spf13/cobra"
1111 sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
12+ "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api/wait"
1213
1314 "github.com/stackitcloud/stackit-cli/internal/pkg/args"
1415 "github.com/stackitcloud/stackit-cli/internal/pkg/errors"
@@ -18,6 +19,7 @@ import (
1819 "github.com/stackitcloud/stackit-cli/internal/pkg/print"
1920 "github.com/stackitcloud/stackit-cli/internal/pkg/services/sqlserverflex/client"
2021 sqlserverflexUtils "github.com/stackitcloud/stackit-cli/internal/pkg/services/sqlserverflex/utils"
22+ "github.com/stackitcloud/stackit-cli/internal/pkg/spinner"
2123)
2224
2325const (
@@ -88,6 +90,17 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
8890 return fmt .Errorf ("create SQLServer Flex user: %w" , err )
8991 }
9092
93+ // Wait for async operation, if async mode not enabled
94+ if ! model .Async {
95+ err := spinner .Run (params .Printer , "Creating SQLServer Flex user" , func () error {
96+ _ , err = wait .CreateUserWaitHandler (ctx , apiClient .DefaultAPI , model .ProjectId , model .Region , model .InstanceId , resp .Id ).WaitWithContext (ctx )
97+ return err
98+ })
99+ if err != nil {
100+ return fmt .Errorf ("wait for SQLServer Flex user creation: %w" , err )
101+ }
102+ }
103+
91104 return outputResult (params .Printer , model , instanceLabel , resp )
92105 },
93106 }
@@ -137,7 +150,12 @@ func outputResult(p *print.Printer, model *inputModel, instanceLabel string, use
137150 if user == nil {
138151 return fmt .Errorf ("user response is empty" )
139152 }
140- p .Outputf ("Created user for instance %q. User ID: %d\n \n " , instanceLabel , user .Id )
153+
154+ operationState := "Created"
155+ if model .Async {
156+ operationState = "Triggered creation of"
157+ }
158+ p .Outputf ("%s user for instance %q. User ID: %d\n \n " , operationState , instanceLabel , user .Id )
141159 p .Outputf ("Username: %s\n " , user .Username )
142160 p .Outputf ("Password: %s\n " , user .Password )
143161 if len (user .Roles ) != 0 {
0 commit comments