Skip to content
Merged
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
2 changes: 1 addition & 1 deletion api/k8s/application/k8sApplicationRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ func (handler *K8sApplicationRestHandlerImpl) DeleteResource(w http.ResponseWrit
errCode = apiErr.HttpStatusCode
switch errCode {
case http.StatusNotFound:
errorMessage := "resource not found"
errorMessage := k8s.ResourceNotFoundErr
err = fmt.Errorf("%s: %w", errorMessage, err)
}
}
Expand Down
12 changes: 12 additions & 0 deletions api/k8s/capacity/k8sCapacityRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ package capacity
import (
"encoding/json"
"errors"
"fmt"
"github.com/devtron-labs/common-lib/utils"
"github.com/devtron-labs/devtron/pkg/k8s"
"net/http"
"strconv"

Expand Down Expand Up @@ -311,6 +314,15 @@ func (handler *K8sCapacityRestHandlerImpl) DeleteNode(w http.ResponseWriter, r *
}
updatedManifest, err := handler.k8sCapacityService.DeleteNode(r.Context(), &nodeDelReq)
if err != nil {
errCode := http.StatusInternalServerError
if apiErr, ok := err.(*utils.ApiError); ok {
errCode = apiErr.HttpStatusCode
switch errCode {
case http.StatusNotFound:
errorMessage := k8s.ResourceNotFoundErr
err = fmt.Errorf("%s: %w", errorMessage, err)
}
}
handler.logger.Errorw("error in deleting node", "err", err, "deleteRequest", nodeDelReq)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ require (
github.com/davecgh/go-spew v1.1.1
github.com/deckarep/golang-set v1.8.0
github.com/devtron-labs/authenticator v0.4.33
github.com/devtron-labs/common-lib v0.0.12
github.com/devtron-labs/common-lib v0.0.14
github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb
github.com/evanphx/json-patch v5.6.0+incompatible
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -224,8 +224,8 @@ github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4 h1:YcpmyvADG
github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
github.com/devtron-labs/authenticator v0.4.33 h1:FpAV3ZgFluaRFcMwPpwxr/mwSipJ16XRvgABq3BzP5Y=
github.com/devtron-labs/authenticator v0.4.33/go.mod h1:ozNfT8WcruiSgnUbyp48WVfc41++W6xYXhKFp67lNTU=
github.com/devtron-labs/common-lib v0.0.12 h1:HirqTWtaXWPbfGeqQurjtn26b2Az7sMFZ1JAAz2koNM=
github.com/devtron-labs/common-lib v0.0.12/go.mod h1:95/DizzVXu1kHap/VwEvdxwgd+BvPVYc0bJzt8yqGDU=
github.com/devtron-labs/common-lib v0.0.14 h1:7P0Z87Des8Bni+aVHhPITjzKITuCVOjwAHOgElrh/rk=
github.com/devtron-labs/common-lib v0.0.14/go.mod h1:95/DizzVXu1kHap/VwEvdxwgd+BvPVYc0bJzt8yqGDU=
github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb h1:CkfQQgZc950/hTPqtQSiHV2RmZgkBLGCzwR02FZYjAU=
github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb/go.mod h1:pjLjgoa1GzbkOkvbMyP4SAKsaiK7eG6GoQCNauG03JA=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
Expand Down
14 changes: 4 additions & 10 deletions pkg/clusterTerminalAccess/UserTerminalAccessService.go
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ func (impl *UserTerminalAccessServiceImpl) DisconnectTerminalSession(ctx context
namespace := metadataMap["Namespace"]
err = impl.DeleteTerminalPod(ctx, terminalAccessData.ClusterId, terminalAccessData.PodName, namespace)
if err != nil {
if isResourceNotFoundErr(err) {
if k8s.IsResourceNotFoundErr(err) {
accessSessionData.terminateTriggered = true
err = nil
}
Expand All @@ -356,12 +356,6 @@ func getErrorDetailedMessage(err error) string {
}
return ""
}
func isResourceNotFoundErr(err error) bool {
if errStatus, ok := err.(*k8sErrors.StatusError); ok && errStatus.Status().Reason == metav1.StatusReasonNotFound {
return true
}
return false
}

func (impl *UserTerminalAccessServiceImpl) StopTerminalSession(ctx context.Context, userTerminalAccessId int) {
impl.Logger.Infow("terminal stop request received for user", "userTerminalAccessId", userTerminalAccessId)
Expand Down Expand Up @@ -518,7 +512,7 @@ func (impl *UserTerminalAccessServiceImpl) SyncPodStatus() {
impl.deleteClusterTerminalTemplates(context.Background(), terminalAccessData.ClusterId, terminalAccessData.PodName, namespace)
err = impl.DeleteTerminalPod(context.Background(), terminalAccessData.ClusterId, terminalAccessData.PodName, namespace)
if err != nil {
if isResourceNotFoundErr(err) {
if k8s.IsResourceNotFoundErr(err) {
errorDetailedMessage := getErrorDetailedMessage(err)
terminalPodStatusString = fmt.Sprintf("%s/%s", string(models.TerminalPodTerminated), errorDetailedMessage)
} else {
Expand Down Expand Up @@ -830,7 +824,7 @@ func (impl *UserTerminalAccessServiceImpl) getPodManifest(ctx context.Context, c
}
response, err := impl.K8sCommonService.GetResource(ctx, request)
if err != nil {
if isResourceNotFoundErr(err) {
if k8s.IsResourceNotFoundErr(err) {
errorDetailedMessage := getErrorDetailedMessage(err)
terminalPodStatusString := fmt.Sprintf("%s/%s", string(models.TerminalPodTerminated), errorDetailedMessage)
return nil, errors.New(terminalPodStatusString)
Expand Down Expand Up @@ -1146,7 +1140,7 @@ func (impl *UserTerminalAccessServiceImpl) forceDeletePod(ctx context.Context, p
}
podRequestBean.K8sRequest.ForceDelete = true
_, err = impl.K8sCommonService.DeleteResource(ctx, podRequestBean)
if err != nil && !isResourceNotFoundErr(err) {
if err != nil && !k8s.IsResourceNotFoundErr(err) {
return false
}
return true
Expand Down
7 changes: 7 additions & 0 deletions pkg/k8s/application/k8sApplicationService.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/devtron-labs/common-lib/utils"
"github.com/devtron-labs/devtron/api/helm-app/gRPC"
client "github.com/devtron-labs/devtron/api/helm-app/service"
"io"
Expand Down Expand Up @@ -1002,6 +1003,12 @@ func (impl *K8sApplicationServiceImpl) RecreateResource(ctx context.Context, req
func (impl *K8sApplicationServiceImpl) DeleteResourceWithAudit(ctx context.Context, request *k8s.ResourceRequestBean, userId int32) (*k8s2.ManifestResponse, error) {
resp, err := impl.k8sCommonService.DeleteResource(ctx, request)
if err != nil {
if k8s.IsResourceNotFoundErr(err) {
return nil, &utils.ApiError{Code: "404",
HttpStatusCode: http.StatusNotFound,
InternalMessage: err.Error(),
UserMessage: k8s.ResourceNotFoundErr}
}
impl.logger.Errorw("error in deleting resource", "err", err)
return nil, err
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/k8s/bean.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,7 @@ type ResourceGetResponse struct {
ManifestResponse *k8s.ManifestResponse `json:"manifestResponse"`
SecretViewAccess bool `json:"secretViewAccess"` // imp: only for resource browser, this is being used to check whether a user can see obscured secret values or not.
}

var (
ResourceNotFoundErr = "Unable to locate Kubernetes resource."
)
7 changes: 7 additions & 0 deletions pkg/k8s/capacity/k8sCapacityService.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package capacity
import (
"context"
"fmt"
"github.com/devtron-labs/common-lib/utils"
k8s2 "github.com/devtron-labs/common-lib/utils/k8s"
"github.com/devtron-labs/devtron/pkg/cluster"
"github.com/devtron-labs/devtron/pkg/k8s"
Expand Down Expand Up @@ -569,6 +570,12 @@ func (impl *K8sCapacityServiceImpl) DeleteNode(ctx context.Context, request *bea
// Here Sending userId as 0 as appIdentifier is being sent nil so user id is not used in method. Update userid if appIdentifier is used
manifestResponse, err := impl.k8sCommonService.DeleteResource(ctx, resourceRequest)
if err != nil {
if k8s.IsResourceNotFoundErr(err) {
return nil, &utils.ApiError{Code: "404",
HttpStatusCode: http.StatusNotFound,
InternalMessage: err.Error(),
UserMessage: k8s.ResourceNotFoundErr}
}
impl.logger.Errorw("error in deleting node", "err", err)
return nil, err
}
Expand Down
13 changes: 13 additions & 0 deletions pkg/k8s/helper.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package k8s

import (
k8sErrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func IsResourceNotFoundErr(err error) bool {
if errStatus, ok := err.(*k8sErrors.StatusError); ok && errStatus.Status().Reason == metav1.StatusReasonNotFound {
return true
}
return false
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ github.com/devtron-labs/authenticator/jwt
github.com/devtron-labs/authenticator/middleware
github.com/devtron-labs/authenticator/oidc
github.com/devtron-labs/authenticator/password
# github.com/devtron-labs/common-lib v0.0.12
# github.com/devtron-labs/common-lib v0.0.14
## explicit; go 1.20
github.com/devtron-labs/common-lib/blob-storage
github.com/devtron-labs/common-lib/cloud-provider-identifier
Expand Down