octavia.amphorae.backends.agent.api_server package

Submodules

octavia.amphorae.backends.agent.api_server.amphora_info module

class AmphoraInfo(osutils)[source]

Bases: object

compile_amphora_details(extend_udp_driver=None)[source]
compile_amphora_info(extend_udp_driver=None)[source]
get_interface(ip_addr)[source]

octavia.amphorae.backends.agent.api_server.certificate_update module

upload_server_cert()[source]

octavia.amphorae.backends.agent.api_server.haproxy_compatibility module

get_haproxy_versions()[source]

Get major and minor version number from haproxy

Returns major_version

The major version digit

Returns minor_version

The minor version digit

process_cfg_for_version_compat(haproxy_cfg)[source]

octavia.amphorae.backends.agent.api_server.keepalived module

class Keepalived[source]

Bases: object

manager_keepalived_service(action)[source]
upload_keepalived_config()[source]

octavia.amphorae.backends.agent.api_server.keepalivedlvs module

class KeepalivedLvs[source]

Bases: octavia.amphorae.backends.agent.api_server.udp_listener_base.UdpListenerApiServerBase

delete_udp_listener(listener_id)[source]

Delete a UDP Listener from a amphora

Parameters

listener_id – The id of the listener

Returns

HTTP response with status code.

Raises

Exception – If unsupport initial system of amphora.

get_all_udp_listeners_status()[source]

Gets the status of all UDP listeners

Gets the status of all UDP listeners on the amphora.

get_udp_listener_config(listener_id)[source]

Gets the keepalivedlvs config

Parameters

listener_id – the id of the listener

manage_udp_listener(listener_id, action)[source]

Gets the UDP Listener configuration details

Parameters
  • listener_id – the id of the UDP Listener

  • action – the operation type.

Returns

HTTP response with status code.

Raises

Exception – If the listener is failed to find.

upload_udp_listener_config(listener_id)[source]

Upload the configuration for UDP.

Parameters

listener_id – The id of a UDP Listener

Returns

HTTP response with status code.

Raises

Exception – If any file / directory is not found or fail to create.

octavia.amphorae.backends.agent.api_server.loadbalancer module

class Loadbalancer[source]

Bases: object

delete_certificate(lb_id, filename)[source]
delete_lb(lb_id)[source]
get_all_listeners_status(other_listeners=None)[source]

Gets the status of all listeners

This method will not consult the stats socket so a listener might show as ACTIVE but still be in ERROR

Currently type==SSL is also not detected

get_certificate_md5(lb_id, filename)[source]
get_haproxy_config(lb_id)[source]

Gets the haproxy config

Parameters

listener_id – the id of the listener

start_stop_lb(lb_id, action)[source]
upload_certificate(lb_id, filename)[source]
upload_haproxy_config(amphora_id, lb_id)[source]

Upload the haproxy config

Parameters
  • amphora_id – The id of the amphora to update

  • lb_id – The id of the loadbalancer

class Wrapped(stream_)[source]

Bases: object

get_md5()[source]
read(line)[source]

octavia.amphorae.backends.agent.api_server.osutils module

class BaseOS(os_name)[source]

Bases: object

classmethod bring_interfaces_up(ip, primary_interface, secondary_interface)[source]
create_netns_dir(network_dir, netns_network_dir, ignore=None)[source]
classmethod get_host_routes(fixed_ip)[source]
get_network_interface_file(interface)[source]
classmethod get_os_util()[source]
has_ifup_all()[source]
write_port_interface_file(netns_interface, fixed_ips, mtu, interface_file_path, template_port)[source]
write_vip_interface_file(interface_file_path, primary_interface, vip, ip, broadcast, netmask, gateway, mtu, vrrp_ip, vrrp_version, render_host_routes, template_vip)[source]
class CentOS(os_name)[source]

Bases: octavia.amphorae.backends.agent.api_server.osutils.RH

classmethod is_os_name(os_name)[source]
class RH(os_name)[source]

Bases: octavia.amphorae.backends.agent.api_server.osutils.BaseOS

