Documentation ¶
Index ¶
- func Asset(name string) ([]byte, error)
- func AssetDir(name string) ([]string, error)
- func AssetInfo(name string) (os.FileInfo, error)
- func AssetNames() []string
- func MustAsset(name string) []byte
- func RestoreAsset(dir, name string) error
- func RestoreAssets(dir, name string) error
- type Config
- type Icecast
- type Node
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Asset ¶
Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetDir ¶
AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:
data/ foo.txt img/ a.png b.png
then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.
func AssetInfo ¶
AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.
func MustAsset ¶
MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.
func RestoreAsset ¶
RestoreAsset restores an asset under the given directory
func RestoreAssets ¶
RestoreAssets restores an asset under the given directory recursively
Types ¶
type Config ¶
type Config struct { Domain string Nameservers []string DNSAddrs []net.IP PeerAddr net.IP HTTPPort int HTTPSPort int DNSPort int GossipPort int IcecastPort int MetricsPort int ACMEEmail string ACMEDirectoryURL string CertNames []string }
Config holds all the configuration parameters for a Server. NewServer has too many arguments otherwise.
type Icecast ¶
type Icecast interface { GetStatus() ([]*pb.IcecastMount, bool) Update(context.Context, []*pb.Mount, bool, string) error }
Icecast is the interface used to manage the local Icecast daemon.
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
A Node controls an Icecast instance and participates in various presence/consensus protocols in order to be part of the autoradio cluster. Its only communications are with Icecast and the frontends. A Node comes with its own etcd Session, that it maintains until the controlling Context is canceled.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
The Server runs all the request-based components of a Node. It bundles together servers for all the supported protocols (HTTP, DNS, GRPC). A failure of any of them will cause the entire Server to fail.
func NewServer ¶
func NewServer(ctx context.Context, etcd *clientv3.Client, n *Node, config *Config) (*Server, error)
NewServer creates a new Server. Will use publicAddrs / peerAddr to build all the necessary addr/port combinations.
The main http handler will bind on all available interfaces. The DNS servers will bind only to the dnsAddrs (both TCP and UDP). The metrics and the status services, which are internal, will bind on peerAddr.