本文整理汇总了Golang中launchpad/net/juju-core/agent.Conf.OpenAPI方法的典型用法代码示例。如果您正苦于以下问题:Golang Conf.OpenAPI方法的具体用法?Golang Conf.OpenAPI怎么用?Golang Conf.OpenAPI使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类launchpad/net/juju-core/agent.Conf
的用法示例。
在下文中一共展示了Conf.OpenAPI方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestOpenAPINormal
func (s *openSuite) TestOpenAPINormal(c *C) {
conf := agent.Conf{
APIInfo: s.APIInfo(c),
}
conf.OldPassword = "irrelevant"
st, newPassword, err := conf.OpenAPI(api.DialOpts{})
c.Assert(err, IsNil)
defer st.Close()
c.Assert(newPassword, Equals, "")
c.Assert(st, NotNil)
}
示例2: TestOpenAPINoPassword
func (s *openSuite) TestOpenAPINoPassword(c *C) {
conf := agent.Conf{
APIInfo: s.APIInfo(c),
}
conf.OldPassword = conf.APIInfo.Password
conf.APIInfo.Password = ""
st, newPassword, err := conf.OpenAPI(api.DialOpts{})
c.Assert(err, IsNil)
defer st.Close()
c.Assert(newPassword, Matches, ".+")
c.Assert(st, NotNil)
p, err := utils.RandomPassword()
c.Assert(err, IsNil)
c.Assert(newPassword, HasLen, len(p))
c.Assert(conf.OldPassword, Equals, s.APIInfo(c).Password)
}
示例3: TestOpenAPIFallbackPassword
func (s *openSuite) TestOpenAPIFallbackPassword(c *gc.C) {
conf := agent.Conf{
APIInfo: s.APIInfo(c),
}
conf.OldPassword = conf.APIInfo.Password
conf.APIInfo.Password = "not the right password"
st, newPassword, err := conf.OpenAPI(api.DialOpts{})
c.Assert(err, gc.IsNil)
defer st.Close()
c.Assert(newPassword, gc.Matches, ".+")
c.Assert(st, gc.NotNil)
p, err := utils.RandomPassword()
c.Assert(err, gc.IsNil)
c.Assert(newPassword, gc.HasLen, len(p))
c.Assert(conf.OldPassword, gc.Equals, s.APIInfo(c).Password)
}
示例4: openAPIState
func openAPIState(c *agent.Conf, a Agent) (*api.State, AgentAPIState, error) {
// We let the API dial fail immediately because the
// runner's loop outside the caller of openAPIState will
// keep on retrying. If we block for ages here,
// then the worker that's calling this cannot
// be interrupted.
st, newPassword, err := c.OpenAPI(api.DialOpts{})
if err != nil {
return nil, nil, err
}
entity, err := a.APIEntity(st)
if params.ErrCode(err) == params.CodeNotFound || err == nil && entity.Life() == params.Dead {
err = worker.ErrTerminateAgent
}
if err != nil {
st.Close()
return nil, nil, err
}
if newPassword == "" {
return st, entity, nil
}
// Make a copy of the configuration so that if we fail
// to write the configuration file, the configuration will
// still be valid.
c1 := *c
stateInfo := *c.StateInfo
c1.StateInfo = &stateInfo
apiInfo := *c.APIInfo
c1.APIInfo = &apiInfo
c1.StateInfo.Password = newPassword
c1.APIInfo.Password = newPassword
if err := c1.Write(); err != nil {
return nil, nil, err
}
*c = c1
if err := entity.SetPassword(newPassword); err != nil {
return nil, nil, err
}
return st, entity, nil
}