本文整理汇总了Golang中github.com/juju/juju/apiserver/controller.NewControllerAPI函数的典型用法代码示例。如果您正苦于以下问题:Golang NewControllerAPI函数的具体用法?Golang NewControllerAPI怎么用?Golang NewControllerAPI使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewControllerAPI函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestGetControllerAccessPermissions
func (s *controllerSuite) TestGetControllerAccessPermissions(c *gc.C) {
// Set up the user making the call.
user := s.Factory.MakeUser(c, &factory.UserParams{NoModelUser: true})
anAuthoriser := apiservertesting.FakeAuthorizer{
Tag: user.Tag(),
}
endpoint, err := controller.NewControllerAPI(s.State, s.resources, anAuthoriser)
c.Assert(err, jc.ErrorIsNil)
args := params.ModifyControllerAccessRequest{
Changes: []params.ModifyControllerAccess{{
UserTag: user.Tag().String(),
Action: params.GrantControllerAccess,
Access: "superuser",
}}}
result, err := s.controller.ModifyControllerAccess(args)
c.Assert(err, jc.ErrorIsNil)
c.Assert(result.OneError(), jc.ErrorIsNil)
// We ask for permissions for a different user as well as ourselves.
differentUser := s.Factory.MakeUser(c, &factory.UserParams{NoModelUser: true})
req := params.Entities{
Entities: []params.Entity{{Tag: user.Tag().String()}, {Tag: differentUser.Tag().String()}},
}
results, err := endpoint.GetControllerAccess(req)
c.Assert(err, jc.ErrorIsNil)
c.Assert(results.Results, gc.HasLen, 2)
c.Assert(*results.Results[0].Result, jc.DeepEquals, params.UserAccess{
Access: "superuser",
UserTag: user.Tag().String(),
})
c.Assert(*results.Results[1].Error, gc.DeepEquals, params.Error{
Message: "permission denied", Code: "unauthorized access",
})
}
示例2: SetUpTest
func (s *destroyControllerSuite) SetUpTest(c *gc.C) {
s.JujuConnSuite.SetUpTest(c)
s.BlockHelper = commontesting.NewBlockHelper(s.APIState)
s.AddCleanup(func(*gc.C) { s.BlockHelper.Close() })
resources := common.NewResources()
s.AddCleanup(func(_ *gc.C) { resources.StopAll() })
authoriser := apiservertesting.FakeAuthorizer{
Tag: s.AdminUserTag(c),
}
controller, err := controller.NewControllerAPI(s.State, resources, authoriser)
c.Assert(err, jc.ErrorIsNil)
s.controller = controller
s.otherEnvOwner = names.NewUserTag("[email protected]")
s.otherState = factory.NewFactory(s.State).MakeModel(c, &factory.ModelParams{
Name: "dummytoo",
Owner: s.otherEnvOwner,
Prepare: true,
ConfigAttrs: testing.Attrs{
"state-server": false,
},
})
s.AddCleanup(func(c *gc.C) { s.otherState.Close() })
s.otherModelUUID = s.otherState.ModelUUID()
}
示例3: TestNewAPIRefusesNonClient
func (s *controllerSuite) TestNewAPIRefusesNonClient(c *gc.C) {
anAuthoriser := apiservertesting.FakeAuthorizer{
Tag: names.NewUnitTag("mysql/0"),
}
endPoint, err := controller.NewControllerAPI(s.State, s.resources, anAuthoriser)
c.Assert(endPoint, gc.IsNil)
c.Assert(err, gc.ErrorMatches, "permission denied")
}
示例4: TestNewAPIRefusesNonAdmins
func (s *controllerSuite) TestNewAPIRefusesNonAdmins(c *gc.C) {
user := s.Factory.MakeUser(c, &factory.UserParams{NoModelUser: true})
anAuthoriser := apiservertesting.FakeAuthorizer{
Tag: user.Tag(),
}
endPoint, err := controller.NewControllerAPI(s.State, s.resources, anAuthoriser)
c.Assert(endPoint, gc.IsNil)
c.Assert(err, gc.ErrorMatches, "permission denied")
}
示例5: TestModelConfigFromNonStateServer
func (s *controllerSuite) TestModelConfigFromNonStateServer(c *gc.C) {
st := s.Factory.MakeModel(c, &factory.ModelParams{
Name: "test"})
defer st.Close()
authorizer := &apiservertesting.FakeAuthorizer{Tag: s.AdminUserTag(c)}
controller, err := controller.NewControllerAPI(st, common.NewResources(), authorizer)
c.Assert(err, jc.ErrorIsNil)
env, err := controller.ModelConfig()
c.Assert(err, jc.ErrorIsNil)
c.Assert(env.Config["name"], gc.Equals, "dummymodel")
}
示例6: TestModelConfigFromNonController
func (s *controllerSuite) TestModelConfigFromNonController(c *gc.C) {
st := s.Factory.MakeModel(c, &factory.ModelParams{
Name: "test"})
defer st.Close()
authorizer := &apiservertesting.FakeAuthorizer{
Tag: s.Owner,
AdminTag: s.Owner,
}
controller, err := controller.NewControllerAPI(st, common.NewResources(), authorizer)
c.Assert(err, jc.ErrorIsNil)
cfg, err := controller.ModelConfig()
c.Assert(err, jc.ErrorIsNil)
c.Assert(cfg.Config["name"], jc.DeepEquals, params.ConfigValue{Value: "controller"})
}
示例7: SetUpTest
func (s *controllerSuite) SetUpTest(c *gc.C) {
s.JujuConnSuite.SetUpTest(c)
s.resources = common.NewResources()
s.AddCleanup(func(_ *gc.C) { s.resources.StopAll() })
s.authorizer = apiservertesting.FakeAuthorizer{
Tag: s.AdminUserTag(c),
}
controller, err := controller.NewControllerAPI(s.State, s.resources, s.authorizer)
c.Assert(err, jc.ErrorIsNil)
s.controller = controller
loggo.GetLogger("juju.apiserver.controller").SetLogLevel(loggo.TRACE)
}
示例8: TestModelStatusNonAuth
func (s *modelStatusSuite) TestModelStatusNonAuth(c *gc.C) {
// Set up the user making the call.
user := s.Factory.MakeUser(c, &factory.UserParams{NoModelUser: true})
anAuthoriser := apiservertesting.FakeAuthorizer{
Tag: user.Tag(),
}
endpoint, err := controller.NewControllerAPI(s.State, s.resources, anAuthoriser)
c.Assert(err, jc.ErrorIsNil)
controllerModelTag := s.State.ModelTag().String()
req := params.Entities{
Entities: []params.Entity{{Tag: controllerModelTag}},
}
_, err = endpoint.ModelStatus(req)
c.Assert(err, gc.ErrorMatches, "permission denied")
}
示例9: TestControllerConfigFromNonController
func (s *controllerSuite) TestControllerConfigFromNonController(c *gc.C) {
st := s.Factory.MakeModel(c, &factory.ModelParams{
Name: "test"})
defer st.Close()
authorizer := &apiservertesting.FakeAuthorizer{Tag: s.Owner}
controller, err := controller.NewControllerAPI(st, common.NewResources(), authorizer)
c.Assert(err, jc.ErrorIsNil)
cfg, err := controller.ControllerConfig()
c.Assert(err, jc.ErrorIsNil)
cfgFromDB, err := s.State.ControllerConfig()
c.Assert(err, jc.ErrorIsNil)
c.Assert(cfg.Config["controller-uuid"], gc.Equals, cfgFromDB.ControllerUUID())
c.Assert(cfg.Config["state-port"], gc.Equals, cfgFromDB.StatePort())
c.Assert(cfg.Config["api-port"], gc.Equals, cfgFromDB.APIPort())
}
示例10: TestModelStatusOwnerAllowed
func (s *modelStatusSuite) TestModelStatusOwnerAllowed(c *gc.C) {
// Set up the user making the call.
owner := s.Factory.MakeUser(c, nil)
anAuthoriser := apiservertesting.FakeAuthorizer{
Tag: owner.Tag(),
}
st := s.Factory.MakeModel(c, &factory.ModelParams{Owner: owner.Tag()})
defer st.Close()
endpoint, err := controller.NewControllerAPI(s.State, s.resources, anAuthoriser)
c.Assert(err, jc.ErrorIsNil)
req := params.Entities{
Entities: []params.Entity{{Tag: st.ModelTag().String()}},
}
_, err = endpoint.ModelStatus(req)
c.Assert(err, jc.ErrorIsNil)
}
示例11: SetUpTest
func (s *modelStatusSuite) SetUpTest(c *gc.C) {
// Initial config needs to be set before the StateSuite SetUpTest.
s.InitialConfig = testing.CustomModelConfig(c, testing.Attrs{
"name": "controller",
})
s.StateSuite.SetUpTest(c)
s.resources = common.NewResources()
s.AddCleanup(func(_ *gc.C) { s.resources.StopAll() })
s.authorizer = apiservertesting.FakeAuthorizer{
Tag: s.Owner,
AdminTag: s.Owner,
}
controller, err := controller.NewControllerAPI(s.State, s.resources, s.authorizer)
c.Assert(err, jc.ErrorIsNil)
s.controller = controller
loggo.GetLogger("juju.apiserver.controller").SetLogLevel(loggo.TRACE)
}