本文整理汇总了Golang中github.com/juju/juju/agent.ConfigPath函数的典型用法代码示例。如果您正苦于以下问题:Golang ConfigPath函数的具体用法?Golang ConfigPath怎么用?Golang ConfigPath使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ConfigPath函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: RunTestOpenAPIState
func (s *UnitSuite) RunTestOpenAPIState(c *gc.C, ent state.AgentEntity, agentCmd Agent, initialPassword string) {
conf, err := agent.ReadConfig(agent.ConfigPath(s.DataDir(), ent.Tag()))
c.Assert(err, jc.ErrorIsNil)
conf.SetPassword("")
err = conf.Write()
c.Assert(err, jc.ErrorIsNil)
// Check that it starts initially and changes the password
assertOpen := func(conf agent.Config) {
st, gotEnt, err := OpenAPIState(conf, agentCmd)
c.Assert(err, jc.ErrorIsNil)
c.Assert(st, gc.NotNil)
st.Close()
c.Assert(gotEnt.Tag(), gc.Equals, ent.Tag().String())
}
assertOpen(conf)
// Check that the initial password is no longer valid.
err = ent.Refresh()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ent.PasswordValid(initialPassword), jc.IsFalse)
// Read the configuration and check that we can connect with it.
conf, err = agent.ReadConfig(agent.ConfigPath(conf.DataDir(), conf.Tag()))
//conf = refreshConfig(c, conf)
c.Assert(err, gc.IsNil)
// Check we can open the API with the new configuration.
assertOpen(conf)
}
开发者ID:claudiu-coblis,项目名称:juju,代码行数:30,代码来源:unit_test.go
示例2: assertUpgradeSteps
func (s *UpgradeSuite) assertUpgradeSteps(c *gc.C, job state.MachineJob) {
s.agentSuite.PatchValue(&version.Current, s.upgradeToVersion)
err := s.State.SetEnvironAgentVersion(s.upgradeToVersion.Number)
c.Assert(err, gc.IsNil)
oldVersion := s.upgradeToVersion
oldVersion.Major = 1
oldVersion.Minor = 16
var oldConfig agent.Config
s.machine, oldConfig, _ = s.primeAgent(c, oldVersion, job)
a := s.newAgent(c, s.machine)
go func() { c.Check(a.Run(nil), gc.IsNil) }()
defer func() { c.Check(a.Stop(), gc.IsNil) }()
// Wait for upgrade steps to run.
success := false
for attempt := coretesting.LongAttempt.Start(); attempt.Next(); {
conf, err := agent.ReadConfig(agent.ConfigPath(oldConfig.DataDir(), s.machine.Tag()))
c.Assert(err, gc.IsNil)
success = conf.UpgradedToVersion() == s.upgradeToVersion.Number
if success {
break
}
}
// Upgrade worker has completed ok.
c.Assert(success, jc.IsTrue)
}
开发者ID:rogpeppe,项目名称:juju,代码行数:28,代码来源:upgrade_test.go
示例3: assertConfigNotProcessed
func (s *migrateLocalProviderAgentConfigSuite) assertConfigNotProcessed(c *gc.C) {
envConfig, err := s.State.EnvironConfig()
c.Assert(err, jc.ErrorIsNil)
allAttrs := envConfig.AllAttrs()
namespace, _ := allAttrs["namespace"].(string)
c.Assert(namespace, gc.Equals, "")
container, _ := allAttrs["container"].(string)
c.Assert(container, gc.Equals, "")
rootDir, _ := allAttrs["root-dir"].(string)
expectedSharedStorageDir := filepath.Join(rootDir, "shared-storage")
_, err = os.Lstat(expectedSharedStorageDir)
c.Assert(err, jc.ErrorIsNil)
tag := s.ctx.AgentConfig().Tag()
// We need to read the actual migrated agent config.
configFilePath := agent.ConfigPath(agent.DefaultDataDir, tag)
agentConfig, err := agent.ReadConfig(configFilePath)
c.Assert(err, jc.ErrorIsNil)
c.Assert(agentConfig.DataDir(), gc.Equals, agent.DefaultDataDir)
c.Assert(agentConfig.LogDir(), gc.Equals, agent.DefaultLogDir)
c.Assert(agentConfig.Jobs(), gc.HasLen, 0)
c.Assert(agentConfig.Value("SHARED_STORAGE_ADDR"), gc.Equals, "blah")
c.Assert(agentConfig.Value("SHARED_STORAGE_DIR"), gc.Equals, expectedSharedStorageDir)
c.Assert(agentConfig.Value(agent.Namespace), gc.Equals, "")
c.Assert(agentConfig.Value(agent.AgentServiceName), gc.Equals, "")
c.Assert(agentConfig.Value(agent.ContainerType), gc.Equals, "")
}
开发者ID:Pankov404,项目名称:juju,代码行数:30,代码来源:agentconfig_test.go
示例4: removeEnvUUIDFromAgentConfig
func (s *migrateAgentEnvUUIDSuite) removeEnvUUIDFromAgentConfig(c *gc.C) {
// Read the file in as simple map[string]interface{} and delete
// the element, and write it back out again.
// First step, read the file contents.
filename := agent.ConfigPath(agent.DefaultDataDir, s.machine.Tag())
data, err := ioutil.ReadFile(filename)
c.Assert(err, jc.ErrorIsNil)
c.Logf("Data in:\n\n%s\n", data)
// Parse it into the map.
var content map[string]interface{}
err = goyaml.Unmarshal(data, &content)
c.Assert(err, jc.ErrorIsNil)
// Remove the environment value, and marshal back into bytes.
delete(content, "environment")
data, err = goyaml.Marshal(content)
c.Assert(err, jc.ErrorIsNil)
// Write the yaml back out remembering to add the format prefix.
data = append([]byte("# format 1.18\n"), data...)
c.Logf("Data out:\n\n%s\n", data)
err = ioutil.WriteFile(filename, data, 0644)
c.Assert(err, jc.ErrorIsNil)
// Reset test attributes.
cfg, err := agent.ReadConfig(filename)
c.Assert(err, jc.ErrorIsNil)
s.ctx.realAgentConfig = cfg
}
开发者ID:Pankov404,项目名称:juju,代码行数:31,代码来源:agentconfig_test.go
示例5: Run
func (c *MigrateCommand) Run(ctx *cmd.Context) (err error) {
defer func() {
if err != nil {
fmt.Fprintf(ctx.Stdout, "error stack:\n"+errors.ErrorStack(err))
}
}()
loggo.GetLogger("juju").SetLogLevel(loggo.DEBUG)
conf, err := agent.ReadConfig(agent.ConfigPath(c.dataDir, c.machineTag))
if err != nil {
return err
}
info, ok := conf.MongoInfo()
if !ok {
return errors.Errorf("no state info available")
}
st, err := state.Open(conf.Model(), info, mongo.DefaultDialOpts(), environs.NewStatePolicy())
if err != nil {
return err
}
defer st.Close()
if c.operation == "export" {
return c.exportModel(ctx, st)
}
return c.importModel(ctx, st)
}
开发者ID:howbazaar,项目名称:migration-test,代码行数:31,代码来源:main.go
示例6: assertConfigProcessed
func (s *migrateLocalProviderAgentConfigSuite) assertConfigProcessed(c *gc.C) {
envConfig, err := s.State.EnvironConfig()
c.Assert(err, jc.ErrorIsNil)
allAttrs := envConfig.AllAttrs()
namespace, _ := allAttrs["namespace"].(string)
c.Assert(namespace, gc.Equals, "user-dummyenv")
container, _ := allAttrs["container"].(string)
c.Assert(container, gc.Equals, "lxc")
expectedDataDir, _ := allAttrs["root-dir"].(string)
expectedSharedStorageDir := filepath.Join(expectedDataDir, "shared-storage")
_, err = os.Lstat(expectedSharedStorageDir)
c.Assert(err, gc.NotNil)
c.Assert(err, jc.Satisfies, os.IsNotExist)
expectedLogDir := filepath.Join(*upgrades.RootLogDir, "juju-"+namespace)
expectedJobs := []multiwatcher.MachineJob{multiwatcher.JobManageEnviron}
tag := s.ctx.AgentConfig().Tag()
// We need to read the actual migrated agent config.
configFilePath := agent.ConfigPath(expectedDataDir, tag)
agentConfig, err := agent.ReadConfig(configFilePath)
c.Assert(err, jc.ErrorIsNil)
c.Assert(agentConfig.DataDir(), gc.Equals, expectedDataDir)
c.Assert(agentConfig.LogDir(), gc.Equals, expectedLogDir)
c.Assert(agentConfig.Jobs(), gc.DeepEquals, expectedJobs)
c.Assert(agentConfig.Value("SHARED_STORAGE_ADDR"), gc.Equals, "")
c.Assert(agentConfig.Value("SHARED_STORAGE_DIR"), gc.Equals, "")
c.Assert(agentConfig.Value(agent.Namespace), gc.Equals, namespace)
agentService := "juju-agent-user-dummyenv"
c.Assert(agentConfig.Value(agent.AgentServiceName), gc.Equals, agentService)
c.Assert(agentConfig.Value(agent.ContainerType), gc.Equals, "")
}
开发者ID:Pankov404,项目名称:juju,代码行数:34,代码来源:agentconfig_test.go
示例7: getMachine0Config
func (s *UpgradeSuite) getMachine0Config(c *gc.C) agent.Config {
conf, err := agent.ReadConfig(agent.ConfigPath(
s.machine0Config.DataDir(),
s.machine0.Tag(),
))
c.Assert(err, gc.IsNil)
return conf
}
开发者ID:jimmiebtlr,项目名称:juju,代码行数:8,代码来源:upgrade_test.go
示例8: assertCanOpenState
func (s *agentSuite) assertCanOpenState(c *gc.C, tag, dataDir string) {
config, err := agent.ReadConfig(agent.ConfigPath(dataDir, tag))
c.Assert(err, gc.IsNil)
info, ok := config.StateInfo()
c.Assert(ok, jc.IsTrue)
st, err := state.Open(info, mongo.DialOpts{}, environs.NewStatePolicy())
c.Assert(err, gc.IsNil)
st.Close()
}
开发者ID:rogpeppe,项目名称:juju,代码行数:9,代码来源:agent_test.go
示例9: AssertCanOpenState
func (s *AgentSuite) AssertCanOpenState(c *gc.C, tag names.Tag, dataDir string) {
config, err := agent.ReadConfig(agent.ConfigPath(dataDir, tag))
c.Assert(err, jc.ErrorIsNil)
info, ok := config.MongoInfo()
c.Assert(ok, jc.IsTrue)
st, err := state.Open(config.Model(), info, mongo.DefaultDialOpts(), environs.NewStatePolicy())
c.Assert(err, jc.ErrorIsNil)
st.Close()
}
开发者ID:pmatulis,项目名称:juju,代码行数:9,代码来源:agent.go
示例10: AssertCanOpenState
func (s *AgentSuite) AssertCanOpenState(c *gc.C, tag names.Tag, dataDir string) {
config, err := agent.ReadConfig(agent.ConfigPath(dataDir, tag))
c.Assert(err, jc.ErrorIsNil)
info, ok := config.MongoInfo()
c.Assert(ok, jc.IsTrue)
st, err := state.Open(config.Model(), config.Controller(), info, mongotest.DialOpts(), stateenvirons.GetNewPolicyFunc(
stateenvirons.GetNewEnvironFunc(environs.New),
))
c.Assert(err, jc.ErrorIsNil)
st.Close()
}
开发者ID:bac,项目名称:juju,代码行数:11,代码来源:agent.go
示例11: TestWriteAndRead
func (*suite) TestWriteAndRead(c *gc.C) {
testParams := attributeParams
testParams.Paths.DataDir = c.MkDir()
testParams.Paths.LogDir = c.MkDir()
conf, err := agent.NewAgentConfig(testParams)
c.Assert(err, jc.ErrorIsNil)
c.Assert(conf.Write(), gc.IsNil)
reread, err := agent.ReadConfig(agent.ConfigPath(conf.DataDir(), conf.Tag()))
c.Assert(err, jc.ErrorIsNil)
c.Assert(reread, jc.DeepEquals, conf)
}
开发者ID:exekias,项目名称:juju,代码行数:12,代码来源:agent_test.go
示例12: TestOpenAPIState
func (s *UnitSuite) TestOpenAPIState(c *gc.C) {
_, unit, conf, _ := s.primeAgent(c)
configPath := agent.ConfigPath(conf.DataDir(), conf.Tag())
// Set an invalid password (but the old initial password will still work).
// This test is a sort of unsophisticated simulation of what might happen
// if a previous cycle had picked, and locally recorded, a new password;
// but failed to set it on the state server. Would be better to test that
// code path explicitly in future, but this suffices for now.
confW, err := agent.ReadConfig(configPath)
c.Assert(err, gc.IsNil)
confW.SetPassword("nonsense-borken")
err = confW.Write()
c.Assert(err, jc.ErrorIsNil)
// Check that it successfully connects (with the conf's old password).
assertOpen := func() {
agent := NewAgentConf(conf.DataDir())
err := agent.ReadConfig(conf.Tag().String())
c.Assert(err, jc.ErrorIsNil)
st, gotEntity, err := apicaller.OpenAPIState(agent)
c.Assert(err, jc.ErrorIsNil)
c.Assert(st, gc.NotNil)
st.Close()
c.Assert(gotEntity.Tag(), gc.Equals, unit.Tag().String())
}
assertOpen()
// Check that the old password has been invalidated.
assertPassword := func(password string, valid bool) {
err := unit.Refresh()
c.Assert(err, jc.ErrorIsNil)
c.Check(unit.PasswordValid(password), gc.Equals, valid)
}
assertPassword(initialUnitPassword, false)
// Read the stored password and check it's valid.
confR, err := agent.ReadConfig(configPath)
c.Assert(err, gc.IsNil)
apiInfo, ok := confR.APIInfo()
c.Assert(ok, jc.IsTrue)
newPassword := apiInfo.Password
assertPassword(newPassword, true)
// Double-check that we can open a fresh connection with the stored
// conf ... and that the password hasn't been changed again.
assertOpen()
assertPassword(newPassword, true)
}
开发者ID:saydulk,项目名称:juju,代码行数:49,代码来源:unit_test.go
示例13: TestInitialPassword
func (s *BootstrapSuite) TestInitialPassword(c *gc.C) {
machineConf, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", s.envcfg, "--instance-id", string(s.instanceId))
c.Assert(err, gc.IsNil)
err = cmd.Run(nil)
c.Assert(err, gc.IsNil)
// Check that we cannot now connect to the state without a
// password.
info := &authentication.MongoInfo{
Info: mongo.Info{
Addrs: []string{gitjujutesting.MgoServer.Addr()},
CACert: testing.CACert,
},
}
testOpenState(c, info, errors.Unauthorizedf(""))
// Check we can log in to mongo as admin.
// TODO(dfc) does passing nil for the admin user name make your skin crawl ? mine too.
info.Tag, info.Password = nil, testPasswordHash()
st, err := state.Open(info, mongo.DefaultDialOpts(), environs.NewStatePolicy())
c.Assert(err, gc.IsNil)
// Reset password so the tests can continue to use the same server.
defer st.Close()
defer st.SetAdminMongoPassword("")
// Check that the admin user has been given an appropriate
// password
u, err := st.User("admin")
c.Assert(err, gc.IsNil)
c.Assert(u.PasswordValid(testPassword), gc.Equals, true)
// Check that the machine configuration has been given a new
// password and that we can connect to mongo as that machine
// and that the in-mongo password also verifies correctly.
machineConf1, err := agent.ReadConfig(agent.ConfigPath(machineConf.DataDir(), names.NewMachineTag("0")))
c.Assert(err, gc.IsNil)
stateinfo, ok := machineConf1.MongoInfo()
c.Assert(ok, jc.IsTrue)
st, err = state.Open(stateinfo, mongo.DialOpts{}, environs.NewStatePolicy())
c.Assert(err, gc.IsNil)
defer st.Close()
m, err := st.Machine("0")
c.Assert(err, gc.IsNil)
c.Assert(m.HasVote(), jc.IsTrue)
}
开发者ID:jiasir,项目名称:juju,代码行数:48,代码来源:bootstrap_test.go
示例14: checkUnitInstalled
func (fix *SimpleToolsFixture) checkUnitInstalled(c *gc.C, name, password string) {
tag := names.NewUnitTag(name)
svcName := "jujud-" + tag.String()
assertContains(c, fix.data.InstalledNames(), svcName)
svcConf := fix.data.GetInstalled(svcName).Conf()
// TODO(ericsnow) For now we just use upstart serialization.
uconfData, err := upstart.Serialize(svcName, svcConf)
c.Assert(err, jc.ErrorIsNil)
uconf := string(uconfData)
regex := regexp.MustCompile("(?m)(?:^\\s)*exec\\s.+$")
execs := regex.FindAllString(uconf, -1)
if nil == execs {
c.Fatalf("no command found in conf:\n%s", uconf)
} else if 1 > len(execs) {
c.Fatalf("Test is not built to handle more than one exec line.")
}
_, toolsDir := fix.paths(tag)
jujudPath := filepath.Join(toolsDir, "jujud"+cmdSuffix)
logPath := filepath.Join(fix.logDir, tag.String()+".log")
for _, pat := range []string{
"^exec " + quote + jujudPath + quote + " unit ",
" --unit-name " + name + " ",
" >> " + logPath + " 2>&1$",
} {
match, err := regexp.MatchString(pat, execs[0])
c.Assert(err, jc.ErrorIsNil)
if !match {
c.Fatalf("failed to match:\n%s\nin:\n%s", pat, execs[0])
}
}
conf, err := agent.ReadConfig(agent.ConfigPath(fix.dataDir, tag))
c.Assert(err, jc.ErrorIsNil)
c.Assert(conf.Tag(), gc.Equals, tag)
c.Assert(conf.DataDir(), gc.Equals, fix.dataDir)
jujudData, err := ioutil.ReadFile(jujudPath)
c.Assert(err, jc.ErrorIsNil)
c.Assert(string(jujudData), gc.Equals, fakeJujud)
}
开发者ID:imoapps,项目名称:juju,代码行数:47,代码来源:simple_test.go
示例15: stateInfo
func stateInfo() (*state.Info, error) {
dataDir := agent.DefaultDataDir
tag, err := machineAgentTag(dataDir)
if err != nil {
return nil, err
}
cfgPath := agent.ConfigPath(dataDir, tag)
cfg, err := agent.ReadConfig(cfgPath)
if err != nil {
return nil, err
}
info, ok := cfg.StateInfo()
if !ok {
return nil, fmt.Errorf("no state info found")
}
return info, nil
}
开发者ID:macressler,项目名称:misc,代码行数:17,代码来源:juju-stateservers.go
示例16: checkUnitInstalled
func (fix *SimpleToolsFixture) checkUnitInstalled(c *gc.C, name, password string) {
tag := names.NewUnitTag(name)
uconfPath, _, toolsDir := fix.paths(tag)
uconfData, err := ioutil.ReadFile(uconfPath)
c.Assert(err, gc.IsNil)
uconf := string(uconfData)
regex := regexp.MustCompile("(?m)(?:^\\s)*exec\\s.+$")
execs := regex.FindAllString(uconf, -1)
if nil == execs {
c.Fatalf("no command found in %s:\n%s", uconfPath, uconf)
} else if 1 > len(execs) {
c.Fatalf("Test is not built to handle more than one exec line.")
}
logPath := filepath.Join(fix.logDir, tag.String()+".log")
jujudPath := filepath.Join(toolsDir, "jujud")
for _, pat := range []string{
"^exec " + jujudPath + " unit ",
" --unit-name " + name + " ",
" >> " + logPath + " 2>&1$",
} {
match, err := regexp.MatchString(pat, execs[0])
c.Assert(err, gc.IsNil)
if !match {
c.Fatalf("failed to match:\n%s\nin:\n%s", pat, execs[0])
}
}
conf, err := agent.ReadConfig(agent.ConfigPath(fix.dataDir, tag))
c.Assert(err, gc.IsNil)
c.Assert(conf.Tag(), gc.Equals, tag)
c.Assert(conf.DataDir(), gc.Equals, fix.dataDir)
jujudData, err := ioutil.ReadFile(jujudPath)
c.Assert(err, gc.IsNil)
c.Assert(string(jujudData), gc.Equals, fakeJujud)
}
开发者ID:jiasir,项目名称:juju,代码行数:40,代码来源:simple_test.go
示例17: checkUnitInstalled
func (fix *SimpleToolsFixture) checkUnitInstalled(c *gc.C, name, password string) {
tag := names.NewUnitTag(name).String()
uconfPath, _, toolsDir := fix.paths(tag)
uconfData, err := ioutil.ReadFile(uconfPath)
c.Assert(err, gc.IsNil)
uconf := string(uconfData)
var execLine string
for _, line := range strings.Split(uconf, "\n") {
if strings.HasPrefix(line, "exec ") {
execLine = line
break
}
}
if execLine == "" {
c.Fatalf("no command found in %s:\n%s", uconfPath, uconf)
}
logPath := filepath.Join(fix.logDir, tag+".log")
jujudPath := filepath.Join(toolsDir, "jujud")
for _, pat := range []string{
"^exec " + jujudPath + " unit ",
" --unit-name " + name + " ",
" >> " + logPath + " 2>&1$",
} {
match, err := regexp.MatchString(pat, execLine)
c.Assert(err, gc.IsNil)
if !match {
c.Fatalf("failed to match:\n%s\nin:\n%s", pat, execLine)
}
}
conf, err := agent.ReadConfig(agent.ConfigPath(fix.dataDir, tag))
c.Assert(err, gc.IsNil)
c.Assert(conf.Tag(), gc.Equals, tag)
c.Assert(conf.DataDir(), gc.Equals, fix.dataDir)
jujudData, err := ioutil.ReadFile(jujudPath)
c.Assert(err, gc.IsNil)
c.Assert(string(jujudData), gc.Equals, fakeJujud)
}
开发者ID:rogpeppe,项目名称:juju,代码行数:39,代码来源:simple_test.go
示例18: Run
func (c *FixitCommand) Run(ctx *cmd.Context) error {
loggo.GetLogger("juju").SetLogLevel(loggo.DEBUG)
conf, err := agent.ReadConfig(agent.ConfigPath(c.dataDir, c.machineTag))
if err != nil {
return err
}
info, ok := conf.MongoInfo()
if !ok {
return errors.Errorf("no state info available")
}
st, err := state.Open(conf.Environment(), info, mongo.DefaultDialOpts(), environs.NewStatePolicy())
if err != nil {
return err
}
defer st.Close()
ctx.Infof("\nStep 1: migrate individual unit ports to openedPorts collection")
if err := state.MigrateUnitPortsToOpenedPorts(st); err != nil {
return err
}
ctx.Infof("\nStep 2: create entries in meter status collection for existing units")
if err := state.CreateUnitMeterStatus(st); err != nil {
return err
}
ctx.Infof("\nStep 3: migrate machine jobs into ones with JobManageNetworking based on rules")
if err := state.MigrateJobManageNetworking(st); err != nil {
return err
}
return nil
}
开发者ID:howbazaar,项目名称:juju-121-upgrades,代码行数:38,代码来源:main.go
示例19: testInitializeState
//.........这里部分代码省略.........
)
mcfg := agent.BootstrapMachineConfig{
Addresses: initialAddrs,
Constraints: expectConstraints,
Jobs: []multiwatcher.MachineJob{multiwatcher.JobManageEnviron},
InstanceId: "i-bootstrap",
Characteristics: expectHW,
SharedSecret: "abc123",
}
filteredAddrs := network.NewAddresses(
"zeroonetwothree",
"0.1.2.3",
"10.0.3.3",
)
if fakeLocalEnv {
// For local environments - no filtering.
filteredAddrs = append([]network.Address{}, initialAddrs...)
}
envAttrs := dummy.SampleConfig().Delete("admin-secret").Merge(testing.Attrs{
"agent-version": version.Current.Number.String(),
"state-id": "1", // needed so policy can Open config
})
envCfg, err := config.New(config.NoDefaults, envAttrs)
c.Assert(err, jc.ErrorIsNil)
adminUser := names.NewLocalUserTag("agent-admin")
st, m, err := agent.InitializeState(adminUser, cfg, envCfg, mcfg, mongo.DefaultDialOpts(), environs.NewStatePolicy())
c.Assert(err, jc.ErrorIsNil)
defer st.Close()
err = cfg.Write()
c.Assert(err, jc.ErrorIsNil)
// Check that the environment has been set up.
env, err := st.Environment()
c.Assert(err, jc.ErrorIsNil)
uuid, ok := envCfg.UUID()
c.Assert(ok, jc.IsTrue)
c.Assert(env.UUID(), gc.Equals, uuid)
// Check that initial admin user has been set up correctly.
envTag := env.Tag().(names.EnvironTag)
s.assertCanLogInAsAdmin(c, envTag, pwHash)
user, err := st.User(env.Owner())
c.Assert(err, jc.ErrorIsNil)
c.Assert(user.PasswordValid(testing.DefaultMongoPassword), jc.IsTrue)
// Check that environment configuration has been added.
newEnvCfg, err := st.EnvironConfig()
c.Assert(err, jc.ErrorIsNil)
c.Assert(newEnvCfg.AllAttrs(), gc.DeepEquals, envCfg.AllAttrs())
// Check that the bootstrap machine looks correct.
c.Assert(m.Id(), gc.Equals, "0")
c.Assert(m.Jobs(), gc.DeepEquals, []state.MachineJob{state.JobManageEnviron})
c.Assert(m.Series(), gc.Equals, series.HostSeries())
c.Assert(m.CheckProvisioned(agent.BootstrapNonce), jc.IsTrue)
c.Assert(m.Addresses(), jc.DeepEquals, filteredAddrs)
gotConstraints, err := m.Constraints()
c.Assert(err, jc.ErrorIsNil)
c.Assert(gotConstraints, gc.DeepEquals, expectConstraints)
c.Assert(err, jc.ErrorIsNil)
gotHW, err := m.HardwareCharacteristics()
c.Assert(err, jc.ErrorIsNil)
c.Assert(*gotHW, gc.DeepEquals, expectHW)
// Check that the API host ports are initialised correctly.
apiHostPorts, err := st.APIHostPorts()
c.Assert(err, jc.ErrorIsNil)
c.Assert(apiHostPorts, jc.DeepEquals, [][]network.HostPort{
network.AddressesWithPort(filteredAddrs, 1234),
})
// Check that the state serving info is initialised correctly.
stateServingInfo, err := st.StateServingInfo()
c.Assert(err, jc.ErrorIsNil)
c.Assert(stateServingInfo, jc.DeepEquals, state.StateServingInfo{
APIPort: 1234,
StatePort: s.mgoInst.Port(),
Cert: testing.ServerCert,
PrivateKey: testing.ServerKey,
CAPrivateKey: testing.CAKey,
SharedSecret: "abc123",
SystemIdentity: "def456",
})
// Check that the machine agent's config has been written
// and that we can use it to connect to the state.
machine0 := names.NewMachineTag("0")
newCfg, err := agent.ReadConfig(agent.ConfigPath(dataDir, machine0))
c.Assert(err, jc.ErrorIsNil)
c.Assert(newCfg.Tag(), gc.Equals, machine0)
c.Assert(agent.Password(newCfg), gc.Not(gc.Equals), pwHash)
c.Assert(agent.Password(newCfg), gc.Not(gc.Equals), testing.DefaultMongoPassword)
info, ok := cfg.MongoInfo()
c.Assert(ok, jc.IsTrue)
st1, err := state.Open(newCfg.Environment(), info, mongo.DefaultDialOpts(), environs.NewStatePolicy())
c.Assert(err, jc.ErrorIsNil)
defer st1.Close()
}
开发者ID:kakamessi99,项目名称:juju,代码行数:101,代码来源:bootstrap_test.go
示例20: readConfigFromDisk
func readConfigFromDisk(c *gc.C, dir string, tag names.Tag) agent.Config {
conf, err := agent.ReadConfig(agent.ConfigPath(dir, tag))
c.Assert(err, jc.ErrorIsNil)
return conf
}
开发者ID:snailwalker,项目名称:juju,代码行数:5,代码来源:upgrade_test.go
注:本文中的github.com/juju/juju/agent.ConfigPath函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论