From d7441e788589000a98009483671bf392fe5b19da Mon Sep 17 00:00:00 2001 From: David Simansky Date: Thu, 13 May 2021 15:05:20 +0200 Subject: [PATCH] Fix replicas *int32 type in describe commands --- pkg/kn/commands/revision/describe.go | 4 +-- pkg/kn/commands/revision/describe_test.go | 30 +++++++++++++++++++---- pkg/kn/commands/service/describe_test.go | 4 +-- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/pkg/kn/commands/revision/describe.go b/pkg/kn/commands/revision/describe.go index 9530b1d270..ff5e5fa4ce 100644 --- a/pkg/kn/commands/revision/describe.go +++ b/pkg/kn/commands/revision/describe.go @@ -206,8 +206,8 @@ func WriteEnvFrom(dw printers.PrefixWriter, revision *servingv1.Revision, printD func WriteReplicas(dw printers.PrefixWriter, revision *servingv1.Revision) { actualReplicas := revision.Status.ActualReplicas desiredReplicas := revision.Status.DesiredReplicas - if actualReplicas != 0 || desiredReplicas != 0 { - dw.WriteAttribute("Replicas", fmt.Sprintf("%d/%d", actualReplicas, desiredReplicas)) + if actualReplicas != nil && desiredReplicas != nil { + dw.WriteAttribute("Replicas", fmt.Sprintf("%d/%d", *actualReplicas, *desiredReplicas)) } } diff --git a/pkg/kn/commands/revision/describe_test.go b/pkg/kn/commands/revision/describe_test.go index a903caf527..e06a04e6e4 100644 --- a/pkg/kn/commands/revision/describe_test.go +++ b/pkg/kn/commands/revision/describe_test.go @@ -20,6 +20,8 @@ import ( "testing" "time" + "knative.dev/pkg/ptr" + "gotest.tools/v3/assert" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" @@ -106,7 +108,7 @@ func TestDescribeRevisionYaml(t *testing.T) { } func TestDescribeRevisionBasic(t *testing.T) { - expectedRevision := createTestRevision("test-rev", 3) + expectedRevision := createTestRevision("test-rev", 3, ptr.Int32(1)) action, data, err := fakeRevision([]string{"revision", "describe", "test-rev"}, &expectedRevision) if err != nil { @@ -120,11 +122,29 @@ func TestDescribeRevisionBasic(t *testing.T) { } assert.Assert(t, util.ContainsAll(data, "Image:", "gcr.io/test/image", "++ Ready", "Port:", "8080")) - assert.Assert(t, util.ContainsAll(data, "Replicas:", "0/1")) + assert.Assert(t, util.ContainsAll(data, "Replicas:", "1/1")) assert.Assert(t, util.ContainsAll(data, "EnvFrom:", "cm:test1, cm:test2")) } -func createTestRevision(revision string, gen int64) servingv1.Revision { +func TestDescribeRevisionReplicas(t *testing.T) { + expectedRevision := createTestRevision("test-rev", 3, ptr.Int32(1)) + _, data, err := fakeRevision([]string{"revision", "describe", "test-rev"}, &expectedRevision) + assert.NilError(t, err) + assert.Assert(t, util.ContainsAll(data, "Replicas:", "1/1")) + + expectedRevision = createTestRevision("test-rev", 3, ptr.Int32(0)) + _, data, err = fakeRevision([]string{"revision", "describe", "test-rev"}, &expectedRevision) + assert.NilError(t, err) + assert.Assert(t, util.ContainsAll(data, "Replicas:", "0/0")) + + expectedRevision = createTestRevision("test-rev", 3, nil) + _, data, err = fakeRevision([]string{"revision", "describe", "test-rev"}, &expectedRevision) + assert.NilError(t, err) + assert.Assert(t, util.ContainsNone(data, "Replicas:")) + +} + +func createTestRevision(revision string, gen int64, replicas *int32) servingv1.Revision { labels := make(map[string]string) labels[apiserving.ConfigurationGenerationLabelKey] = fmt.Sprintf("%d", gen) @@ -162,8 +182,8 @@ func createTestRevision(revision string, gen int64) servingv1.Revision { }, }, Status: servingv1.RevisionStatus{ - ActualReplicas: 0, - DesiredReplicas: 1, + ActualReplicas: replicas, + DesiredReplicas: replicas, DeprecatedImageDigest: "gcr.io/test/image@" + imageDigest, Status: duckv1.Status{ Conditions: goodConditions(), diff --git a/pkg/kn/commands/service/describe_test.go b/pkg/kn/commands/service/describe_test.go index 5ea4a22dd4..1be1faf60c 100644 --- a/pkg/kn/commands/service/describe_test.go +++ b/pkg/kn/commands/service/describe_test.go @@ -763,8 +763,8 @@ func createTestRevision(revision string, gen int64, conditions duckv1.Conditions }, }, Status: servingv1.RevisionStatus{ - ActualReplicas: 0, - DesiredReplicas: 1, + ActualReplicas: ptr.Int32(0), + DesiredReplicas: ptr.Int32(1), DeprecatedImageDigest: "gcr.io/test/image@" + imageDigest, Status: duckv1.Status{ Conditions: conditions,