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’] }}

show_info()[source]

Get and parse output from ‘show info’ command.

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.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

get_ipvsadm_info(ns_name, is_stats_cmd=False)[source]
get_listener_realserver_mapping(ns_name, listener_ip_port, health_monitor_enabled)[source]
get_udp_listener_pool_status(listener_id)[source]
get_udp_listener_resource_ipports_nsname(listener_id)[source]
get_udp_listeners_stats()[source]
read_kernel_file(ns_name, file_path)[source]

octavia.amphorae.backends.utils.network_namespace module

class NetworkNamespace(netns)[source]

Bases: object

A network namespace context manager.

Runs wrapped code inside the specified network namespace.

Parameters

netns – The network namespace name to enter.

CLONE_NEWNET = 1073741824

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

Module contents