-
Notifications
You must be signed in to change notification settings - Fork 13
/
exec.go
62 lines (56 loc) · 1.53 KB
/
exec.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Copyright Contributors to the Open Cluster Management project
package version
import (
"fmt"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
"github.com/spf13/cobra"
"github.com/stolostron/cm-cli/pkg/helpers"
"github.com/stolostron/cm-cli/version"
)
func (o *Options) complete(cmd *cobra.Command, args []string) (err error) {
return nil
}
func (o *Options) validate() error {
return nil
}
func (o *Options) run() (err error) {
fmt.Printf("client\t\t\tversion\t:%s\n", version.GetVersion())
isSupported, err := helpers.IsSupported(o.CMFlags)
if err != nil {
return err
}
if isSupported {
kubeClient, err := o.CMFlags.KubectlFactory.KubernetesClientSet()
if err != nil {
return err
}
dynamicClient, err := o.CMFlags.KubectlFactory.DynamicClient()
if err != nil {
return err
}
return o.runWithClient(kubeClient, dynamicClient)
}
return nil
}
func (o *Options) runWithClient(kubeClient kubernetes.Interface, dynamicClient dynamic.Interface) (err error) {
var version, snapshot, server string
switch {
case helpers.IsRHACM(o.CMFlags):
server = helpers.RHACM
version, snapshot, err = helpers.GetACMVersion(o.CMFlags, kubeClient, dynamicClient)
case helpers.IsMCE(o.CMFlags):
server = helpers.MCE
version, snapshot, err = helpers.GetMCEVersion(o.CMFlags, kubeClient, dynamicClient)
}
if version != "" {
fmt.Printf("server %s release\tversion\t:%s\n", server, version)
}
if snapshot != "" {
fmt.Printf("server %s image\ttag\t:%s\n", server, snapshot)
}
if err != nil {
return err
}
return nil
}