From 42f712467efa2f3f4b272ec3c288f3797ee13cad Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Fri, 29 Jan 2016 17:23:22 -0800 Subject: [PATCH] Use ListOptions when listing RCs in deployment --- pkg/client/cache/listers.go | 6 ++++-- pkg/controller/deployment/deployment_controller.go | 7 +++---- pkg/util/deployment/deployment.go | 4 ++-- test/e2e/util.go | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/pkg/client/cache/listers.go b/pkg/client/cache/listers.go index 4b200f8d988..d974ad4e938 100644 --- a/pkg/client/cache/listers.go +++ b/pkg/client/cache/listers.go @@ -170,11 +170,13 @@ type storeReplicationControllersNamespacer struct { namespace string } -func (s storeReplicationControllersNamespacer) List() (controllers []api.ReplicationController, err error) { +func (s storeReplicationControllersNamespacer) List(selector labels.Selector) (controllers []api.ReplicationController, err error) { for _, c := range s.store.List() { rc := *(c.(*api.ReplicationController)) if s.namespace == api.NamespaceAll || s.namespace == rc.Namespace { - controllers = append(controllers, rc) + if selector.Matches(labels.Set(rc.Labels)) { + controllers = append(controllers, rc) + } } } return diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index ed72a82341e..7f2e8f1062f 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -32,7 +32,6 @@ import ( client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/framework" - "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util" deploymentutil "k8s.io/kubernetes/pkg/util/deployment" @@ -563,11 +562,11 @@ func maxRevision(allRCs []*api.ReplicationController) int { func (dc *DeploymentController) getOldRCs(deployment extensions.Deployment) ([]*api.ReplicationController, []*api.ReplicationController, error) { return deploymentutil.GetOldRCsFromLists(deployment, dc.client, func(namespace string, options api.ListOptions) (*api.PodList, error) { - podList, err := dc.podStore.Pods(namespace).List(labels.SelectorFromSet(deployment.Spec.Selector)) + podList, err := dc.podStore.Pods(namespace).List(options.LabelSelector) return &podList, err }, func(namespace string, options api.ListOptions) ([]api.ReplicationController, error) { - return dc.rcStore.ReplicationControllers(namespace).List() + return dc.rcStore.ReplicationControllers(namespace).List(options.LabelSelector) }) } @@ -580,7 +579,7 @@ func (dc *DeploymentController) getNewRC(deployment extensions.Deployment, maxOl existingNewRC, err := deploymentutil.GetNewRCFromList(deployment, dc.client, func(namespace string, options api.ListOptions) ([]api.ReplicationController, error) { - return dc.rcStore.ReplicationControllers(namespace).List() + return dc.rcStore.ReplicationControllers(namespace).List(options.LabelSelector) }) if err != nil { return nil, err diff --git a/pkg/util/deployment/deployment.go b/pkg/util/deployment/deployment.go index f31606955a4..534fad1a0fa 100644 --- a/pkg/util/deployment/deployment.go +++ b/pkg/util/deployment/deployment.go @@ -59,7 +59,7 @@ func GetOldRCsFromLists(deployment extensions.Deployment, c client.Interface, ge // TODO: Right now we list all RCs and then filter. We should add an API for this. oldRCs := map[string]api.ReplicationController{} allOldRCs := map[string]api.ReplicationController{} - rcList, err := getRcList(namespace, api.ListOptions{}) + rcList, err := getRcList(namespace, options) if err != nil { return nil, nil, fmt.Errorf("error listing replication controllers: %v", err) } @@ -105,7 +105,7 @@ func GetNewRC(deployment extensions.Deployment, c client.Interface) (*api.Replic // Returns nil if the new RC doesnt exist yet. func GetNewRCFromList(deployment extensions.Deployment, c client.Interface, getRcList func(string, api.ListOptions) ([]api.ReplicationController, error)) (*api.ReplicationController, error) { namespace := deployment.ObjectMeta.Namespace - rcList, err := getRcList(namespace, api.ListOptions{}) + rcList, err := getRcList(namespace, api.ListOptions{LabelSelector: labels.SelectorFromSet(deployment.Spec.Selector)}) if err != nil { return nil, fmt.Errorf("error listing replication controllers: %v", err) } diff --git a/test/e2e/util.go b/test/e2e/util.go index 28e759fe7a6..631b6a0c725 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -2024,7 +2024,7 @@ func waitForDeploymentOldRCsNum(c *client.Client, ns, deploymentName string, des if err != nil { return false, err } - oldRCs, err := deploymentutil.GetOldRCs(*deployment, c) + oldRCs, _, err := deploymentutil.GetOldRCs(*deployment, c) if err != nil { return false, err }