func canLoginToAPIAsMachine(c *gc.C, fromConf, toConf agent.Config) bool { fromInfo, ok := fromConf.APIInfo() c.Assert(ok, jc.IsTrue) toInfo, ok := toConf.APIInfo() c.Assert(ok, jc.IsTrue) fromInfo.Addrs = toInfo.Addrs var err error var apiState api.Connection for a := ShortAttempt.Start(); a.Next(); { apiState, err = api.Open(fromInfo, upgradeTestDialOpts) // If space discovery is still in progress we retry. if err != nil && strings.Contains(err.Error(), "spaces are still being discovered") { if !a.HasNext() { return false } continue } if apiState != nil { apiState.Close() } break } return apiState != nil && err == nil }