From 5a22e30b7dd064c130737f9a9c3fc3f642b4efeb Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Fri, 15 Jan 2016 16:00:46 -0800 Subject: [PATCH] Sync deployment status when with RecreateDeploymentStrategy --- pkg/controller/deployment/deployment_controller.go | 14 +++++++++++--- test/e2e/deployment.go | 4 ++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index 395658d5db..a5c9b9567c 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -450,7 +450,10 @@ func (dc *DeploymentController) syncRecreateDeployment(deployment extensions.Dep return dc.updateDeploymentStatus(allRCs, newRC, deployment) } - return nil + // Sync deployment status + return dc.syncDeploymentStatus(allRCs, newRC, deployment) + + // TODO: raise an event, neither scaled up nor down. } func (dc *DeploymentController) syncRollingUpdateDeployment(deployment extensions.Deployment) error { @@ -487,13 +490,18 @@ func (dc *DeploymentController) syncRollingUpdateDeployment(deployment extension } // Sync deployment status + return dc.syncDeploymentStatus(allRCs, newRC, deployment) + + // TODO: raise an event, neither scaled up nor down. +} + +// syncDeploymentStatus checks if the status is up-to-date and sync it if necessary +func (dc *DeploymentController) syncDeploymentStatus(allRCs []*api.ReplicationController, newRC *api.ReplicationController, deployment extensions.Deployment) error { totalReplicas := deploymentutil.GetReplicaCountForRCs(allRCs) updatedReplicas := deploymentutil.GetReplicaCountForRCs([]*api.ReplicationController{newRC}) if deployment.Status.Replicas != totalReplicas || deployment.Status.UpdatedReplicas != updatedReplicas { return dc.updateDeploymentStatus(allRCs, newRC, deployment) } - - // TODO: raise an event, neither scaled up nor down. return nil } diff --git a/test/e2e/deployment.go b/test/e2e/deployment.go index 926ac4e713..cfdb90c0b6 100644 --- a/test/e2e/deployment.go +++ b/test/e2e/deployment.go @@ -285,6 +285,10 @@ func testRecreateDeployment(f *Framework) { }() err = waitForDeploymentStatus(c, ns, deploymentName, replicas, 0, replicas, 0) + if err != nil { + deployment, _ := c.Deployments(ns).Get(deploymentName) + Logf("deployment = %+v", deployment) + } Expect(err).NotTo(HaveOccurred()) // Verify that the pods were scaled up and down as expected. We use events to verify that.