octavia.controller.worker.v2.flows package

Submodules

octavia.controller.worker.v2.flows.amphora_flows module

class AmphoraFlows[source]

Bases: object

cert_rotate_amphora_flow()[source]

Implement rotation for amphora’s cert.

  1. Create a new certificate

  2. Upload the cert to amphora

  3. update the newly created certificate info to amphora

  4. update the cert_busy flag to be false after rotation

Returns:

The flow for updating an amphora

get_amphora_for_lb_failover_subflow(prefix, role='STANDALONE', failed_amp_vrrp_port_id=None, is_vrrp_ipv6=False, flavor_dict=None, timeout_dict=None)[source]

Creates a new amphora that will be used in a failover flow.

Requires:

loadbalancer_id, flavor, vip, vip_sg_id, loadbalancer

Provides:

amphora_id, amphora

Parameters:
  • prefix – The flow name prefix to use on the flow and tasks.

  • role – The role this amphora will have in the topology.

  • failed_amp_vrrp_port_id – The base port ID of the failed amp.

  • is_vrrp_ipv6 – True if the base port IP is IPv6.

Returns:

A Taskflow sub-flow that will create the amphora.

get_amphora_for_lb_subflow(prefix, role)[source]

Create a new amphora for lb.

get_create_amphora_flow()[source]

Creates a flow to create an amphora.

Returns:

The flow for creating the amphora

get_delete_amphora_flow(amphora, retry_attempts=5, retry_interval=5)[source]

Creates a subflow to delete an amphora and it’s port.

This flow is idempotent and safe to retry.

Parameters:
  • amphora – An amphora dict object.

  • retry_attempts – The number of times the flow is retried.

  • retry_interval – The time to wait, in seconds, between retries.

Returns:

The subflow for deleting the amphora.

Raises:

AmphoraNotFound – The referenced Amphora was not found.

get_failover_amphora_flow(failed_amphora, lb_amp_count, flavor_dict=None)[source]

Get a Taskflow flow to failover an amphora.

  1. Build a replacement amphora.

  2. Delete the old amphora.

  3. Update the amphorae listener configurations.

  4. Update the VRRP configurations if needed.

Parameters:
  • failed_amphora – The amphora dict to failover.

  • lb_amp_count – The number of amphora on this load balancer.

  • flavor_dict – The load balancer flavor dictionary.

Returns:

The flow that will provide the failover.

get_vrrp_subflow(prefix, timeout_dict=None, create_vrrp_group=True, get_amphorae_status=True, flavor_dict=None)[source]
update_amphora_config_flow()[source]

Creates a flow to update the amphora agent configuration.

Returns:

The flow for updating an amphora

octavia.controller.worker.v2.flows.flow_utils module

cert_rotate_amphora_flow()[source]
get_batch_update_members_flow(old_members, new_members, updated_members)[source]
get_cascade_delete_load_balancer_flow(lb, listeners=(), pools=())[source]
get_create_all_listeners_flow(flavor_dict=None)[source]
get_create_amphora_flow()[source]
get_create_health_monitor_flow()[source]
get_create_l7policy_flow()[source]
get_create_l7rule_flow()[source]
get_create_listener_flow(flavor_dict=None)[source]
get_create_load_balancer_flow(topology, listeners=None, flavor_dict=None)[source]
get_create_member_flow()[source]
get_create_pool_flow()[source]
get_delete_amphora_flow(amphora, retry_attempts=None, retry_interval=None)[source]
get_delete_health_monitor_flow()[source]
get_delete_l7policy_flow()[source]
get_delete_l7rule_flow()[source]
get_delete_listener_flow(flavor_dict=None)[source]
get_delete_load_balancer_flow(lb)[source]
get_delete_member_flow()[source]
get_delete_pool_flow()[source]
get_failover_LB_flow(amps, lb)[source]
get_failover_amphora_flow(amphora_dict, lb_amp_count, flavor_dict=None)[source]
get_listeners_on_lb(db_lb, for_delete=False)[source]

Get a list of the listeners on a load balancer.

Parameters:
  • db_lb – A load balancer database model object.

  • for_delete – Skip errors on tls certs loading.

Returns:

A list of provider dict format listeners.

get_pools_on_lb(db_lb, for_delete=False)[source]

Get a list of the pools on a load balancer.

Parameters:
  • db_lb – A load balancer database model object.

  • for_delete – Skip errors on tls certs loading.

Returns:

A list of provider dict format pools.

get_update_health_monitor_flow()[source]
get_update_l7policy_flow()[source]
get_update_l7rule_flow()[source]
get_update_listener_flow(flavor_dict=None)[source]
get_update_load_balancer_flow()[source]
get_update_member_flow()[source]
get_update_pool_flow()[source]
update_amphora_config_flow()[source]

octavia.controller.worker.v2.flows.health_monitor_flows module

class HealthMonitorFlows[source]

Bases: object

