func (c *FakeNetworkPolicies) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(networkpoliciesResource, c.ns, name), &extensions.NetworkPolicy{}) return err }
func (c *FakeHorizontalPodAutoscalers) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction("horizontalpodautoscalers", c.ns, name), &v1beta1.HorizontalPodAutoscaler{}) return err }
func (c *FakeJobs) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(jobsResource, c.ns, name), &v1beta1.Job{}) return err }
func (c *FakeSecrets) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction("secrets", c.ns, name), &api.Secret{}) return err }
func (c *FakeDeployments) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(deploymentsResource, c.ns, name), &v1beta1.Deployment{}) return err }
func (c *FakePodTemplates) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction("podtemplates", c.ns, name), &api.PodTemplate{}) return err }
func (c *FakeLimitRanges) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(limitrangesResource, c.ns, name), &v1.LimitRange{}) return err }
func (c *FakePolicyBindings) Delete(name string) error { _, err := c.Fake.Invokes(core.NewDeleteAction(policyBindingsResource, c.Namespace, name), &authorizationapi.PolicyBinding{}) return err }
func (c *FakeServiceAccounts) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(serviceaccountsResource, c.ns, name), &api.ServiceAccount{}) return err }
func TestDockercfgDeletion(t *testing.T) { testcases := map[string]struct { ClientObjects []runtime.Object DeletedSecret *api.Secret ExpectedActions []core.Action }{ "deleted dockercfg secret without serviceaccount": { DeletedSecret: createdDockercfgSecret(), ExpectedActions: []core.Action{ core.NewGetAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), }, }, "deleted dockercfg secret with serviceaccount with reference": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: createdDockercfgSecret(), ExpectedActions: []core.Action{ core.NewGetAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), core.NewUpdateAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", serviceAccount(tokenSecretReferences(), emptyImagePullSecretReferences())), core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), }, }, "deleted dockercfg secret with serviceaccount without reference": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: createdDockercfgSecret(), ExpectedActions: []core.Action{ core.NewGetAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), core.NewUpdateAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", serviceAccount(tokenSecretReferences(), emptyImagePullSecretReferences())), core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), }, }, } for k, tc := range testcases { // Re-seed to reset name generation rand.Seed(1) client := fake.NewSimpleClientset(tc.ClientObjects...) controller := NewDockercfgDeletedController(client, DockercfgDeletedControllerOptions{}) if tc.DeletedSecret != nil { controller.secretDeleted(tc.DeletedSecret) } for i, action := range client.Actions() { if len(tc.ExpectedActions) < i+1 { t.Errorf("%s: %d unexpected actions: %+v", k, len(client.Actions())-len(tc.ExpectedActions), client.Actions()[i:]) break } expectedAction := tc.ExpectedActions[i] if !reflect.DeepEqual(expectedAction, action) { t.Errorf("%s: Expected %v, got %v", k, expectedAction, action) continue } } if len(tc.ExpectedActions) > len(client.Actions()) { t.Errorf("%s: %d additional expected actions:%+v", k, len(tc.ExpectedActions)-len(client.Actions()), tc.ExpectedActions[len(client.Actions()):]) } } }
func (c *FakeDaemonSets) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(daemonsetsResource, c.ns, name), &extensions.DaemonSet{}) return err }
func (c *FakePetSets) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(petsetsResource, c.ns, name), &apps.PetSet{}) return err }
func (c *FakeEndpoints) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(endpointsResource, c.ns, name), &v1.Endpoints{}) return err }
func TestSimpleStop(t *testing.T) { tests := []struct { fake *reaperFake kind schema.GroupKind actions []testcore.Action expectError bool test string }{ { fake: &reaperFake{ Clientset: fake.NewSimpleClientset(pod()), }, kind: api.Kind("Pod"), actions: []testcore.Action{ testcore.NewGetAction(api.Resource("pods").WithVersion(""), api.NamespaceDefault, "foo"), testcore.NewDeleteAction(api.Resource("pods").WithVersion(""), api.NamespaceDefault, "foo"), }, 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(""), api.NamespaceDefault, "foo"), testcore.NewDeleteAction(api.Resource("services").WithVersion(""), api.NamespaceDefault, "foo"), }, expectError: false, test: "stop service succeeds", }, { fake: &reaperFake{ Clientset: fake.NewSimpleClientset(), noSuchPod: true, }, kind: api.Kind("Pod"), actions: []testcore.Action{}, expectError: true, test: "stop pod fails, no pod", }, { fake: &reaperFake{ Clientset: fake.NewSimpleClientset(service()), noDeleteService: true, }, kind: api.Kind("Service"), actions: []testcore.Action{ testcore.NewGetAction(api.Resource("services").WithVersion(""), api.NamespaceDefault, "foo"), }, expectError: true, test: "stop service fails, can't delete", }, } for _, test := range tests { fake := test.fake reaper, err := ReaperFor(test.kind, fake) if err != nil { t.Errorf("unexpected error: %v (%s)", err, test.test) } err = reaper.Stop("default", "foo", 0, nil) if err != nil && !test.expectError { t.Errorf("unexpected error: %v (%s)", err, test.test) } if err == nil { if test.expectError { t.Errorf("unexpected non-error: %v (%s)", err, test.test) } } actions := fake.Actions() if len(test.actions) != len(actions) { t.Errorf("unexpected actions: %v; expected %v (%s)", actions, test.actions, test.test) } for i, action := range actions { testAction := test.actions[i] if action != testAction { t.Errorf("unexpected action: %#v; expected %v (%s)", action, testAction, test.test) } } } }
func (c *FakeLimitRanges) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction("limitranges", c.ns, name), &api.LimitRange{}) return err }
func (c *FakeRoles) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(rolesResource, c.ns, name), &rbac.Role{}) return err }
func (c *FakeStatefulSets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(statefulsetsResource, c.ns, name), &v1beta1.StatefulSet{}) return err }
func (c *FakePersistentVolumeClaims) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(persistentvolumeclaimsResource, c.ns, name), &api.PersistentVolumeClaim{}) return err }
func (c *FakePodTemplates) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(podtemplatesResource, c.ns, name), &v1.PodTemplate{}) return err }
func (c *FakeReplicaSets) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(replicasetsResource, c.ns, name), &v1beta1.ReplicaSet{}) return err }
func (c *FakePodDisruptionBudgets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(poddisruptionbudgetsResource, c.ns, name), &v1alpha1.PodDisruptionBudget{}) return err }
func (c *FakeBuildConfigs) Delete(name string) error { _, err := c.Fake.Invokes(core.NewDeleteAction(buildConfigsResource, c.Namespace, name), &buildapi.BuildConfig{}) return err }
func (c *FakeReplicationControllers) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(replicationcontrollersResource, c.ns, name), &v1.ReplicationController{}) return err }
func (c *FakeBuilds) Delete(name string, options *pkg_api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(buildsResource, c.ns, name), &api.Build{}) return err }
func (c *FakePods) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(podsResource, c.ns, name), &api.Pod{}) return err }
func (c *FakeResourceQuotas) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(resourcequotasResource, c.ns, name), &api.ResourceQuota{}) return err }
func (c *FakeCronJobs) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(cronjobsResource, c.ns, name), &batch.CronJob{}) return err }
func (c *FakeIngresses) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(ingressesResource, c.ns, name), &extensions.Ingress{}) return err }
func (c *FakeConfigMaps) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction(configmapsResource, c.ns, name), &v1.ConfigMap{}) return err }
func (c *FakeEndpoints) Delete(name string, options *api.DeleteOptions) error { _, err := c.Fake. Invokes(core.NewDeleteAction("endpoints", c.ns, name), &api.Endpoints{}) return err }