From 2b4efdea7d2264990366b65b7241fba946f2eaf9 Mon Sep 17 00:00:00 2001 From: "Hantao (Will) Wang" Date: Mon, 15 Jul 2019 16:14:51 -0700 Subject: [PATCH] move getInstancesByName logic to helper function --- .../gce/gce_instances.go | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go index ef705fa808b..f1855ba8e4f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go @@ -426,6 +426,28 @@ func (g *Cloud) AddAliasToInstance(nodeName types.NodeName, alias *net.IPNet) er // Gets the named instances, returning cloudprovider.InstanceNotFound if any // instance is not found func (g *Cloud) getInstancesByNames(names []string) ([]*gceInstance, error) { + instanceOrErrors, err := g.getInstanceOrErrorsByNames(names) + if err != nil { + return nil, err + } + var allInstances []*gceInstance + for _, entry := range instanceOrErrors { + if entry.err != nil { + return nil, entry.err + } + allInstances = append(allInstances, entry.instance) + } + return allInstances, nil +} + +type instanceOrError struct { + instance *gceInstance + err error +} + +// Gets the named instances, returning a map of each name to either the found instances or +// cloudprovider.InstanceNotFound if the instance is not found +func (g *Cloud) getInstanceOrErrorsByNames(allNames []string) (map[string]*instanceOrError, error) { ctx, cancel := cloud.ContextWithCallTimeout() defer cancel()