func (s *baseLoginSuite) openAPIWithoutLogin(c *gc.C, info *api.Info) api.Connection { info.Tag = nil info.Password = "" info.SkipLogin = true st, err := api.Open(info, fastDialOpts) c.Assert(err, jc.ErrorIsNil) return st }
func (s *macaroonLoginSuite) login(c *gc.C, info *api.Info) (params.LoginResult, error) { info.SkipLogin = true cookieJar := apitesting.NewClearableCookieJar() client := s.OpenAPI(c, info, cookieJar) defer client.Close() var ( // Remote users start with an empty login request. request params.LoginRequest result params.LoginResult ) err := client.APICall("Admin", 3, "", "Login", &request, &result) c.Assert(err, jc.ErrorIsNil) cookieURL := &url.URL{ Scheme: "https", Host: "localhost", Path: "/", } bakeryClient := httpbakery.NewClient() err = bakeryClient.HandleError(cookieURL, &httpbakery.Error{ Message: result.DischargeRequiredReason, Code: httpbakery.ErrDischargeRequired, Info: &httpbakery.ErrorInfo{ Macaroon: result.DischargeRequired, MacaroonPath: "/", }, }) c.Assert(err, jc.ErrorIsNil) // Add the macaroons that have been saved by HandleError to our login request. request.Macaroons = httpbakery.MacaroonsForURL(bakeryClient.Client.Jar, cookieURL) err = client.APICall("Admin", 3, "", "Login", &request, &result) return result, err }