mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-05-16 06:07:08 +00:00
* Rename `mizu` to `kubeshark` * Rename `up9inc` to `kubeshark` * Change the logo, title, motto and the main color * Replace the favicon * Update the docs link * Change the copyright text in C files * Remove a comment * Rewrite the `README.md` and update the logo and screenshots used in it * Add a `TODO` * Fix the grammar * Fix the bottom text in the filtering guide * Change the Docker Hub username of cross-compilation intermediate images * Add an install script * Fix `docker/login-action` in the CI * Delete `build-custom-branch.yml` GitHub workflow * Update `README.md` * Remove `install.sh` * Change the motto back to "Traffic viewer for Kubernetes"
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package errormessage
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
regexpsyntax "regexp/syntax"
|
|
|
|
"github.com/kubeshark/kubeshark/cli/config"
|
|
|
|
k8serrors "k8s.io/apimachinery/pkg/api/errors"
|
|
)
|
|
|
|
// formatError wraps error with a detailed message that is meant for the user.
|
|
// While the errors are meant to be displayed, they are not meant to be exported as classes outsite of CLI.
|
|
func FormatError(err error) error {
|
|
var errorNew error
|
|
if k8serrors.IsForbidden(err) {
|
|
errorNew = fmt.Errorf("insufficient permissions: %w. "+
|
|
"supply the required permission or control Kubeshark's access to namespaces by setting %s "+
|
|
"in the config file or setting the tapped namespace with --%s %s=<NAMEPSACE>",
|
|
err,
|
|
config.KubesharkResourcesNamespaceConfigName,
|
|
config.SetCommandName,
|
|
config.KubesharkResourcesNamespaceConfigName)
|
|
} else if syntaxError, isSyntaxError := asRegexSyntaxError(err); isSyntaxError {
|
|
errorNew = fmt.Errorf("regex %s is invalid: %w", syntaxError.Expr, err)
|
|
} else {
|
|
errorNew = err
|
|
}
|
|
|
|
return errorNew
|
|
}
|
|
|
|
func asRegexSyntaxError(err error) (*regexpsyntax.Error, bool) {
|
|
var syntaxError *regexpsyntax.Error
|
|
return syntaxError, errors.As(err, &syntaxError)
|
|
}
|