Skip to content

Commit

Permalink
dbaas: improve maintenance-related flags handling (#404)
Browse files Browse the repository at this point in the history
This change adds a check in the `exo dbaas (create|update)` commands
returning an error if only either one of the maintenance DoW/time is
specified.
  • Loading branch information
falzm authored Oct 25, 2021
1 parent 6abcffc commit 9529ac1
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
10 changes: 10 additions & 0 deletions cmd/dbaas_service_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,16 @@ func (c *dbServiceCreateCmd) cmdPreRun(cmd *cobra.Command, args []string) error
}

func (c *dbServiceCreateCmd) cmdRun(cmd *cobra.Command, args []string) error {
if (cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceDOW)) ||
cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceTime))) &&
(!cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceDOW)) ||
!cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceTime))) {
return fmt.Errorf(
"both --%s and --%s must be specified",
mustCLICommandFlagName(c, &c.MaintenanceDOW),
mustCLICommandFlagName(c, &c.MaintenanceTime))
}

switch c.Type {
case "kafka":
return c.createKafka(cmd, args)
Expand Down
10 changes: 10 additions & 0 deletions cmd/dbaas_service_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,16 @@ func (c *dbServiceUpdateCmd) cmdPreRun(cmd *cobra.Command, args []string) error
}

func (c *dbServiceUpdateCmd) cmdRun(cmd *cobra.Command, args []string) error {
if (cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceDOW)) ||
cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceTime))) &&
(!cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceDOW)) ||
!cmd.Flags().Changed(mustCLICommandFlagName(c, &c.MaintenanceTime))) {
return fmt.Errorf(
"both --%s and --%s must be specified",
mustCLICommandFlagName(c, &c.MaintenanceDOW),
mustCLICommandFlagName(c, &c.MaintenanceTime))
}

ctx := exoapi.WithEndpoint(gContext, exoapi.NewReqEndpoint(gCurrentAccount.Environment, c.Zone))

databaseServices, err := cs.ListDatabaseServices(ctx, c.Zone)
Expand Down

0 comments on commit 9529ac1

Please sign in to comment.