ETH_IFDOWN_LOCAL_SCRIPT = 'rh_plug_port_eth_ifdown_local.conf.j2'
ETH_IFUP_LOCAL_SCRIPT = 'rh_plug_port_eth_ifup_local.conf.j2'
ETH_X_ALIAS_VIP_CONF = 'rh_plug_vip_ethX_alias.conf.j2'
ETH_X_PORT_CONF = 'rh_plug_port_ethX.conf.j2'
ETH_X_VIP_CONF = 'rh_plug_vip_ethX.conf.j2'
ROUTE_ETH_X_CONF = 'rh_route_ethX.conf.j2'
RULE_ETH_X_CONF = 'rh_rule_ethX.conf.j2'
classmethod bring_interfaces_up(ip, primary_interface, secondary_interface)[source]
cmd_get_version_of_installed_package(package_name)[source]
create_netns_dir(network_dir=None, netns_network_dir=None, ignore=None)[source]
get_alias_network_interface_file(interface)[source]
get_netns_network_dir()[source]
get_network_interface_file(interface)[source]
get_network_path()[source]
get_route_rules_interface_file(interface, version)[source]
get_static_routes_interface_file(interface, version)[source]
has_ifup_all()[source]
classmethod is_os_name(os_name)[source]
write_interfaces_file()[source]
write_port_interface_file(netns_interface, fixed_ips, mtu, interface_file_path=None, template_port=None)[source]
write_port_interface_if_local_scripts(template_script, ifup=True)[source]
write_static_routes_interface_file(interface_file_path, interface, host_routes, template_routes, gateway, vip, netmask)[source]
write_vip_interface_file(interface_file_path, primary_interface, vip, ip, broadcast, netmask, gateway, mtu, vrrp_ip, vrrp_version, render_host_routes, template_vip=None)[source]
class Ubuntu(os_name)[source]

Bases: octavia.amphorae.backends.agent.api_server.osutils.BaseOS

ETH_X_PORT_CONF = 'plug_port_ethX.conf.j2'
ETH_X_VIP_CONF = 'plug_vip_ethX.conf.j2'
cmd_get_version_of_installed_package(package_name)[source]
create_netns_dir(network_dir=None, netns_network_dir=None, ignore=None)[source]
get_netns_network_dir()[source]
get_network_interface_file(interface)[source]
get_network_path()[source]
has_ifup_all()[source]
classmethod is_os_name(os_name)[source]
write_interfaces_file()[source]
write_port_interface_file(netns_interface, fixed_ips, mtu, interface_file_path=None, template_port=None)[source]
write_vip_interface_file(interface_file_path, primary_interface, vip, ip, broadcast, netmask, gateway, mtu, vrrp_ip, vrrp_version, render_host_routes, template_vip=None)[source]

octavia.amphorae.backends.agent.api_server.plug module

class Plug(osutils)[source]

Bases: object

plug_network(mac_address, fixed_ips, mtu=None)[source]
plug_vip(vip, subnet_cidr, gateway, mac_address, mtu=None, vrrp_ip=None, host_routes=None)[source]

octavia.amphorae.backends.agent.api_server.server module

class Server[source]

Bases: object

delete_certificate(lb_id, filename)[source]
delete_lb_object(object_id)[source]
get_all_listeners_status()[source]
get_certificate_md5(lb_id, filename)[source]
get_details()[source]
get_haproxy_config(lb_id)[source]
get_info()[source]
get_interface(ip_addr)[source]
get_udp_listener_config(listener_id)[source]
manage_service_vrrp(action)[source]
plug_network()[source]
plug_vip(vip)[source]
start_stop_lb_object(object_id, action)[source]
upload_cert()[source]
upload_certificate(lb_id, filename)[source]
upload_config()[source]
upload_haproxy_config(amphora_id, lb_id)[source]
upload_udp_listener_config(amphora_id, listener_id)[source]
upload_vrrp_config()[source]
version_discovery()[source]
make_json_error(ex)[source]
register_app_error_handler(app)[source]

octavia.amphorae.backends.agent.api_server.udp_listener_base module

