// writeStateAgentConfig creates and writes a state agent config. func writeStateAgentConfig(c *gc.C, stateInfo *state.Info, dataDir, tag, password string, vers version.Binary) agent.ConfigSetterWriter { port := coretesting.FindTCPPort() apiAddr := []string{fmt.Sprintf("localhost:%d", port)} conf, err := agent.NewStateMachineConfig( agent.AgentConfigParams{ DataDir: dataDir, Tag: tag, UpgradedToVersion: vers.Number, Password: password, Nonce: state.BootstrapNonce, StateAddresses: stateInfo.Addrs, APIAddresses: apiAddr, CACert: stateInfo.CACert, }, params.StateServingInfo{ Cert: coretesting.ServerCert, PrivateKey: coretesting.ServerKey, StatePort: coretesting.MgoServer.Port(), APIPort: port, }) c.Assert(err, gc.IsNil) conf.SetPassword(password) c.Assert(conf.Write(), gc.IsNil) return conf }
func (s *BootstrapSuite) initBootstrapCommand(c *gc.C, jobs []params.MachineJob, args ...string) (machineConf agent.ConfigSetterWriter, cmd *BootstrapCommand, err error) { if len(jobs) == 0 { // Add default jobs. jobs = []params.MachineJob{ params.JobManageEnviron, params.JobHostUnits, } } // NOTE: the old test used an equivalent of the NewAgentConfig, but it // really should be using NewStateMachineConfig. agentParams := agent.AgentConfigParams{ LogDir: s.logDir, DataDir: s.dataDir, Jobs: jobs, Tag: "machine-0", UpgradedToVersion: version.Current.Number, Password: testPasswordHash(), Nonce: state.BootstrapNonce, StateAddresses: []string{testing.MgoServer.Addr()}, APIAddresses: []string{"0.1.2.3:1234"}, CACert: testing.CACert, Values: map[string]string{agent.Namespace: "foobar"}, } servingInfo := params.StateServingInfo{ Cert: "some cert", PrivateKey: "some key", APIPort: 3737, StatePort: testing.MgoServer.Port(), } machineConf, err = agent.NewStateMachineConfig(agentParams, servingInfo) c.Assert(err, gc.IsNil) err = machineConf.Write() c.Assert(err, gc.IsNil) cmd = &BootstrapCommand{} err = testing.InitCommand(cmd, append([]string{"--data-dir", s.dataDir}, args...)) return machineConf, cmd, err }