code: func (gce *Cloud) getInstanceByName(name string) (*gceInstance, error) {
  	// Avoid changing behaviour when not managing multiple zones
  	for _, zone := range gce.managedZones {
  		name = canonicalizeInstanceName(name)
  		res, err := gce.service.Instances.Get(gce.projectID, zone, name).Do()
  		if err != nil {
  			glog.Errorf("getInstanceByName: failed to get instance %s; err: %v", name, err)
  			if isHTTPErrorCode(err, http.StatusNotFound) {
  				continue
  			}
  			return nil, err
  		}
  		return &gceInstance{
  			Zone:  lastComponent(res.Zone),
  			Name:  res.Name,
  			ID:    res.Id,
  			Disks: res.Disks,
  			Type:  lastComponent(res.MachineType),
  		}, nil
  	}
  
  	return nil, cloudprovider.ErrInstanceNotFound
  }
docs: // Gets the named instance, returning cloudprovider.ErrInstanceNotFound if the instance is not found