Commit 4361b4d9 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #46798 from nikhiljindal/servicesReaper

Automatic merge from submit-queue Deleting kubectl.ServiceReaper since there is no special service deletion logic Ref https://github.com/kubernetes/kubernetes/pull/46471 #42594 ServiceReaper does not have any special deletion logic so we dont need it. The generic deletion logic should be enough. By removing this reaper, service deletion also gets the new wait logic from https://github.com/kubernetes/kubernetes/pull/46471 cc @kubernetes/sig-cli-misc
parents b4e7628a 340e8b18
......@@ -81,9 +81,6 @@ func ReaperFor(kind schema.GroupKind, c internalclientset.Interface) (Reaper, er
case api.Kind("Pod"):
return &PodReaper{c.Core()}, nil
case api.Kind("Service"):
return &ServiceReaper{c.Core()}, nil
case batch.Kind("Job"):
return &JobReaper{c.Batch(), c.Core(), Interval, Timeout}, nil
......@@ -126,9 +123,6 @@ type DeploymentReaper struct {
type PodReaper struct {
client coreclient.PodsGetter
}
type ServiceReaper struct {
client coreclient.ServicesGetter
}
type StatefulSetReaper struct {
client appsclient.StatefulSetsGetter
podClient coreclient.PodsGetter
......@@ -484,14 +478,3 @@ func (reaper *PodReaper) Stop(namespace, name string, timeout time.Duration, gra
}
return pods.Delete(name, gracePeriod)
}
func (reaper *ServiceReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error {
services := reaper.client.Services(namespace)
_, err := services.Get(name, metav1.GetOptions{})
if err != nil {
return err
}
falseVar := false
deleteOptions := &metav1.DeleteOptions{OrphanDependents: &falseVar}
return services.Delete(name, deleteOptions)
}
......@@ -558,26 +558,26 @@ func (c *noSuchPod) Get(name string, options metav1.GetOptions) (*api.Pod, error
return nil, fmt.Errorf("%s does not exist", name)
}
type noDeleteService struct {
coreclient.ServiceInterface
type noDeletePod struct {
coreclient.PodInterface
}
func (c *noDeleteService) Delete(service string, o *metav1.DeleteOptions) error {
func (c *noDeletePod) Delete(name string, o *metav1.DeleteOptions) error {
return fmt.Errorf("I'm afraid I can't do that, Dave")
}
type reaperFake struct {
*fake.Clientset
noSuchPod, noDeleteService bool
noSuchPod, noDeletePod bool
}
func (c *reaperFake) Core() coreclient.CoreInterface {
return &reaperCoreFake{c.Clientset.Core(), c.noSuchPod, c.noDeleteService}
return &reaperCoreFake{c.Clientset.Core(), c.noSuchPod, c.noDeletePod}
}
type reaperCoreFake struct {
coreclient.CoreInterface
noSuchPod, noDeleteService bool
noSuchPod, noDeletePod bool
}
func (c *reaperCoreFake) Pods(namespace string) coreclient.PodInterface {
......@@ -585,25 +585,16 @@ func (c *reaperCoreFake) Pods(namespace string) coreclient.PodInterface {
if c.noSuchPod {
return &noSuchPod{pods}
}
return pods
}
func (c *reaperCoreFake) Services(namespace string) coreclient.ServiceInterface {
services := c.CoreInterface.Services(namespace)
if c.noDeleteService {
return &noDeleteService{services}
if c.noDeletePod {
return &noDeletePod{pods}
}
return services
return pods
}
func pod() *api.Pod {
return &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}}
}
func service() *api.Service {
return &api.Service{ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}}
}
func TestSimpleStop(t *testing.T) {
tests := []struct {
fake *reaperFake
......@@ -626,18 +617,6 @@ func TestSimpleStop(t *testing.T) {
},
{
fake: &reaperFake{
Clientset: fake.NewSimpleClientset(service()),
},
kind: api.Kind("Service"),
actions: []testcore.Action{
testcore.NewGetAction(api.Resource("services").WithVersion(""), metav1.NamespaceDefault, "foo"),
testcore.NewDeleteAction(api.Resource("services").WithVersion(""), metav1.NamespaceDefault, "foo"),
},
expectError: false,
test: "stop service succeeds",
},
{
fake: &reaperFake{
Clientset: fake.NewSimpleClientset(),
noSuchPod: true,
},
......@@ -648,15 +627,15 @@ func TestSimpleStop(t *testing.T) {
},
{
fake: &reaperFake{
Clientset: fake.NewSimpleClientset(service()),
noDeleteService: true,
Clientset: fake.NewSimpleClientset(pod()),
noDeletePod: true,
},
kind: api.Kind("Service"),
kind: api.Kind("Pod"),
actions: []testcore.Action{
testcore.NewGetAction(api.Resource("services").WithVersion(""), metav1.NamespaceDefault, "foo"),
testcore.NewGetAction(api.Resource("pods").WithVersion(""), metav1.NamespaceDefault, "foo"),
},
expectError: true,
test: "stop service fails, can't delete",
test: "stop pod fails, can't delete",
},
}
for _, test := range tests {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment