github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/state/apiserver/rsyslog/config.go (about) 1 package rsyslog 2 3 import ( 4 "net" 5 6 "github.com/juju/juju/environs/config" 7 "github.com/juju/juju/instance" 8 apirsyslog "github.com/juju/juju/state/api/rsyslog" 9 ) 10 11 // newRsyslogConfig creates a new instance of the RsyslogConfig. 12 func newRsyslogConfig(envCfg *config.Config, api *RsyslogAPI) (*apirsyslog.RsyslogConfig, error) { 13 stateAddrsResult, err := api.StateAddresser.StateAddresses() 14 if err != nil { 15 return nil, err 16 } 17 port := envCfg.SyslogPort() 18 19 var bareAddrs []string 20 for _, addr := range stateAddrsResult.Result { 21 hostOnly, _, err := net.SplitHostPort(addr) 22 if err != nil { 23 return nil, err 24 } 25 bareAddrs = append(bareAddrs, hostOnly) 26 } 27 apiAddresses := instance.NewAddresses(bareAddrs...) 28 29 return &apirsyslog.RsyslogConfig{ 30 CACert: envCfg.RsyslogCACert(), 31 Port: port, 32 HostPorts: instance.AddressesWithPort(apiAddresses, port), 33 }, nil 34 }