Merge pull request #21726 from janetkuo/log-on-timeout

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2016-02-23 04:16:49 -08:00
commit aa9e139894
2 changed files with 22 additions and 15 deletions

View File

@ -380,11 +380,7 @@ func testRecreateDeployment(f *Framework) {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
defer stopDeployment(c, f.Client, ns, deploymentName) defer stopDeployment(c, f.Client, ns, deploymentName)
err = waitForDeploymentStatus(c, ns, deploymentName, replicas, 0, replicas, 0) waitForDeploymentStatus(c, ns, deploymentName, replicas, 0, replicas, 0)
if err != nil {
deployment, _ := c.Extensions().Deployments(ns).Get(deploymentName)
Logf("deployment = %+v", deployment)
}
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
// Verify that the pods were scaled up and down as expected. We use events to verify that. // Verify that the pods were scaled up and down as expected. We use events to verify that.

View File

@ -2098,17 +2098,21 @@ func waitForReplicaSetPodsGone(c *client.Client, rs *extensions.ReplicaSet) erro
// Waits for the deployment to reach desired state. // Waits for the deployment to reach desired state.
// Returns an error if minAvailable or maxCreated is broken at any times. // Returns an error if minAvailable or maxCreated is broken at any times.
func waitForDeploymentStatus(c clientset.Interface, ns, deploymentName string, desiredUpdatedReplicas, minAvailable, maxCreated, minReadySeconds int) error { func waitForDeploymentStatus(c clientset.Interface, ns, deploymentName string, desiredUpdatedReplicas, minAvailable, maxCreated, minReadySeconds int) error {
return wait.Poll(poll, 5*time.Minute, func() (bool, error) { var oldRSs, allRSs []*extensions.ReplicaSet
var newRS *extensions.ReplicaSet
var deployment *extensions.Deployment
err := wait.Poll(poll, 5*time.Minute, func() (bool, error) {
deployment, err := c.Extensions().Deployments(ns).Get(deploymentName) var err error
deployment, err = c.Extensions().Deployments(ns).Get(deploymentName)
if err != nil { if err != nil {
return false, err return false, err
} }
oldRSs, _, err := deploymentutil.GetOldReplicaSets(*deployment, c) oldRSs, _, err = deploymentutil.GetOldReplicaSets(*deployment, c)
if err != nil { if err != nil {
return false, err return false, err
} }
newRS, err := deploymentutil.GetNewReplicaSet(*deployment, c) newRS, err = deploymentutil.GetNewReplicaSet(*deployment, c)
if err != nil { if err != nil {
return false, err return false, err
} }
@ -2116,19 +2120,19 @@ func waitForDeploymentStatus(c clientset.Interface, ns, deploymentName string, d
// New RC hasn't been created yet. // New RC hasn't been created yet.
return false, nil return false, nil
} }
allRSs := append(oldRSs, newRS) allRSs = append(oldRSs, newRS)
totalCreated := deploymentutil.GetReplicaCountForReplicaSets(allRSs) totalCreated := deploymentutil.GetReplicaCountForReplicaSets(allRSs)
totalAvailable, err := deploymentutil.GetAvailablePodsForReplicaSets(c, allRSs, minReadySeconds) totalAvailable, err := deploymentutil.GetAvailablePodsForReplicaSets(c, allRSs, minReadySeconds)
if err != nil { if err != nil {
return false, err return false, err
} }
if totalCreated > maxCreated { if totalCreated > maxCreated {
logReplicaSetsOfDeployment(deploymentName, oldRSs, newRS) logReplicaSetsOfDeployment(deployment, oldRSs, newRS)
logPodsOfReplicaSets(c, allRSs, minReadySeconds) logPodsOfReplicaSets(c, allRSs, minReadySeconds)
return false, fmt.Errorf("total pods created: %d, more than the max allowed: %d", totalCreated, maxCreated) return false, fmt.Errorf("total pods created: %d, more than the max allowed: %d", totalCreated, maxCreated)
} }
if totalAvailable < minAvailable { if totalAvailable < minAvailable {
logReplicaSetsOfDeployment(deploymentName, oldRSs, newRS) logReplicaSetsOfDeployment(deployment, oldRSs, newRS)
logPodsOfReplicaSets(c, allRSs, minReadySeconds) logPodsOfReplicaSets(c, allRSs, minReadySeconds)
return false, fmt.Errorf("total pods available: %d, less than the min required: %d", totalAvailable, minAvailable) return false, fmt.Errorf("total pods available: %d, less than the min required: %d", totalAvailable, minAvailable)
} }
@ -2142,6 +2146,12 @@ func waitForDeploymentStatus(c clientset.Interface, ns, deploymentName string, d
} }
return false, nil return false, nil
}) })
if err == wait.ErrWaitTimeout {
logReplicaSetsOfDeployment(deployment, oldRSs, newRS)
logPodsOfReplicaSets(c, allRSs, minReadySeconds)
}
return err
} }
func waitForPodsReady(c *clientset.Clientset, ns, name string, minReadySeconds int) error { func waitForPodsReady(c *clientset.Clientset, ns, name string, minReadySeconds int) error {
@ -2176,11 +2186,12 @@ func waitForDeploymentOldRSsNum(c *clientset.Clientset, ns, deploymentName strin
}) })
} }
func logReplicaSetsOfDeployment(deploymentName string, oldRSs []*extensions.ReplicaSet, newRS *extensions.ReplicaSet) { func logReplicaSetsOfDeployment(deployment *extensions.Deployment, oldRSs []*extensions.ReplicaSet, newRS *extensions.ReplicaSet) {
Logf("Deployment = %+v", deployment)
for i := range oldRSs { for i := range oldRSs {
Logf("Old ReplicaSets (%d/%d) of deployment %s: %+v", i+1, len(oldRSs), deploymentName, oldRSs[i]) Logf("Old ReplicaSets (%d/%d) of deployment %s: %+v", i+1, len(oldRSs), deployment.Name, oldRSs[i])
} }
Logf("New ReplicaSet of deployment %s: %+v", deploymentName, newRS) Logf("New ReplicaSet of deployment %s: %+v", deployment.Name, newRS)
} }
func logPodsOfReplicaSets(c clientset.Interface, rss []*extensions.ReplicaSet, minReadySeconds int) { func logPodsOfReplicaSets(c clientset.Interface, rss []*extensions.ReplicaSet, minReadySeconds int) {