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  }