func addControllerMachine(c *gc.C, st *state.State) { // The AddControllerMachine call will update the API host ports // to made-up addresses. We need valid addresses so that the uniter // can download charms from the API server. apiHostPorts, err := st.APIHostPorts() c.Assert(err, gc.IsNil) testing.AddControllerMachine(c, st) err = st.SetAPIHostPorts(apiHostPorts) c.Assert(err, gc.IsNil) }
// AddControllerMachine adds a "controller" machine to the state so // that State.Addresses and State.APIAddresses will work. It returns the // added machine. The addresses that those methods will return bear no // relation to the addresses actually used by the state and API servers. // It returns the addresses that will be returned by the State.Addresses // and State.APIAddresses methods, which will not bear any relation to // the be the addresses used by the controllers. func AddControllerMachine(c *gc.C, st *state.State) *state.Machine { machine, err := st.AddMachine("quantal", state.JobManageModel) c.Assert(err, jc.ErrorIsNil) err = machine.SetProviderAddresses(network.NewAddress("0.1.2.3")) c.Assert(err, jc.ErrorIsNil) hostPorts := [][]network.HostPort{ network.NewHostPorts(1234, "0.1.2.3"), } err = st.SetAPIHostPorts(hostPorts) c.Assert(err, jc.ErrorIsNil) return machine }
// initAPIHostPorts sets the initial API host/port addresses in state. func initAPIHostPorts(c agent.ConfigSetter, st *state.State, addrs []network.Address, apiPort int) error { var hostPorts []network.HostPort // First try to select the correct address using the default space where all // API servers should be accessible on. spaceAddr, ok := network.SelectAddressBySpaces(addrs) if ok { logger.Debugf("selected %q as API address", spaceAddr.Value) hostPorts = network.AddressesWithPort([]network.Address{spaceAddr}, apiPort) } else { // Fallback to using all instead. hostPorts = network.AddressesWithPort(addrs, apiPort) } return st.SetAPIHostPorts([][]network.HostPort{hostPorts}) }
// AddStateServerMachine adds a "state server" machine to the state so // that State.Addresses and State.APIAddresses will work. It returns the // added machine. The addresses that those methods will return bear no // relation to the addresses actually used by the state and API servers. // It returns the addresses that will be returned by the State.Addresses // and State.APIAddresses methods, which will not bear any relation to // the be the addresses used by the state servers. func AddStateServerMachine(c *gc.C, st *state.State) *state.Machine { machine, err := st.AddMachine("quantal", state.JobManageEnviron) c.Assert(err, gc.IsNil) err = machine.SetAddresses(network.NewAddress("0.1.2.3", network.ScopeUnknown)) c.Assert(err, gc.IsNil) hostPorts := [][]network.HostPort{{{ Address: network.NewAddress("0.1.2.3", network.ScopeUnknown), Port: 1234, }}} err = st.SetAPIHostPorts(hostPorts) c.Assert(err, gc.IsNil) return machine }
// initAPIHostPorts sets the initial API host/port addresses in state. func initAPIHostPorts(c ConfigSetter, st *state.State, addrs []network.Address, apiPort int) error { hostPorts := network.AddressesWithPort(addrs, apiPort) return st.SetAPIHostPorts([][]network.HostPort{hostPorts}) }