octavia.amphorae.drivers.haproxy package

octavia.amphorae.drivers.haproxy package

Submodules

octavia.amphorae.drivers.haproxy.data_models module

class CPU(total=None, user=None, system=None, soft_irq=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class Details(hostname=None, uuid=None, version=None, api_version=None, network_tx=None, network_rx=None, active=None, haproxy_count=None, cpu=None, memory=None, disk=None, load=None, listeners=None, packages=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class Disk(used=None, available=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class Info(hostname=None, uuid=None, version=None, api_version=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class ListenerStatus(status=None, uuid=None, provisioning_status=None, type=None, pools=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class Memory(total=None, free=None, available=None, buffers=None, cached=None, swap_used=None, shared=None, slab=None, committed_as=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class Pool(uuid=None, status=None, members=None)[source]

Bases: octavia.common.data_models.BaseDataModel

class Topology(hostname=None, uuid=None, topology=None, role=None, ip=None, ha_ip=None)[source]

Bases: octavia.common.data_models.BaseDataModel

octavia.amphorae.drivers.haproxy.exceptions module

exception APIException(**kwargs)[source]

Bases: webob.exc.HTTPClientError

code = 500
msg = 'Something unknown went wrong'
exception Conflict(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 409
msg = 'Conflict'
exception Forbidden(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 403
msg = 'Forbidden'
exception InternalServerError(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 500
msg = 'Internal Server Error'
exception InvalidRequest(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 400
msg = 'Invalid request'
exception NotFound(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 404
msg = 'Not Found'
exception ServiceUnavailable(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 503
msg = 'Service Unavailable'
exception Unauthorized(**kwargs)[source]

Bases: octavia.amphorae.drivers.haproxy.exceptions.APIException

code = 401
msg = 'Unauthorized'
check_exception(response, ignore=())[source]

octavia.amphorae.drivers.haproxy.rest_api_driver module

class AmphoraAPIClient[source]

Bases: object

delete_cert_pem(amp, listener_id, pem_filename)[source]
delete_listener(amp, listener_id)[source]
get_all_listeners(amp)[source]
get_cert_md5sum(amp, listener_id, pem_filename, ignore=())[source]
get_details(amp)[source]
get_info(amp)[source]
get_interface(amp, ip_addr, timeout_dict=None)[source]
get_listener_status(amp, listener_id)[source]
plug_network(amp, port)[source]
plug_vip(amp, vip, net_info)[source]
request(method, amp, path='/', timeout_dict=None, **kwargs)[source]
update_cert_for_rotation(amp, pem_file)[source]
upload_cert_pem(amp, listener_id, pem_filename, pem_file)[source]
upload_config(amp, listener_id, config, timeout_dict=None)[source]
upload_udp_config(amp, listener_id, config, timeout_dict=None)[source]
upload_vrrp_config(amp, config)[source]
class CustomHostNameCheckingAdapter(pool_connections=10, pool_maxsize=10, max_retries=0, pool_block=False)[source]

Bases: requests.adapters.HTTPAdapter

cert_verify(conn, url, verify, cert)[source]

Verify a SSL certificate. This method should not be called from user code, and is only exposed for use when subclassing the HTTPAdapter.

Parameters:
  • conn – The urllib3 connection object associated with the cert.
  • url – The requested URL.
  • verify – Either a boolean, in which case it controls whether we verify the server’s TLS certificate, or a string, in which case it must be a path to a CA bundle to use
  • cert – The SSL certificate to verify.
class HaproxyAmphoraLoadBalancerDriver[source]

Bases: octavia.amphorae.drivers.driver_base.AmphoraLoadBalancerDriver, octavia.amphorae.drivers.keepalived.vrrp_rest_driver.KeepalivedAmphoraDriverMixin

delete(listener, vip)[source]

Delete the listener on the vip.

Parameters:
  • listener (object) – listener object, need to use its protocol_port property
  • vip (object) – vip object, need to use its ip_address property
Returns:

return a value list (listener, vip, status flag–delete)

At this moment, we just build the basic structure for testing, will add more function along with the development.

finalize_amphora(amphora)[source]

Finalize the amphora before any listeners are configured.

Parameters:amphora (object) – amphora object, need to use its id property
Returns:None

At this moment, we just build the basic structure for testing, will add more function along with the development. This is a hook for drivers who need to do additional work before an amphora becomes ready to accept listeners. Please keep in mind that amphora might be kept in an offline pool after this call.

get_diagnostics(amphora)[source]

Return ceilometer ready diagnostic data.

Parameters:amphora (object) – amphora object, need to use its id property
Returns:return a value list (amphora.id, status flag–’ge t_diagnostics’)

At this moment, we just build the basic structure for testing, will add more function along with the development, eventually, we want it run some expensive self tests to determine if the amphora and the lbs are healthy the idea is that those tests are triggered more infrequent than the health gathering.

get_info(amphora)[source]

Returns information about the amphora.

Parameters:amphora (object) – amphora object, need to use its id property
Returns:return a value list (amphora.id, status flag–’info’)

At this moment, we just build the basic structure for testing, will add more function along with the development, eventually, we want it to return information as: {“Rest Interface”: “1.0”, “Amphorae”: “1.0”, “packages”:{“ha proxy”:”1.5”}} some information might come from querying the amphora

post_network_plug(amphora, port)[source]

Called after amphora added to network

Parameters:

This method is optional to implement. After adding an amphora to a network, there may be steps necessary on the amphora to allow it to access said network. Ex: creating an interface on an amphora for a neutron network to utilize.

post_vip_plug(amphora, load_balancer, amphorae_network_config)[source]

Called after network driver has allocated and plugged the VIP

Parameters:
  • load_balancer (octavia.common.data_models.LoadBalancer) – A load balancer that just had its vip allocated and plugged in the network driver.
  • amphorae_network_config – A data model containing information about the subnets and ports that an amphorae owns.
Returns:

None

This is to do any additional work needed on the amphorae to plug the vip, such as bring up interfaces.

start(listener, vip, amphora=None)[source]

Start the listener on the vip.

Parameters:
  • listener (object) – listener object, need to use its protocol_port property
  • vip (object) – vip object, need to use its ip_address property
Returns:

return a value list (listener, vip, status flag–enable)

At this moment, we just build the basic structure for testing, will add more function along with the development.

stop(listener, vip)[source]

Stop the listener on the vip.

Parameters:
  • listener (object) – listener object, need to use its protocol_port property
  • vip (object) – vip object, need to use its ip_address property
Returns:

return a value list (listener, vip, status flag–suspend)

At this moment, we just build the basic structure for testing, will add more function along with the development.

update(listener, vip)[source]

Update the amphora with a new configuration.

Parameters:
  • listener (object) – listener object, need to use its protocol_port property
  • vip (object) – vip object, need to use its ip_address property
Returns:

None

At this moment, we just build the basic structure for testing, will add more function along with the development.

update_amphora_listeners(listeners, amphora_index, amphorae, timeout_dict=None)[source]

Update the amphora with a new configuration.

Parameters:
  • listeners – List of listeners to update.
  • amphora_id (string) – The ID of the amphora to update
  • timeout_dict – Dictionary of timeout values for calls to the amphora. May contain: req_conn_timeout, req_read_timeout, conn_max_retries, conn_retry_interval
Returns:

None

Updates the configuration of the listeners on a single amphora.

upload_cert_amp(amp, pem)[source]

Upload cert info to the amphora.

Parameters:
  • amphora (object) – amphora object, needs id and network ip(s)
  • pem_file (file object) – a certificate file

Upload cert file to amphora for Controller Communication.

Module contents

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.