diff --git a/references/cli/top/model/info.go b/references/cli/top/model/info.go index 959223016..77b14a7e8 100644 --- a/references/cli/top/model/info.go +++ b/references/cli/top/model/info.go @@ -86,6 +86,9 @@ func (i *Info) ClusterNum() string { // K8SVersion return k8s version info func K8SVersion(cfg *rest.Config) string { + if cfg == nil { + return Unknown + } c, err := kubernetes.NewForConfig(cfg) if err != nil { return Unknown @@ -141,6 +144,9 @@ func ApplicationRunningNum(cfg *rest.Config) string { } func velaCorePodUsage(cfg *rest.Config) (*v1beta1.PodMetrics, error) { + if cfg == nil { + return nil, errors.New("no rest.Config available") + } ctx := context.Background() c, err := metrics.NewForConfig(cfg) if err != nil { @@ -194,6 +200,9 @@ func VelaCoreRatio(c client.Client, cfg *rest.Config) (string, string, string, s } func velaCLusterGatewayPodUsage(cfg *rest.Config) (*v1beta1.PodMetrics, error) { + if cfg == nil { + return nil, errors.New("no rest.Config available") + } ctx := context.Background() c, err := metrics.NewForConfig(cfg) if err != nil { diff --git a/references/cli/top/model/info_test.go b/references/cli/top/model/info_test.go index 173fd87cf..91bdacfeb 100644 --- a/references/cli/top/model/info_test.go +++ b/references/cli/top/model/info_test.go @@ -22,6 +22,8 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" "github.com/stretchr/testify/assert" + + clicommon "github.com/oam-dev/kubevela/references/common" ) func TestInfo_CurrentContext(t *testing.T) { @@ -46,6 +48,26 @@ func TestInfo_GOLangVersion(t *testing.T) { assert.Contains(t, GOLangVersion(), "go") } +func TestInfo_K8SVersion_NilConfig(t *testing.T) { + assert.Equal(t, Unknown, K8SVersion(nil)) +} + +func TestInfo_VelaCoreRatio_NilConfig(t *testing.T) { + cpuL, memL, cpuR, memR := VelaCoreRatio(nil, nil) + assert.Equal(t, clicommon.MetricsNA, cpuL) + assert.Equal(t, clicommon.MetricsNA, memL) + assert.Equal(t, clicommon.MetricsNA, cpuR) + assert.Equal(t, clicommon.MetricsNA, memR) +} + +func TestInfo_CLusterGatewayRatio_NilConfig(t *testing.T) { + cpuL, memL, cpuR, memR := CLusterGatewayRatio(nil, nil) + assert.Equal(t, clicommon.MetricsNA, cpuL) + assert.Equal(t, clicommon.MetricsNA, memL) + assert.Equal(t, clicommon.MetricsNA, cpuR) + assert.Equal(t, clicommon.MetricsNA, memR) +} + var _ = Describe("test info", func() { It("running app num", func() { Expect(ApplicationRunningNum(cfg)).To(Equal("1/1"))