func (s *NewAPIClientSuite) TestUpdatesLastKnownAccess(c *gc.C) { store := newClientStore(c, "noconfig") called := 0 expectState := mockedAPIState(mockedHostPort | mockedModelTag) apiOpen := func(apiInfo *api.Info, opts api.DialOpts) (api.Connection, error) { checkCommonAPIInfoAttrs(c, apiInfo, opts) c.Check(apiInfo.ModelTag, gc.Equals, names.NewModelTag(fakeUUID)) called++ return expectState, nil } stubStore := jujuclienttesting.WrapClientStore(store) st, err := newAPIConnectionFromNames(c, "noconfig", "admin@local/admin", stubStore, apiOpen) c.Assert(err, jc.ErrorIsNil) c.Assert(st, gc.Equals, expectState) c.Assert(called, gc.Equals, 1) stubStore.CheckCallNames(c, "AccountDetails", "ModelByName", "ControllerByName", "UpdateController", "AccountDetails", "UpdateAccount") c.Assert( store.Accounts["noconfig"], jc.DeepEquals, jujuclient.AccountDetails{User: "******", Password: "******", LastKnownAccess: "superuser"}, ) }
func (s *SwitchSimpleSuite) SetUpTest(c *gc.C) { s.FakeJujuXDGDataHomeSuite.SetUpTest(c) s.Stub.ResetCalls() s.store = jujuclienttesting.NewMemStore() s.stubStore = jujuclienttesting.WrapClientStore(s.store) s.onRefresh = nil }
func (s *NewAPIClientSuite) TestWithBootstrapConfig(c *gc.C) { store := newClientStore(c, "noconfig") called := 0 expectState := mockedAPIState(mockedHostPort | mockedModelTag) apiOpen := func(apiInfo *api.Info, opts api.DialOpts) (api.Connection, error) { checkCommonAPIInfoAttrs(c, apiInfo, opts) c.Check(apiInfo.ModelTag, gc.Equals, names.NewModelTag(fakeUUID)) called++ return expectState, nil } st, err := newAPIConnectionFromNames(c, "noconfig", "admin@local/admin", store, apiOpen) c.Assert(err, jc.ErrorIsNil) c.Assert(st, gc.Equals, expectState) c.Assert(called, gc.Equals, 1) // The addresses should have been updated. c.Assert( store.Controllers["noconfig"].APIEndpoints, jc.DeepEquals, []string{"0.1.2.3:1234", "[2001:db8::1]:1234"}, ) c.Assert( store.Controllers["noconfig"].AgentVersion, gc.Equals, "1.2.3", ) controllerBefore, err := store.ControllerByName("noconfig") c.Assert(err, jc.ErrorIsNil) // If APIHostPorts or agent version haven't changed, then the store won't be updated. stubStore := jujuclienttesting.WrapClientStore(store) st, err = newAPIConnectionFromNames(c, "noconfig", "admin@local/admin", stubStore, apiOpen) c.Assert(err, jc.ErrorIsNil) c.Assert(st, gc.Equals, expectState) c.Assert(called, gc.Equals, 2) stubStore.CheckCallNames(c, "AccountDetails", "ModelByName", "ControllerByName", "AccountDetails", "UpdateAccount") controllerAfter, err := store.ControllerByName("noconfig") c.Assert(err, jc.ErrorIsNil) c.Assert(controllerBefore, gc.DeepEquals, controllerAfter) }