You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/01/25 16:00:17 UTC
[camel-k] 01/03: fix(cli): Improve CLI / operator versions
compatibility check
This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 02cd0881577b18a1e258552ae0a09d65bae38b6b
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Jan 25 10:43:25 2021 +0100
fix(cli): Improve CLI / operator versions compatibility check
---
pkg/cmd/root.go | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/pkg/cmd/root.go b/pkg/cmd/root.go
index 85b7607..3328c60 100644
--- a/pkg/cmd/root.go
+++ b/pkg/cmd/root.go
@@ -27,6 +27,8 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/viper"
+ k8serrors "k8s.io/apimachinery/pkg/api/errors"
+
"github.com/apache/camel-k/pkg/client"
camelv1 "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/typed/camel/v1"
"github.com/apache/camel-k/pkg/util/defaults"
@@ -73,7 +75,6 @@ func NewKamelCommand(ctx context.Context) (*cobra.Command, error) {
}
func kamelPreAddCommandInit(options *RootCmdOptions) *cobra.Command {
-
var cmd = cobra.Command{
BashCompletionFunction: bashCompletionFunction,
PersistentPreRunE: options.preRun,
@@ -171,12 +172,12 @@ func addHelpSubCommands(cmd *cobra.Command, options *RootCmdOptions) error {
func (command *RootCmdOptions) preRun(cmd *cobra.Command, _ []string) error {
if !isOfflineCommand(cmd) {
- client, err := command.GetCmdClient()
+ c, err := command.GetCmdClient()
if err != nil {
return errors.Wrap(err, "cannot get command client")
}
if command.Namespace == "" {
- current, err := client.GetCurrentNamespace(command.KubeConfig)
+ current, err := c.GetCurrentNamespace(command.KubeConfig)
if err != nil {
return errors.Wrap(err, "cannot get current namespace")
}
@@ -185,19 +186,23 @@ func (command *RootCmdOptions) preRun(cmd *cobra.Command, _ []string) error {
return err
}
}
- checkAndShowCompatibilityWarning(command.Context, client, command.Namespace)
+ checkAndShowCompatibilityWarning(command.Context, c, command.Namespace)
}
return nil
}
-func checkAndShowCompatibilityWarning(ctx context.Context, cli client.Client, namespace string) {
- operatorVersion, err := operatorVersion(ctx, cli, namespace)
+func checkAndShowCompatibilityWarning(ctx context.Context, c client.Client, namespace string) {
+ operatorVersion, err := operatorVersion(ctx, c, namespace)
if err != nil {
- fmt.Printf("No Integration Platform available in %s namespace\n", namespace)
+ if k8serrors.IsNotFound(err) {
+ fmt.Printf("No IntegrationPlatform resource in %s namespace\n", namespace)
+ } else {
+ fmt.Printf("Unable to retrieve the operator version: %s", err.Error())
+ }
} else {
- if !compatibleVersions(operatorVersion, defaults.Version) {
- fmt.Printf("Warning: you're using Camel K %s client against a %s cluster operator\n\n", defaults.Version, operatorVersion)
+ if operatorVersion != "" && !compatibleVersions(operatorVersion, defaults.Version) {
+ fmt.Printf("You're using Camel K %s client with a %s cluster operator, it's recommended to use the same version to improve compatibility.\n\n", defaults.Version, operatorVersion)
}
}
}