mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 13:02:14 +00:00
kubectl: cast notFound error to struct
This commit is contained in:
parent
0a3219ebf7
commit
4c56b8cfc5
@ -454,7 +454,7 @@ func (reaper *DeploymentReaper) Stop(namespace, name string, timeout time.Durati
|
|||||||
errList := []error{}
|
errList := []error{}
|
||||||
for _, rc := range rsList.Items {
|
for _, rc := range rsList.Items {
|
||||||
if err := rsReaper.Stop(rc.Namespace, rc.Name, timeout, gracePeriod); err != nil {
|
if err := rsReaper.Stop(rc.Namespace, rc.Name, timeout, gracePeriod); err != nil {
|
||||||
scaleGetErr, ok := err.(*ScaleError)
|
scaleGetErr, ok := err.(ScaleError)
|
||||||
if errors.IsNotFound(err) || (ok && errors.IsNotFound(scaleGetErr.ActualError)) {
|
if errors.IsNotFound(err) || (ok && errors.IsNotFound(scaleGetErr.ActualError)) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apis/batch"
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
@ -727,3 +728,49 @@ func TestSimpleStop(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDeploymentNotFoundError(t *testing.T) {
|
||||||
|
name := "foo"
|
||||||
|
ns := "default"
|
||||||
|
deployment := &extensions.Deployment{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Namespace: ns,
|
||||||
|
},
|
||||||
|
Spec: extensions.DeploymentSpec{
|
||||||
|
Replicas: 0,
|
||||||
|
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"k1": "v1"}},
|
||||||
|
},
|
||||||
|
Status: extensions.DeploymentStatus{
|
||||||
|
Replicas: 0,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
template := deploymentutil.GetNewReplicaSetTemplate(deployment)
|
||||||
|
|
||||||
|
fake := &testclient.Fake{}
|
||||||
|
fake.AddReactor("get", "deployments", func(action testclient.Action) (handled bool, ret runtime.Object, err error) {
|
||||||
|
return true, deployment, nil
|
||||||
|
})
|
||||||
|
fake.AddReactor("list", "replicasets", func(action testclient.Action) (handled bool, ret runtime.Object, err error) {
|
||||||
|
list := &extensions.ReplicaSetList{Items: []extensions.ReplicaSet{
|
||||||
|
{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Namespace: ns,
|
||||||
|
},
|
||||||
|
Spec: extensions.ReplicaSetSpec{
|
||||||
|
Template: template,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
return true, list, nil
|
||||||
|
})
|
||||||
|
fake.AddReactor("get", "replicasets", func(action testclient.Action) (handled bool, ret runtime.Object, err error) {
|
||||||
|
return true, nil, ScaleError{ActualError: errors.NewNotFound(api.Resource("replicaset"), "doesnt-matter")}
|
||||||
|
})
|
||||||
|
|
||||||
|
reaper := DeploymentReaper{fake, time.Millisecond, time.Millisecond}
|
||||||
|
if err := reaper.Stop(ns, name, 0, nil); err != nil {
|
||||||
|
t.Fatalf("unexpected error: %#v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user