node

package
v0.0.0-...-dd72184 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2023 License: MIT Imports: 45 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Asset

func Asset(name string) ([]byte, error)

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

func AssetDir(name string) ([]string, error)

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

func AssetInfo(name string) (os.FileInfo, error)

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 AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

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.

func New

func New(parentCtx context.Context, session *concurrency.Session, ice Icecast, nodeID string, publicAddrs []net.IP, peerAddr net.IP, gossipPort int, lbSpec string, maxBandwidth, maxListeners int) (*Node, error)

New returns a new Node with a controlling Context, scoped to an etcd Session.

func (*Node) Wait

func (n *Node) Wait()

Wait for the node to terminate.

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.

func (*Server) Stop

func (s *Server) Stop()

Stop all network services.

func (*Server) Wait

func (s *Server) Wait() error

Wait for the services to terminate.

Directories

Path Synopsis
Modular building blocks for a traffic control engine.
Modular building blocks for a traffic control engine.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL