Deleting ServiceReaper

This commit is contained in:
nikhiljindal 2017-06-01 13:19:50 -07:00
parent 43dcf0f56c
commit 340e8b1852
2 changed files with 14 additions and 52 deletions

View File

@ -82,9 +82,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
@ -127,9 +124,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
@ -522,14 +516,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)
}

View File

@ -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
@ -624,18 +615,6 @@ func TestSimpleStop(t *testing.T) {
expectError: false,
test: "stop pod succeeds",
},
{
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(),
@ -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 {