Skip to content

Commit

Permalink
feat: error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Meng-20 committed Oct 3, 2024
1 parent 9537297 commit 3a5eb11
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 18 deletions.
10 changes: 7 additions & 3 deletions pkg/api/api_default_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -1004,9 +1004,13 @@ func (cfm *CfmApiService) HostsRenameById(ctx context.Context, hostId string, ne
}

// Make sure the newHostId doesn't exist
existHost, err := manager.GetHostById(ctx, newHostId)
if existHost != nil {
return formatErrorResp(ctx, err.(*common.RequestError))
_, exist := manager.GetHostById(ctx, newHostId)
if exist == nil {
err := common.RequestError{
StatusCode: common.StatusHostIdDuplicate,
Err: fmt.Errorf("the new name (%s) already exists", newHostId),
}
return formatErrorResp(ctx, &err)
}

//Rename the cxl host with the new id
Expand Down
10 changes: 9 additions & 1 deletion pkg/common/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ const (
StatusHostResyncFailure //409

StatusApplianceRenameFailure //409
StatusBladeRenameFailure //409
StatusHostRenameFailure //409

StatusApplianceIdDuplicate //409
StatusBladeIdDuplicate //409
Expand Down Expand Up @@ -180,6 +182,10 @@ func (e StatusCodeType) String() string {
return "Host Id Already Exist"
case StatusApplianceRenameFailure:
return "Rename Appliance Failure"
case StatusBladeRenameFailure:
return "Rename Blade Failure"
case StatusHostRenameFailure:
return "Rename Host Failure"
}
return "Unknown"

Expand Down Expand Up @@ -225,7 +231,9 @@ func (e StatusCodeType) HttpStatusCode() int {
StatusBladeIdDuplicate,
StatusPortIdDuplicate,
StatusHostIdDuplicate,
StatusApplianceRenameFailure:
StatusApplianceRenameFailure,
StatusBladeRenameFailure,
StatusHostRenameFailure:
return http.StatusConflict // 409
case StatusBackendInterfaceFailure,
StatusBladeCreateSessionFailure,
Expand Down
20 changes: 6 additions & 14 deletions pkg/manager/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,7 @@ func RenameAppliance(ctx context.Context, appliance *Appliance, newApplianceId s
// delete appliance and the associated blades
_, err := DeleteApplianceById(ctx, appliance.Id)
if err != nil {
newErr := fmt.Errorf("failed to delete appliance [%s]: %w", appliance.Id, err)
logger.Error(newErr, "failure: delete appliance by id")
return nil, &common.RequestError{StatusCode: common.StatusApplianceDeleteSessionFailure, Err: newErr}
return nil, &common.RequestError{StatusCode: common.StatusApplianceDeleteSessionFailure, Err: err}
}

// add appliance back with the new id
Expand All @@ -151,9 +149,7 @@ func RenameAppliance(ctx context.Context, appliance *Appliance, newApplianceId s
}
newAppliance, err := AddAppliance(ctx, &c)
if err != nil {
newErr := fmt.Errorf("failed to add appliance [%s]: %w", newApplianceId, err)
logger.Error(newErr, "failure: add appliance with new id")
return nil, &common.RequestError{StatusCode: common.StatusApplianceCreateSessionFailure, Err: newErr}
return nil, &common.RequestError{StatusCode: common.StatusApplianceCreateSessionFailure, Err: err}
}

var failedBladeIds []string
Expand Down Expand Up @@ -208,16 +204,12 @@ func RenameBlade(ctx context.Context, blade *Blade, newBladeId string) (*Blade,
// delete blade
_, err := appliance.DeleteBladeById(ctx, blade.Id)
if err != nil {
newErr := fmt.Errorf("failed to delete blade [%s]: %w", blade.Id, err)
logger.Error(newErr, "failure: delete blade by id")
return nil, &common.RequestError{StatusCode: common.StatusBladeDeleteSessionFailure, Err: newErr}
return nil, &common.RequestError{StatusCode: common.StatusBladeRenameFailure, Err: err}
}
// Add the balde back with the new name
newBlade, err := appliance.AddBlade(ctx, c)
if err != nil {
newErr := fmt.Errorf("failed to add blade [%s]: %w", newBladeId, err)
logger.Error(newErr, "failure: add blade with new id")
return nil, &common.RequestError{StatusCode: common.StatusBladeCreateSessionFailure, Err: newErr}
return nil, &common.RequestError{StatusCode: common.StatusBladeRenameFailure, Err: err}
}
return newBlade, nil
}
Expand Down Expand Up @@ -387,13 +379,13 @@ func RenameHost(ctx context.Context, host *Host, newHostId string) (*Host, error
// delete host
_, err := DeleteHostById(ctx, host.Id)
if err != nil {
return nil, err.(*common.RequestError)
return nil, &common.RequestError{StatusCode: common.StatusBladeRenameFailure, Err: err}
}

// Add the host back with the new name
newHost, err := AddHost(ctx, c)
if err != nil {
return nil, err.(*common.RequestError)
return nil, &common.RequestError{StatusCode: common.StatusBladeRenameFailure, Err: err}
}
return newHost, nil
}
Expand Down

0 comments on commit 3a5eb11

Please sign in to comment.