func TestRecreate_acceptorFail(t *testing.T) { var deployment *kapi.ReplicationController scaler := &scalertest.FakeScaler{} strategy := &RecreateDeploymentStrategy{ codec: api.Codec, retryTimeout: 1 * time.Second, retryPeriod: 1 * time.Millisecond, getReplicationController: func(namespace, name string) (*kapi.ReplicationController, error) { return deployment, nil }, scaler: scaler, } acceptor := &testAcceptor{ acceptFn: func(deployment *kapi.ReplicationController) error { return fmt.Errorf("rejected") }, } deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codec) err := strategy.DeployWithAcceptor(nil, deployment, 2, acceptor) if err == nil { t.Fatalf("expected a deployment failure") } t.Logf("got expected error: %v", err) if e, a := 1, len(scaler.Events); e != a { t.Fatalf("expected %d scale calls, got %d", e, a) } if e, a := uint(1), scaler.Events[0].Size; e != a { t.Errorf("expected scale up to %d, got %d", e, a) } }
func TestRecreate_acceptorSuccess(t *testing.T) { var deployment *kapi.ReplicationController scaler := &cmdtest.FakeScaler{} strategy := &RecreateDeploymentStrategy{ out: &bytes.Buffer{}, errOut: &bytes.Buffer{}, eventClient: fake.NewSimpleClientset().Core(), decoder: kapi.Codecs.UniversalDecoder(), retryTimeout: 1 * time.Second, retryPeriod: 1 * time.Millisecond, scaler: scaler, } acceptorCalled := false acceptor := &testAcceptor{ acceptFn: func(deployment *kapi.ReplicationController) error { acceptorCalled = true return nil }, } oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.rcClient = &fakeControllerClient{deployment: deployment} err := strategy.DeployWithAcceptor(oldDeployment, deployment, 2, acceptor) if err != nil { t.Fatalf("unexpected deploy error: %#v", err) } if !acceptorCalled { t.Fatalf("expected acceptor to be called") } if e, a := 2, len(scaler.Events); e != a { t.Fatalf("expected %d scale calls, got %d", e, a) } if e, a := uint(1), scaler.Events[0].Size; e != a { t.Errorf("expected scale down to %d, got %d", e, a) } if e, a := uint(2), scaler.Events[1].Size; e != a { t.Errorf("expected scale up to %d, got %d", e, a) } }
func TestRecreate_acceptorSuccess(t *testing.T) { var deployment *kapi.ReplicationController scaler := &scalertest.FakeScaler{} strategy := &RecreateDeploymentStrategy{ codec: api.Codec, retryTimeout: 1 * time.Second, retryPeriod: 1 * time.Millisecond, getReplicationController: func(namespace, name string) (*kapi.ReplicationController, error) { return deployment, nil }, scaler: scaler, } acceptorCalled := false acceptor := &testAcceptor{ acceptFn: func(deployment *kapi.ReplicationController) error { acceptorCalled = true return nil }, } deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codec) err := strategy.DeployWithAcceptor(nil, deployment, 2, acceptor) if err != nil { t.Fatalf("unexpected deploy error: %#v", err) } if !acceptorCalled { t.Fatalf("expected acceptor to be called") } if e, a := 2, len(scaler.Events); e != a { t.Fatalf("expected %d scale calls, got %d", e, a) } if e, a := uint(1), scaler.Events[0].Size; e != a { t.Errorf("expected scale up to %d, got %d", e, a) } if e, a := uint(2), scaler.Events[1].Size; e != a { t.Errorf("expected scale up to %d, got %d", e, a) } }
func TestRecreate_acceptorFail(t *testing.T) { var deployment *kapi.ReplicationController scaler := &cmdtest.FakeScaler{} strategy := &RecreateDeploymentStrategy{ out: &bytes.Buffer{}, errOut: &bytes.Buffer{}, decoder: kapi.Codecs.UniversalDecoder(), retryTimeout: 1 * time.Second, retryPeriod: 1 * time.Millisecond, getReplicationController: func(namespace, name string) (*kapi.ReplicationController, error) { return deployment, nil }, scaler: scaler, } acceptor := &testAcceptor{ acceptFn: func(deployment *kapi.ReplicationController) error { return fmt.Errorf("rejected") }, } oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) err := strategy.DeployWithAcceptor(oldDeployment, deployment, 2, acceptor) if err == nil { t.Fatalf("expected a deployment failure") } t.Logf("got expected error: %v", err) if e, a := 1, len(scaler.Events); e != a { t.Fatalf("expected %d scale calls, got %d", e, a) } if e, a := uint(1), scaler.Events[0].Size; e != a { t.Errorf("expected scale up to %d, got %d", e, a) } }
func TestRecreate_acceptorFail(t *testing.T) { var deployment *kapi.ReplicationController scaler := &cmdtest.FakeScaler{} strategy := &RecreateDeploymentStrategy{ out: &bytes.Buffer{}, errOut: &bytes.Buffer{}, decoder: kapi.Codecs.UniversalDecoder(), retryPeriod: 1 * time.Millisecond, scaler: scaler, eventClient: fake.NewSimpleClientset().Core(), } acceptor := &testAcceptor{ acceptFn: func(deployment *kapi.ReplicationController) error { return fmt.Errorf("rejected") }, } oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.rcClient = &fakeControllerClient{deployment: deployment} strategy.podClient = &fakePodClient{deployerName: deployutil.DeployerPodNameForDeployment(deployment.Name)} err := strategy.DeployWithAcceptor(oldDeployment, deployment, 2, acceptor) if err == nil { t.Fatalf("expected a deployment failure") } t.Logf("got expected error: %v", err) if e, a := 1, len(scaler.Events); e != a { t.Fatalf("expected %d scale calls, got %d", e, a) } if e, a := uint(1), scaler.Events[0].Size; e != a { t.Errorf("expected scale up to %d, got %d", e, a) } }