add no resources found message to rollout-status command (#117884)
* add no resources found message to rollout-status command * return err if not nil before no resource message Kubernetes-commit: a5575425b039bf7c15dfaa9a7acf257fdc4fde3f
This commit is contained in:
parent
9cf9149792
commit
1b129f017b
22
go.mod
22
go.mod
|
|
@ -30,15 +30,15 @@ require (
|
||||||
github.com/stretchr/testify v1.8.2
|
github.com/stretchr/testify v1.8.2
|
||||||
golang.org/x/sys v0.7.0
|
golang.org/x/sys v0.7.0
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
k8s.io/api v0.0.0-20230503175224-7a87286591e4
|
k8s.io/api v0.0.0-20230506223117-f3a0f2ed177a
|
||||||
k8s.io/apimachinery v0.0.0-20230503174314-7ecc58659e5e
|
k8s.io/apimachinery v0.0.0-20230508165628-e7958c5fe270
|
||||||
k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c
|
k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c
|
||||||
k8s.io/client-go v0.0.0-20230505090544-bbdc95deee6f
|
k8s.io/client-go v0.0.0-20230509212518-783d0d33626e
|
||||||
k8s.io/component-base v0.0.0-20230503184328-d8237c55bb0d
|
k8s.io/component-base v0.0.0-20230510051351-394420edbb3f
|
||||||
k8s.io/component-helpers v0.0.0-20230503184823-e13365989545
|
k8s.io/component-helpers v0.0.0-20230503184823-e13365989545
|
||||||
k8s.io/klog/v2 v2.100.1
|
k8s.io/klog/v2 v2.100.1
|
||||||
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f
|
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f
|
||||||
k8s.io/metrics v0.0.0-20230503201041-0e3d051e3ef2
|
k8s.io/metrics v0.0.0-20230509222513-a85c404a533e
|
||||||
k8s.io/utils v0.0.0-20230209194617-a36077c30491
|
k8s.io/utils v0.0.0-20230209194617-a36077c30491
|
||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
|
||||||
sigs.k8s.io/kustomize/kustomize/v5 v5.0.1
|
sigs.k8s.io/kustomize/kustomize/v5 v5.0.1
|
||||||
|
|
@ -94,12 +94,12 @@ require (
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
k8s.io/api => k8s.io/api v0.0.0-20230503175224-7a87286591e4
|
k8s.io/api => k8s.io/api v0.0.0-20230506223117-f3a0f2ed177a
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20230503174314-7ecc58659e5e
|
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20230508165628-e7958c5fe270
|
||||||
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c
|
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c
|
||||||
k8s.io/client-go => k8s.io/client-go v0.0.0-20230505090544-bbdc95deee6f
|
k8s.io/client-go => k8s.io/client-go v0.0.0-20230509212518-783d0d33626e
|
||||||
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20230503172937-f7315244e4ce
|
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20230509180209-89a7a4d0e489
|
||||||
k8s.io/component-base => k8s.io/component-base v0.0.0-20230503184328-d8237c55bb0d
|
k8s.io/component-base => k8s.io/component-base v0.0.0-20230510051351-394420edbb3f
|
||||||
k8s.io/component-helpers => k8s.io/component-helpers v0.0.0-20230503184823-e13365989545
|
k8s.io/component-helpers => k8s.io/component-helpers v0.0.0-20230503184823-e13365989545
|
||||||
k8s.io/metrics => k8s.io/metrics v0.0.0-20230503201041-0e3d051e3ef2
|
k8s.io/metrics => k8s.io/metrics v0.0.0-20230509222513-a85c404a533e
|
||||||
)
|
)
|
||||||
|
|
|
||||||
20
go.sum
20
go.sum
|
|
@ -540,24 +540,24 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
k8s.io/api v0.0.0-20230503175224-7a87286591e4 h1:cxVILqCCBsq5MCwFs3RkBL8HDUwZ6Sh5qH0UBJSTnnw=
|
k8s.io/api v0.0.0-20230506223117-f3a0f2ed177a h1:8sUE9zRxWwhC0FmKr0+Jtm6wgnL3ljlVJOT94jSVsO4=
|
||||||
k8s.io/api v0.0.0-20230503175224-7a87286591e4/go.mod h1:/fu24lnfAhrloAI7EhcGTa0fXXQH5r4rUqEQMW9endY=
|
k8s.io/api v0.0.0-20230506223117-f3a0f2ed177a/go.mod h1:/fu24lnfAhrloAI7EhcGTa0fXXQH5r4rUqEQMW9endY=
|
||||||
k8s.io/apimachinery v0.0.0-20230503174314-7ecc58659e5e h1:zTmKa/UVIS4WvRrYbIblypAjK81XFnlq8zxUCiBFgFE=
|
k8s.io/apimachinery v0.0.0-20230508165628-e7958c5fe270 h1:0kz1rv3L87V/4KNEVPlst7yhT5RfAC+5JqeXR3rBXVc=
|
||||||
k8s.io/apimachinery v0.0.0-20230503174314-7ecc58659e5e/go.mod h1:jF849JXyKVKRC0O62ZBSygt6qOSEYju8i90sKd1mx4g=
|
k8s.io/apimachinery v0.0.0-20230508165628-e7958c5fe270/go.mod h1:jF849JXyKVKRC0O62ZBSygt6qOSEYju8i90sKd1mx4g=
|
||||||
k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c h1:gITBbx6eAQQ5SgiMn3vjRyR00nE1IYes26fBH1zbsUc=
|
k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c h1:gITBbx6eAQQ5SgiMn3vjRyR00nE1IYes26fBH1zbsUc=
|
||||||
k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c/go.mod h1:ixnBuX8weZhKqsRkVWPDthO0+XyV8Zb+Dm/VG2JmQoE=
|
k8s.io/cli-runtime v0.0.0-20230504080109-6a67eceb5a5c/go.mod h1:ixnBuX8weZhKqsRkVWPDthO0+XyV8Zb+Dm/VG2JmQoE=
|
||||||
k8s.io/client-go v0.0.0-20230505090544-bbdc95deee6f h1:2ay98zE1TJH8YXO2PvRz3x72AScfGwrJu8gZKr8mFxY=
|
k8s.io/client-go v0.0.0-20230509212518-783d0d33626e h1:LpWwrdVPWBo4qvabkUmgiTVVrG60WB2Aq7vL/+CuFVY=
|
||||||
k8s.io/client-go v0.0.0-20230505090544-bbdc95deee6f/go.mod h1:KbdynSEZqrbOI2U7keuj6YcwapdnH1uqm4B5ZTlKl3Q=
|
k8s.io/client-go v0.0.0-20230509212518-783d0d33626e/go.mod h1:cEaa9OUfUngJoratq5HOLPAqYQuGXvAXcib8cBvOLhQ=
|
||||||
k8s.io/component-base v0.0.0-20230503184328-d8237c55bb0d h1:fFtyr79NYtiblUPlY9jBGOxz6oJ+InvkHO2CuXCt9kY=
|
k8s.io/component-base v0.0.0-20230510051351-394420edbb3f h1:fRDW72RPFuh2ICNsCZCnEG/0tiKMDRyL/YVJ1RyVL74=
|
||||||
k8s.io/component-base v0.0.0-20230503184328-d8237c55bb0d/go.mod h1:whrRS7Eo7V9CAjv5tN/lSHTNdU7GimImJs2398lzkHg=
|
k8s.io/component-base v0.0.0-20230510051351-394420edbb3f/go.mod h1:OZt7sB3oDI0Zde3l1u9cPMS4sDIg62oCaaGt3ifkLBg=
|
||||||
k8s.io/component-helpers v0.0.0-20230503184823-e13365989545 h1:we8rVlPuvlPzZu0GPqB5mfJiFVypCn1mHRtcj/+RE+k=
|
k8s.io/component-helpers v0.0.0-20230503184823-e13365989545 h1:we8rVlPuvlPzZu0GPqB5mfJiFVypCn1mHRtcj/+RE+k=
|
||||||
k8s.io/component-helpers v0.0.0-20230503184823-e13365989545/go.mod h1:/80xHbyNUOWQDlqQY3/tYGQb0iauI/zFw3PwSURMNvI=
|
k8s.io/component-helpers v0.0.0-20230503184823-e13365989545/go.mod h1:/80xHbyNUOWQDlqQY3/tYGQb0iauI/zFw3PwSURMNvI=
|
||||||
k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
|
k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
|
||||||
k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||||
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
|
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
|
||||||
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
|
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
|
||||||
k8s.io/metrics v0.0.0-20230503201041-0e3d051e3ef2 h1:7Sv0E88nYKu/nXVP+iKR7ZnXXGE5KcPjOXsU+TFo4TE=
|
k8s.io/metrics v0.0.0-20230509222513-a85c404a533e h1:WyqSbvuKfcI+786a90tUbxG/zjZ8lc+iNukkvOOYQSo=
|
||||||
k8s.io/metrics v0.0.0-20230503201041-0e3d051e3ef2/go.mod h1:cQI162g705VM24ahnXgDA7UHi1N/N6/PiRsuNYmgolo=
|
k8s.io/metrics v0.0.0-20230509222513-a85c404a533e/go.mod h1:NmxcJrJm4XizsA3tx1O/5Fb8pV599o9ZrKu70qL4E0g=
|
||||||
k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
|
k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
|
||||||
k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,9 @@ func (o *RolloutStatusOptions) Run() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return r.Visit(func(info *resource.Info, _ error) error {
|
resourceFound := false
|
||||||
|
err = r.Visit(func(info *resource.Info, _ error) error {
|
||||||
|
resourceFound = true
|
||||||
mapping := info.ResourceMapping()
|
mapping := info.ResourceMapping()
|
||||||
statusViewer, err := o.StatusViewerFn(mapping)
|
statusViewer, err := o.StatusViewerFn(mapping)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -228,4 +230,14 @@ func (o *RolloutStatusOptions) Run() error {
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if !resourceFound {
|
||||||
|
fmt.Fprintf(o.ErrOut, "No resources found in %s namespace.\n", o.Namespace)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -258,3 +258,29 @@ func TestRolloutStatusWatchDisabledUnavailable(t *testing.T) {
|
||||||
t.Errorf("expected output: %s, but got: %s", expectedMsg, buf.String())
|
t.Errorf("expected output: %s, but got: %s", expectedMsg, buf.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRolloutStatusEmptyList(t *testing.T) {
|
||||||
|
ns := scheme.Codecs.WithoutConversion()
|
||||||
|
tf := cmdtesting.NewTestFactory().WithNamespace("test")
|
||||||
|
tf.ClientConfigVal = cmdtesting.DefaultClientConfig()
|
||||||
|
|
||||||
|
info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON)
|
||||||
|
encoder := ns.EncoderForVersion(info.Serializer, rolloutStatusGroupVersionEncoder)
|
||||||
|
tf.Client = &fake.RESTClient{
|
||||||
|
GroupVersion: rolloutStatusGroupVersionEncoder,
|
||||||
|
NegotiatedSerializer: ns,
|
||||||
|
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
|
||||||
|
dep := &appsv1.DeploymentList{}
|
||||||
|
body := io.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(encoder, dep))))
|
||||||
|
return &http.Response{StatusCode: http.StatusOK, Header: cmdtesting.DefaultHeader(), Body: body}, nil
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
streams, _, _, err := genericiooptions.NewTestIOStreams()
|
||||||
|
cmd := NewCmdRolloutStatus(tf, streams)
|
||||||
|
cmd.Run(cmd, []string{"deployment"})
|
||||||
|
|
||||||
|
expectedMsg := "No resources found in test namespace.\n"
|
||||||
|
if err.String() != expectedMsg {
|
||||||
|
t.Errorf("expected output: %s, but got: %s", expectedMsg, err.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue