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_lvs_driver=None)[source]
compile_amphora_info(extend_lvs_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: LvsListenerApiServerBase

delete_lvs_listener(listener_id)[source]

Delete a LVS Listener from a amphora

Parameters:

listener_id – The id of the listener

Returns:

HTTP response with status code.

Raises:

Exception – If unsupported initial system of amphora.

get_all_lvs_listeners_status()[source]

Gets the status of all UDP listeners

Gets the status of all UDP listeners on the amphora.

get_lvs_listener_config(listener_id)[source]

Gets the keepalivedlvs config

Parameters:

listener_id – the id of the listener

manage_lvs_listener(listener_id, action)[source]

Gets the LVS Listener configuration details

Parameters:
  • listener_id – the id of the LVS Listener

  • action – the operation type.

Returns:

HTTP response with status code.

Raises:

Exception – If the listener is failed to find.

upload_lvs_listener_config(listener_id)[source]

Upload the configuration for LVS.

Parameters:

listener_id – The id of a LVS 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.lvs_listener_base module

class LvsListenerApiServerBase[source]

Bases: object

Base LVS Listener Server API

abstract delete_lvs_listener(listener_id)[source]

Delete a LVS Listener from a amphora

Parameters:

listener_id – The id of the listener

Returns:

HTTP response with status code.

Raises:

Exception – If unsupported initial system of amphora.

abstract get_all_lvs_listeners_status()[source]

Gets the status of all LVS 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 LVS Listener status

Raises:

Exception – If the listener pid located directory is not exist

abstract get_lvs_listener_config(listener_id)[source]

Gets the LVS Listener configuration details

Parameters:

listener_id – the id of the LVS Listener

Returns:

HTTP response with status code.

Raises:

Exception – If the listener is failed to find.

get_subscribed_amp_compile_info()[source]
abstract manage_lvs_listener(listener_id, action)[source]

Gets the LVS Listener configuration details

Parameters:
  • listener_id – the id of the LVS Listener

  • action – the operation type.

Returns:

HTTP response with status code.

Raises:

Exception – If the listener is failed to find.

abstract upload_lvs_listener_config(listener_id)[source]

Upload the configuration for LVS.

Parameters:

listener_id – The id of a LVS 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.osutils module

class BaseOS(os_name)[source]

Bases: object

classmethod bring_interface_up(interface, name)[source]
classmethod get_os_util()[source]
write_interface_file(interface, ip_address, prefixlen)[source]
write_port_interface_file(interface, fixed_ips, mtu, is_sriov=False)[source]
write_vip_interface_file(interface, vips, mtu, vrrp_info, fixed_ips=None, is_sriov=False)[source]
class CentOS(os_name)[source]

Bases: RH

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

Bases: BaseOS

cmd_get_version_of_installed_package(package_name)[source]
classmethod is_os_name(os_name)[source]
class Ubuntu(os_name)[source]

Bases: BaseOS

cmd_get_version_of_installed_package(package_name)[source]
classmethod is_os_name(os_name)[source]

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

class Plug(osutils)[source]

Bases: object

build_vrrp_info(vrrp_ip, subnet_cidr, gateway, host_routes)[source]
plug_lo()[source]
plug_network(mac_address, fixed_ips, mtu=None, vip_net_info=None, is_sriov=False)[source]
plug_vip(vip, subnet_cidr, gateway, mac_address, mtu=None, vrrp_ip=None, host_routes=(), additional_vips=(), is_sriov=False)[source]
render_vips(vips)[source]

octavia.amphorae.backends.agent.api_server.rules_schema module

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_lvs_listener_config(listener_id)[source]
manage_service_vrrp(action)[source]
plug_network()[source]
plug_vip(vip)[source]
set_interface_rules(ip_addr)[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_lvs_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.util module

exception ParsingError[source]

Bases: Exception

config_path(lb_id)[source]
get_backend_for_lb_object(object_id)[source]

Returns the backend for a listener.

If the listener is a TCP based listener return ‘HAPROXY’. If the listener is a UDP or SCTP based listener return ‘LVS’ If the listener is not identifiable, return None.

Parameters:

listener_id – The ID of the listener to identify.

Returns:

HAPROXY_BACKEND, LVS_BACKEND or None

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_lvs_listeners()[source]
get_lvs_vip_addresses(listener_id: str) list[str][source]

Get the VIP addresses for a LVS load balancer.

Parameters:

listener_id – The listener ID to get VIP addresses from.

Returns:

List of VIP addresses (IPv4 and IPv6)

haproxy_check_script_path()[source]
haproxy_dir(lb_id)[source]
haproxy_sock_path(lb_id)[source]
init_path(lb_id)[source]
install_netns_systemd_service()[source]
is_lb_running(lb_id)[source]
is_lvs_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()[source]
keepalived_log_path()[source]
keepalived_lvs_cfg_path(listener_id)[source]
keepalived_lvs_dir()[source]
keepalived_lvs_init_path(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, raise_error=True)[source]
send_member_advertisements(fixed_ips: Iterable[Dict[str, str]])[source]

Sends advertisements for each fixed_ip of a list

This method will send either GARP (IPv4) or neighbor advertisements (IPv6) for the addresses of the subnets of the members.

Parameters:

fixed_ips – a list of dicts that contain ‘ip_address’ elements

Returns:

None

send_vip_advertisements(lb_id: str | None = None, listener_id: str | None = None)[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

state_file_path(lb_id)[source]
vrrp_check_script_update(lb_id, action)[source]

Module contents