yoda package¶
Submodules¶
yoda.client module¶
-
class
yoda.client.
Client
(etcd_cl=None, etcd_port=None, etcd_host=None, etcd_base=None)[source]¶ Yoda Client that uses etcd API to control the proxy,
-
discover_node
(upstream, node_name, endpoint, ttl=120, meta=None)[source]¶ Discover nodes for a given upstream
Parameters: Returns:
-
get_nodes
(upstream)[source]¶ Get nodes for a given upstream :param upstream: Upstream whose nodes needs to be determined. :type upstream: str :return: Dictionary of nodes for the upstream. e.g.: {
‘node1’: ‘host1:port1’, ‘node2’: ‘host2:port1’,} :rtype: dict
-
get_nodes_with_meta
(upstream)[source]¶ Get nodes with meta information about the node for given upstream and node_name :param upstream: Upstream whose nodes needs to be determined. :type upstream: str :return: Dictionary of nodes for the upstream. :rtype: dict
-
register_upstream
(upstream, mode='http', health_uri=None, health_timeout=None, health_interval=None, ttl=604800)[source]¶ Registers upstream with give name, mode and health check params.
Parameters: - upstream (str) – Upstream (backend) that needs to be registered
- mode (str) – Proxy mode (‘http’ or ‘tcp’). Defaults to ‘http’
- health_uri (str) – URI to be used for http health check. If None, http health check is not executed.
- health_timeout (str) – Timeout for healthcheck. (e.g.: ‘5s’). Defaults to None. If None, it uses haproxy’s default timeout for health-check
- health_interval (str) – Frequency for health check. If None (default) it defaults to value specified in haproxy cfg template.
- ttl (int) – Time to live for upstream directory (in seconds) Defaults to 1 week
Returns: None
-
remove_tcp_listener
(listener_name)[source]¶ Deletes listener with listener_name if it exists. Has no effect if listener does not exists. :param listener_name: Unique Name for the listener :type listener_name: str :return: None
-
remove_upstream
(upstream)[source]¶ Removes upstream with given name if it exists.
Parameters: upstream (str) – Name of upstream (or backend) :return:None
-
renew_upstream
(upstream, ttl=3600)[source]¶ Renews the TTL for an existing upstream to ensure that it does not get removed.
Parameters: - upstream – Upstream for the node.
- ttl (int) – Time to live for Etcd record
Returns: None
-
update_tcp_listener
(tcp_listener)[source]¶ Creates or updates tcp listener for yoda proxy. :param tcp_listener: :type tcp_listener: yoda.model.TcpListener :return: None
-
wire_proxy
(host)[source]¶ Wires the proxy for all locations of a given host.
Parameters: host (yoda.model.Host) – Returns:
-
yoda.model module¶
-
class
yoda.model.
Host
(hostname, locations, aliases=None)[source]¶ Model representing Host for yoda proxy.
Module contents¶
-
yoda.
as_upstream
(app_name, private_port, app_version=None)[source]¶ Creates upstream using application name, private port and version.
Parameters: Returns: String representing Upstream for yoda.
Return type:
-
class
yoda.
Location
(upstream, path='/', location_name=None, allowed_acls=None, denied_acls=None, force_ssl=False)[source]¶ Model representing location for yoda proxy.
-
class
yoda.
Client
(etcd_cl=None, etcd_port=None, etcd_host=None, etcd_base=None)[source]¶ Yoda Client that uses etcd API to control the proxy,
-
discover_node
(upstream, node_name, endpoint, ttl=120, meta=None)[source]¶ Discover nodes for a given upstream
Parameters: Returns:
-
get_nodes
(upstream)[source]¶ Get nodes for a given upstream :param upstream: Upstream whose nodes needs to be determined. :type upstream: str :return: Dictionary of nodes for the upstream. e.g.: {
‘node1’: ‘host1:port1’, ‘node2’: ‘host2:port1’,} :rtype: dict
-
get_nodes_with_meta
(upstream)[source]¶ Get nodes with meta information about the node for given upstream and node_name :param upstream: Upstream whose nodes needs to be determined. :type upstream: str :return: Dictionary of nodes for the upstream. :rtype: dict
-
register_upstream
(upstream, mode='http', health_uri=None, health_timeout=None, health_interval=None, ttl=604800)[source]¶ Registers upstream with give name, mode and health check params.
Parameters: - upstream (str) – Upstream (backend) that needs to be registered
- mode (str) – Proxy mode (‘http’ or ‘tcp’). Defaults to ‘http’
- health_uri (str) – URI to be used for http health check. If None, http health check is not executed.
- health_timeout (str) – Timeout for healthcheck. (e.g.: ‘5s’). Defaults to None. If None, it uses haproxy’s default timeout for health-check
- health_interval (str) – Frequency for health check. If None (default) it defaults to value specified in haproxy cfg template.
- ttl (int) – Time to live for upstream directory (in seconds) Defaults to 1 week
Returns: None
-
remove_tcp_listener
(listener_name)[source]¶ Deletes listener with listener_name if it exists. Has no effect if listener does not exists. :param listener_name: Unique Name for the listener :type listener_name: str :return: None
-
remove_upstream
(upstream)[source]¶ Removes upstream with given name if it exists.
Parameters: upstream (str) – Name of upstream (or backend) :return:None
-
renew_upstream
(upstream, ttl=3600)[source]¶ Renews the TTL for an existing upstream to ensure that it does not get removed.
Parameters: - upstream – Upstream for the node.
- ttl (int) – Time to live for Etcd record
Returns: None
-
update_tcp_listener
(tcp_listener)[source]¶ Creates or updates tcp listener for yoda proxy. :param tcp_listener: :type tcp_listener: yoda.model.TcpListener :return: None
-
wire_proxy
(host)[source]¶ Wires the proxy for all locations of a given host.
Parameters: host (yoda.model.Host) – Returns:
-