Use ListOptions when listing RCs in deployment

This commit is contained in:
Janet Kuo
2016-01-29 17:23:22 -08:00
parent c84a0371a2
commit 42f712467e
4 changed files with 10 additions and 9 deletions

View File

@@ -170,11 +170,13 @@ type storeReplicationControllersNamespacer struct {
namespace string 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() { for _, c := range s.store.List() {
rc := *(c.(*api.ReplicationController)) rc := *(c.(*api.ReplicationController))
if s.namespace == api.NamespaceAll || s.namespace == rc.Namespace { 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 return

View File

@@ -32,7 +32,6 @@ import (
client "k8s.io/kubernetes/pkg/client/unversioned" client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/controller/framework" "k8s.io/kubernetes/pkg/controller/framework"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
deploymentutil "k8s.io/kubernetes/pkg/util/deployment" 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) { func (dc *DeploymentController) getOldRCs(deployment extensions.Deployment) ([]*api.ReplicationController, []*api.ReplicationController, error) {
return deploymentutil.GetOldRCsFromLists(deployment, dc.client, return deploymentutil.GetOldRCsFromLists(deployment, dc.client,
func(namespace string, options api.ListOptions) (*api.PodList, error) { 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 return &podList, err
}, },
func(namespace string, options api.ListOptions) ([]api.ReplicationController, error) { 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, existingNewRC, err := deploymentutil.GetNewRCFromList(deployment, dc.client,
func(namespace string, options api.ListOptions) ([]api.ReplicationController, error) { 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 { if err != nil {
return nil, err return nil, err

View File

@@ -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. // TODO: Right now we list all RCs and then filter. We should add an API for this.
oldRCs := map[string]api.ReplicationController{} oldRCs := map[string]api.ReplicationController{}
allOldRCs := map[string]api.ReplicationController{} allOldRCs := map[string]api.ReplicationController{}
rcList, err := getRcList(namespace, api.ListOptions{}) rcList, err := getRcList(namespace, options)
if err != nil { if err != nil {
return nil, nil, fmt.Errorf("error listing replication controllers: %v", err) 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. // 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) { func GetNewRCFromList(deployment extensions.Deployment, c client.Interface, getRcList func(string, api.ListOptions) ([]api.ReplicationController, error)) (*api.ReplicationController, error) {
namespace := deployment.ObjectMeta.Namespace 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 { if err != nil {
return nil, fmt.Errorf("error listing replication controllers: %v", err) return nil, fmt.Errorf("error listing replication controllers: %v", err)
} }

View File

@@ -2024,7 +2024,7 @@ func waitForDeploymentOldRCsNum(c *client.Client, ns, deploymentName string, des
if err != nil { if err != nil {
return false, err return false, err
} }
oldRCs, err := deploymentutil.GetOldRCs(*deployment, c) oldRCs, _, err := deploymentutil.GetOldRCs(*deployment, c)
if err != nil { if err != nil {
return false, err return false, err
} }