class UdpListenerApiServerBase[source]

Bases: object

Base UDP Listener Server API

SERVER_INSTANCE = None
abstract delete_udp_listener(listener_id)[source]

Delete a UDP Listener from a amphora

Parameters

listener_id – The id of the listener

Returns

HTTP response with status code.

Raises

Exception – If unsupport initial system of amphora.

abstract get_all_udp_listeners_status()[source]

Gets the status of all UDP Listeners

This method will not consult the stats socket so a listener might show as ACTIVE but still be in ERROR

Returns

a list of UDP Listener status

Raises

Exception – If the listener pid located directory is not exist

classmethod get_server_driver()[source]
get_subscribed_amp_compile_info()[source]
abstract get_udp_listener_config(listener_id)[source]

Gets the UDP Listener configuration details

Parameters

listener_id – the id of the UDP Listener

Returns

HTTP response with status code.

Raises

Exception – If the listener is failed to find.

abstract manage_udp_listener(listener_id, action)[source]

Gets the UDP Listener configuration details

Parameters
  • listener_id – the id of the UDP Listener

  • action – the operation type.

Returns

HTTP response with status code.

Raises

Exception – If the listener is failed to find.

abstract upload_udp_listener_config(listener_id)[source]

Upload the configuration for UDP.

Parameters

listener_id – The id of a UDP Listener

Returns

HTTP response with status code.

Raises

Exception – If any file / directory is not found or fail to create.

octavia.amphorae.backends.agent.api_server.util module

exception ParsingError[source]

Bases: Exception

exception UnknownInitError[source]

Bases: Exception

config_path(lb_id)[source]
get_haproxy_pid(lb_id)[source]
get_haproxy_vip_addresses(lb_id)[source]

Get the VIP addresses for a load balancer.

Parameters

lb_id – The load balancer ID to get VIP addresses from.

Returns

List of VIP addresses (IPv4 and IPv6)

get_keepalivedlvs_pid(listener_id)[source]
get_listeners()[source]

Get Listeners

Returns

An array with the ids of all listeners, e.g. [‘123’, ‘456’, …] or [] if no listeners exist

get_loadbalancers()[source]

Get Load balancers

Returns

An array with the uuids of all load balancers, e.g. [‘123’, ‘456’, …] or [] if no loadbalancers exist

get_os_init_system()[source]
get_protocol_for_lb_object(object_id)[source]

Returns the L4 protocol for a listener.

If the listener is a TCP based listener (haproxy) return TCP. If the listener is a UDP based listener (lvs) return UDP. If the listener is not identifiable, return None.

Parameters

listener_id – The ID of the listener to identify.

Returns

TCP, UDP, or None

get_udp_listeners()[source]
haproxy_check_script_path()[source]
haproxy_dir(lb_id)[source]
haproxy_sock_path(lb_id)[source]
init_path(lb_id, init_system)[source]
install_netns_systemd_service()[source]
is_lb_running(lb_id)[source]
is_udp_listener_running(listener_id)[source]
keepalived_backend_check_script_dir()[source]
keepalived_backend_check_script_path()[source]
keepalived_cfg_path()[source]
keepalived_check_script_path()[source]
keepalived_check_scripts_dir()[source]
keepalived_dir()[source]
keepalived_init_path(init_system)[source]
keepalived_log_path()[source]
keepalived_lvs_cfg_path(listener_id)[source]
keepalived_lvs_dir()[source]
keepalived_lvs_init_path(init_system, listener_id)[source]
keepalived_lvs_pids_path(listener_id)[source]
keepalived_pid_path()[source]
parse_haproxy_file(lb_id)[source]
pid_path(lb_id)[source]
run_systemctl_command(command, service)[source]
send_vip_advertisements(lb_id)[source]

Sends address advertisements for each load balancer VIP.

This method will send either GARP (IPv4) or neighbor advertisements (IPv6) for the VIP addresses on a load balancer.

Parameters

lb_id – The load balancer ID to send advertisements for.

Returns

None

vrrp_check_script_update(lb_id, action)[source]

Module contents