func (c *DeploymentConfigController) calculateStatus(config deployapi.DeploymentConfig, deployments []kapi.ReplicationController) (deployapi.DeploymentConfigStatus, error) { selector := labels.Set(config.Spec.Selector).AsSelector() pods, err := c.podStore.Pods(config.Namespace).List(selector) if err != nil { return config.Status, err } available := deployutil.GetAvailablePods(pods, config.Spec.MinReadySeconds) // UpdatedReplicas represents the replicas that use the deployment config template which means // we should inform about the replicas of the latest deployment and not the active. latestReplicas := int32(0) for _, deployment := range deployments { if deployment.Name == deployutil.LatestDeploymentNameForConfig(&config) { updatedDeployment := []kapi.ReplicationController{deployment} latestReplicas = deployutil.GetStatusReplicaCountForDeployments(updatedDeployment) break } } total := deployutil.GetReplicaCountForDeployments(deployments) return deployapi.DeploymentConfigStatus{ LatestVersion: config.Status.LatestVersion, Details: config.Status.Details, ObservedGeneration: config.Generation, Replicas: deployutil.GetStatusReplicaCountForDeployments(deployments), UpdatedReplicas: latestReplicas, AvailableReplicas: available, UnavailableReplicas: total - available, }, nil }
func (c *DeploymentConfigController) calculateStatus(config deployapi.DeploymentConfig, deployments []kapi.ReplicationController, additional ...deployapi.DeploymentCondition) (deployapi.DeploymentConfigStatus, error) { selector := labels.Set(config.Spec.Selector).AsSelector() // TODO: Replace with using rc.status.availableReplicas that comes with the next rebase. pods, err := c.podStore.Pods(config.Namespace).List(selector) if err != nil { return config.Status, err } available := deployutil.GetAvailablePods(pods, config.Spec.MinReadySeconds) // UpdatedReplicas represents the replicas that use the deployment config template which means // we should inform about the replicas of the latest deployment and not the active. latestReplicas := int32(0) latestExists, latestRC := deployutil.LatestDeploymentInfo(&config, deployments) if !latestExists { latestRC = nil } else { latestReplicas = deployutil.GetStatusReplicaCountForDeployments([]kapi.ReplicationController{*latestRC}) } total := deployutil.GetReplicaCountForDeployments(deployments) status := deployapi.DeploymentConfigStatus{ LatestVersion: config.Status.LatestVersion, Details: config.Status.Details, ObservedGeneration: config.Generation, Replicas: deployutil.GetStatusReplicaCountForDeployments(deployments), UpdatedReplicas: latestReplicas, AvailableReplicas: available, UnavailableReplicas: total - available, Conditions: config.Status.Conditions, } isProgressing := deployutil.IsProgressing(config, status) updateConditions(config, &status, latestRC, isProgressing) for _, cond := range additional { deployutil.SetDeploymentCondition(&status, cond) } return status, nil }