Package toxiproxy
Overview ▹
Index ▹
type ApiError ¶
type ApiError struct { Message string `json:"error"` Status int `json:"status"` }
func (*ApiError) Error ¶
func (err *ApiError) Error() string
type Attributes ¶
type Attributes map[string]interface{}
type Client ¶
Client holds information about where to connect to Toxiproxy.
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(endpoint string) *Client
NewClient creates a new client which provides the base of all communication with Toxiproxy. Endpoint is the address to the proxy (e.g. localhost:8474 if not overriden)
func (*Client) CreateProxy ¶
func (client *Client) CreateProxy(name, listen, upstream string) (*Proxy, error)
CreateProxy instantiates a new proxy and starts listening on the specified address. This is an alias for `NewProxy()` + `proxy.Save()`
func (*Client) NewProxy ¶
func (client *Client) NewProxy() *Proxy
Generates a new uncommitted proxy instance. In order to use the result, the proxy fields will need to be set and have `Save()` called.
func (*Client) Populate ¶
func (client *Client) Populate(config []Proxy) ([]*Proxy, error)
Create a list of proxies using a configuration list. If a proxy already exists, it will be replaced with the specified configuration. For large amounts of proxies, `config` can be loaded from a file. Returns a list of the successfully created proxies.
func (*Client) Proxies ¶
func (client *Client) Proxies() (map[string]*Proxy, error)
Proxies returns a map with all the proxies and their toxics.
func (*Client) Proxy ¶
func (client *Client) Proxy(name string) (*Proxy, error)
Proxy returns a proxy by name.
func (*Client) ResetState ¶
func (client *Client) ResetState() error
ResetState resets the state of all proxies and toxics in Toxiproxy.
type Proxy ¶
type Proxy struct { Name string `json:"name"` // The name of the proxy Listen string `json:"listen"` // The address the proxy listens on Upstream string `json:"upstream"` // The upstream address to proxy to Enabled bool `json:"enabled"` // Whether the proxy is enabled ActiveToxics Toxics `json:"toxics"` // The toxics active on this proxy // contains filtered or unexported fields }
func (*Proxy) AddToxic ¶
func (proxy *Proxy) AddToxic(name, typeName, stream string, toxicity float32, attrs Attributes) (*Toxic, error)
AddToxic adds a toxic to the given stream direction. If a name is not specified, it will default to <type>_<stream>. If a stream is not specified, it will default to downstream. See https://github.com/Shopify/toxiproxy#toxics for a list of all Toxic types.
func (*Proxy) Delete ¶
func (proxy *Proxy) Delete() error
Delete a proxy complete and close all existing connections through it. All information about the proxy such as listen port and active toxics will be deleted as well. If you just wish to stop and later enable a proxy, use `Enable()` and `Disable()`.
func (*Proxy) Disable ¶
func (proxy *Proxy) Disable() error
Disable a proxy so that no connections can pass through. This will drop all active connections.
func (*Proxy) Enable ¶
func (proxy *Proxy) Enable() error
Enable a proxy again after it has been disabled.
func (*Proxy) RemoveToxic ¶
func (proxy *Proxy) RemoveToxic(name string) error
RemoveToxic renives the toxic with the given name.
func (*Proxy) Save ¶
func (proxy *Proxy) Save() error
Save saves changes to a proxy such as its enabled status or upstream port.
func (*Proxy) Toxics ¶
func (proxy *Proxy) Toxics() (Toxics, error)
Toxics returns a map of all the active toxics and their attributes.
func (*Proxy) UpdateToxic ¶
func (proxy *Proxy) UpdateToxic(name string, toxicity float32, attrs Attributes) (*Toxic, error)
UpdateToxic sets the parameters for an existing toxic with the given name. If toxicity is set to -1, the current value will be used.
type Toxic ¶
type Toxic struct { Name string `json:"name"` Type string `json:"type"` Stream string `json:"stream,omitempty"` Toxicity float32 `json:"toxicity"` Attributes Attributes `json:"attributes"` }
type Toxics ¶
type Toxics []Toxic