octavia.amphorae.backends.utils package¶
Submodules¶
octavia.amphorae.backends.utils.haproxy_query module¶
- class HAProxyQuery(stats_socket)[source]¶
Bases:
object
Class used for querying the HAProxy statistics socket.
The CSV output is defined in the HAProxy documentation:
http://cbonte.github.io/haproxy-dconv/configuration-1.4.html#9
- get_pool_status()[source]¶
Get status for each server and the pool as a whole.
- Returns:
pool data structure {<pool-name>: { ‘uuid’: <uuid>, ‘status’: ‘UP’|’DOWN’, ‘members’: [<name>: ‘UP’|’DOWN’|’DRAIN’|’no check’] }}
- save_state(state_file_path)[source]¶
Save haproxy connection state to a file.
- Parameters:
state_file_path – Absolute path to the state file
- Returns:
bool (True if success, False otherwise)
- show_stat(proxy_iid=-1, object_type=-1, server_id=-1)[source]¶
Get and parse output from ‘show stat’ command.
- Parameters:
proxy_iid – Proxy ID (column 27 in CSV output). -1 for all.
object_type – Select the type of dumpable object. Values can be ORed. -1 - everything 1 - frontends 2 - backends 4 - servers
server_id – Server ID (column 28 in CSV output?), or -1 for everything.
- Returns:
stats (split into an array by newline)
octavia.amphorae.backends.utils.interface module¶
octavia.amphorae.backends.utils.interface_file module¶
- class InterfaceFile(name, if_type, mtu=None, addresses=None, routes=None, rules=None, scripts=None, is_sriov=False)[source]¶
Bases:
object
- class PortInterfaceFile(name, mtu, fixed_ips, is_sriov=False)[source]¶
Bases:
InterfaceFile
- class VIPInterfaceFile(name, mtu, vips, vrrp_info, fixed_ips, topology, is_sriov=False)[source]¶
Bases:
InterfaceFile
octavia.amphorae.backends.utils.ip_advertisement module¶
- calculate_icmpv6_checksum(packet)[source]¶
Calculate the ICMPv6 checksum for a packet.
- Parameters:
packet – The packet bytes to checksum.
- Returns:
The checksum integer.
- garp(interface, ip_address, net_ns=None)[source]¶
Sends a gratuitous ARP for ip_address on the interface.
- Parameters:
interface – The interface name to send the GARP on.
ip_address – The IP address to advertise in the GARP.
net_ns – The network namespace to send the GARP from.
- Returns:
None
- neighbor_advertisement(interface, ip_address, net_ns=None)[source]¶
Sends a unsolicited neighbor advertisement for an ip on the interface.
- Parameters:
interface – The interface name to send the GARP on.
ip_address – The IP address to advertise in the GARP.
net_ns – The network namespace to send the GARP from.
- Returns:
None
- send_ip_advertisement(interface, ip_address, net_ns=None)[source]¶
Send an address advertisement.
This method will send either GARP (IPv4) or neighbor advertisements (IPv6) for the ip address specified.
- Parameters:
interface – The interface name to send the advertisement on.
ip_address – The IP address to advertise.
net_ns – The network namespace to send the advertisement from.
- Returns:
None
octavia.amphorae.backends.utils.keepalivedlvs_query module¶
octavia.amphorae.backends.utils.network_namespace module¶
octavia.amphorae.backends.utils.network_utils module¶
- get_interface_name(ip_address, net_ns=None)[source]¶
Gets the interface name from an IP address.
- Parameters:
ip_address – The IP address to lookup.
net_ns – The network namespace to find the interface in.
- Returns:
The interface name.
- Raises:
exceptions.InvalidIPAddress – Invalid IP address provided.
octavia.common.exceptions.NotFound – No interface was found.