get_create_health_monitor_flow()[source]

Create a flow to create a health monitor

Returns:

The flow for creating a health monitor

get_delete_health_monitor_flow()[source]

Create a flow to delete a health monitor

Returns:

The flow for deleting a health monitor

get_update_health_monitor_flow()[source]

Create a flow to update a health monitor

Returns:

The flow for updating a health monitor

octavia.controller.worker.v2.flows.l7policy_flows module

class L7PolicyFlows[source]

Bases: object

get_create_l7policy_flow()[source]

Create a flow to create an L7 policy

Returns:

The flow for creating an L7 policy

get_delete_l7policy_flow()[source]

Create a flow to delete an L7 policy

Returns:

The flow for deleting an L7 policy

get_update_l7policy_flow()[source]

Create a flow to update an L7 policy

Returns:

The flow for updating an L7 policy

octavia.controller.worker.v2.flows.l7rule_flows module

class L7RuleFlows[source]

Bases: object

get_create_l7rule_flow()[source]

Create a flow to create an L7 rule

Returns:

The flow for creating an L7 rule

get_delete_l7rule_flow()[source]

Create a flow to delete an L7 rule

Returns:

The flow for deleting an L7 rule

get_update_l7rule_flow()[source]

Create a flow to update an L7 rule

Returns:

The flow for updating an L7 rule

octavia.controller.worker.v2.flows.listener_flows module

class ListenerFlows[source]

Bases: object

get_create_all_listeners_flow(flavor_dict=None)[source]

Create a flow to create all listeners

Returns:

The flow for creating all listeners

get_create_listener_flow(flavor_dict=None)[source]

Create a flow to create a listener

Returns:

The flow for creating a listener

get_delete_listener_flow(flavor_dict=None)[source]

Create a flow to delete a listener

Returns:

The flow for deleting a listener

get_delete_listener_internal_flow(listener, flavor_dict=None)[source]

Create a flow to delete a listener and l7policies internally

(will skip deletion on the amp and marking LB active)

Returns:

The flow for deleting a listener

get_update_listener_flow(flavor_dict=None)[source]

Create a flow to update a listener

Returns:

The flow for updating a listener

octavia.controller.worker.v2.flows.load_balancer_flows module

class LoadBalancerFlows[source]

Bases: object

get_cascade_delete_load_balancer_flow(lb, listeners, pools)[source]

Creates a flow to delete a load balancer.

Returns:

The flow for deleting a load balancer

get_create_load_balancer_flow(topology, listeners=None, flavor_dict=None)[source]

Creates a conditional graph flow that allocates a loadbalancer.

Raises:

InvalidTopology – Invalid topology specified

Returns:

The graph flow for creating a loadbalancer.

get_delete_load_balancer_flow(lb)[source]

Creates a flow to delete a load balancer.

Returns:

The flow for deleting a load balancer

get_failover_LB_flow(amps, lb)[source]

Failover a load balancer.

  1. Validate the VIP port is correct and present.

  2. Build a replacement amphora.

  3. Delete the failed amphora.

  4. Configure the replacement amphora listeners.

  5. Configure VRRP for the listeners.

  6. Build the second replacement amphora.

  7. Delete the second failed amphora.

  8. Delete any extraneous amphora.

  9. Configure the listeners on the new amphorae.

  10. Configure the VRRP on the new amphorae.

  11. Reload the listener configurations to pick up VRRP changes.

  12. Mark the load balancer back to ACTIVE.

Returns:

The flow that will provide the failover.

get_post_lb_amp_association_flow(prefix, topology, flavor_dict=None)[source]

Reload the loadbalancer and create networking subflows for

created/allocated amphorae. :return: Post amphorae association subflow

get_update_load_balancer_flow()[source]

Creates a flow to update a load balancer.

Returns:

The flow for update a load balancer

octavia.controller.worker.v2.flows.member_flows module

class MemberFlows[source]

Bases: object

get_batch_update_members_flow(old_members, new_members, updated_members)[source]

Create a flow to batch update members

Returns:

The flow for batch updating members

get_create_member_flow()[source]

Create a flow to create a member

Returns:

The flow for creating a member

get_delete_member_flow()[source]

Create a flow to delete a member

Returns:

The flow for deleting a member

get_update_member_flow()[source]

Create a flow to update a member

Returns:

The flow for updating a member

octavia.controller.worker.v2.flows.pool_flows module

class PoolFlows[source]

Bases: object

get_create_pool_flow()[source]

Create a flow to create a pool

Returns:

The flow for creating a pool

get_delete_pool_flow()[source]

Create a flow to delete a pool

Returns:

The flow for deleting a pool

get_delete_pool_flow_internal(pool_id)[source]

Create a flow to delete a pool, etc.

Returns:

The flow for deleting a pool

get_update_pool_flow()[source]

Create a flow to update a pool

Returns:

The flow for updating a pool

Module contents