Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyConfig ¶
Types ¶
type ExecutorRegistry ¶
type ExecutorRegistry interface { RegisterExecutor(name string, executor string) error GetExecutor(name string) (string, bool) }
func NewEmptyExecutorRegistry ¶
func NewEmptyExecutorRegistry() ExecutorRegistry
func NewExecutorRegistry ¶
func NewExecutorRegistry(registry map[string]string) ExecutorRegistry
type Network ¶
type Network interface { // GetNodes returns the names of each node in the network GetNodes() []Node // GetNode returns the Node corresponding to [name] GetNode(name string) (Node, bool) // AddNode adds new node to the network AddNode(ctx context.Context, config NodeConfig) (Node, error) // Teardown stops the network and additionally tears down all of the resources associated with it Teardown(ctx context.Context) error }
Network provides an interface for configuring Nodes
func NewNetwork ¶
func NewNetwork(constructor NetworkConstructor) Network
type NetworkConstructor ¶
type NetworkConstructor interface { AddNode(ctx context.Context, config NodeConfig) (Node, error) Teardown(ctx context.Context) error }
NetworkConstructor provides a thread safe interface for adding new nodes to a specific network Note: a NetworkConstructor is created as a network specific instance and used to implement a more feature complete Network backend without changing the fundamentals of the underlying network constructors.
type NetworkOrchestrator ¶
type NetworkOrchestrator interface { CreateNetwork(name string) (Network, error) GetNetwork(name string) (Network, bool) Teardown(ctx context.Context) error }
NetworkOrchestrator provides an interface to orchestrate networks using an arbitrary backend
type Node ¶
type Node interface { GetName() string Config() map[string]interface{} GetHTTPBaseURI() string GetBootstrapIP() string Stop(timeout time.Duration) error // TODO pass in [ctx] instead of [timeout] }
Node provides an interface to interact with a node on a given network
type NodeConfig ¶
type NodeConfig struct { Name string `json:"name"` // Name of the node Executable string `json:"executable"` // Executable - docker image in this context Config map[string]interface{} `json:"config"` // Config string to be passed in via --config-file-content NodeID string `json:"nodeID"` // If non-empty, this contains the pre-configured nodeID of the node }
Click to show internal directories.
Click to hide internal directories.