Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 10 additions & 11 deletions internal/cmd/ske/cluster/create/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,20 +95,19 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
return err
}

// Check if the project is enabled before trying to create
enabled, err := serviceEnablementUtils.ProjectEnabled(ctx, serviceEnablementApiClient, model.ProjectId, model.Region)
if err != nil {
return err
}
if !enabled {
return &errors.ServiceDisabledError{
Service: "ske",
}
}

// Check if cluster exists
exists, err := skeUtils.ClusterExists(ctx, apiClient.DefaultAPI, model.ProjectId, model.Region, model.ClusterName)
if err != nil {
// Check if the project is enabled
enabled, err := serviceEnablementUtils.ProjectEnabled(ctx, serviceEnablementApiClient, model.ProjectId, model.Region)
if err != nil {
return fmt.Errorf("check if project is enabled failed: %w", err)
}
if !enabled {
return &errors.ServiceDisabledError{
Service: "ske",
}
}
return err

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's a bit late, but wouldn't this hide the original error from line 99 (ClusterExists) when service is enabled and the call to ProjectEnabled would return a nil error?
So sth. like

			exists, err := skeUtils.ClusterExists(ctx, apiClient.DefaultAPI, model.ProjectId, model.Region, model.ClusterName)
            // err is now sth. like 'server is down'
			if err != nil {
				// Check if the project is enabled
				enabled, err := serviceEnablementUtils.ProjectEnabled(ctx, serviceEnablementApiClient, model.ProjectId, model.Region)
                 // let's assume call succeeds, enabled=true and err=nil now
				if err != nil {
					return fmt.Errorf("check if project is enabled failed: %w", err)
				}
				if !enabled {
					return &errors.ServiceDisabledError{
						Service: "ske",
					}
				}
				return err
                // we return nil here instead of 'server is down'

}
if exists {
Expand Down
19 changes: 10 additions & 9 deletions internal/cmd/ske/cluster/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,20 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
return err
}

// Check if SKE is enabled for this project
enabled, err := serviceEnablementUtils.ProjectEnabled(ctx, serviceEnablementApiClient, model.ProjectId, model.Region)
if err != nil {
return err
}
if !enabled {
return fmt.Errorf("SKE isn't enabled for this project, please run 'stackit ske enable'")
}

// Call API
req := buildRequest(ctx, model, apiClient)
resp, err := req.Execute()
if err != nil {
// Check if SKE is enabled for this project
enabled, err := serviceEnablementUtils.ProjectEnabled(ctx, serviceEnablementApiClient, model.ProjectId, model.Region)
if err != nil {
return fmt.Errorf("check if project is enabled failed: %w", err)
}
if !enabled {
return &errors.ServiceDisabledError{
Service: "ske",
}
}
return fmt.Errorf("get SKE clusters: %w", err)
}
clusters := resp.Items
Expand Down
Loading