IdMixin
[source]¶Bases: object
Id mixin, add to subclasses that have an id.
id
= Column(None, String(length=36), table=None, primary_key=True, nullable=False, default=ColumnDefault(<function generate_uuid>))¶LookupTableMixin
[source]¶Bases: object
Mixin to add to classes that are lookup tables.
description
= Column(None, String(length=255), table=None)¶name
= Column(None, String(length=255), table=None, primary_key=True, nullable=False)¶NameMixin
[source]¶Bases: object
Name mixin to add to classes which need a name.
name
= Column(None, String(length=255), table=None)¶OctaviaBase
[source]¶Bases: oslo_db.sqlalchemy.models.ModelBase
to_data_model
(_graph_nodes=None)[source]¶Converts to a data model graph.
In order to make the resulting data model graph usable no matter how many internal references are followed, we generate a complete graph of OctaviaBase nodes connected to the object passed to this method.
Parameters: | _graph_nodes – Used only for internal recursion of this method. Should not be called from the outside. Contains a dictionary of all OctaviaBase type objects in the generated graph |
---|
ProjectMixin
[source]¶Bases: object
Tenant mixin, add to subclasses that have a project.
project_id
= Column(None, String(length=36), table=None)¶Algorithm
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶Amphora
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, oslo_db.sqlalchemy.models.TimestampMixin
cached_zone
¶cert_busy
¶cert_expiration
¶compute_flavor
¶compute_id
¶created_at
¶ha_ip
¶ha_port_id
¶id
¶image_id
¶lb_network_ip
¶load_balancer
¶load_balancer_id
¶role
¶status
¶updated_at
¶vrrp_id
¶vrrp_interface
¶vrrp_ip
¶vrrp_port_id
¶vrrp_priority
¶AmphoraBuildRequest
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
amphora_id
¶created_time
¶priority
¶status
¶AmphoraBuildSlots
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
id
¶slots_used
¶AmphoraHealth
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
amphora_id
¶busy
¶last_update
¶AmphoraRoles
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶Flavor
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.NameMixin
description
¶enabled
¶flavor_profile_id
¶id
¶name
¶FlavorProfile
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.NameMixin
flavor_data
¶id
¶name
¶provider_name
¶HealthMonitor
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.NameMixin
, octavia.db.base_models.TagMixin
created_at
¶delay
¶domain_name
¶enabled
¶expected_codes
¶fall_threshold
¶http_method
¶http_version
¶id
¶name
¶operating_status
¶pool
¶pool_id
¶project_id
¶provisioning_status
¶rise_threshold
¶timeout
¶type
¶updated_at
¶url_path
¶HealthMonitorType
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶L7Policy
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.NameMixin
, octavia.db.base_models.TagMixin
action
¶created_at
¶description
¶enabled
¶id
¶l7rules
¶listener
¶listener_id
¶name
¶operating_status
¶position
¶project_id
¶provisioning_status
¶redirect_http_code
¶redirect_pool
¶redirect_pool_id
¶redirect_prefix
¶redirect_url
¶updated_at
¶L7PolicyAction
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶L7Rule
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.TagMixin
compare_type
¶created_at
¶enabled
¶id
¶invert
¶key
¶l7policy
¶l7policy_id
¶operating_status
¶project_id
¶provisioning_status
¶type
¶updated_at
¶value
¶L7RuleCompareType
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶L7RuleType
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶LBTopology
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶Listener
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.NameMixin
, octavia.db.base_models.TagMixin
client_authentication
¶client_ca_tls_certificate_id
¶client_crl_container_id
¶connection_limit
¶created_at
¶default_pool
¶default_pool_id
¶description
¶enabled
¶id
¶insert_headers
¶l7policies
¶load_balancer
¶load_balancer_id
¶name
¶operating_status
¶peer_port
¶pools
¶project_id
¶protocol
¶protocol_port
¶provisioning_status
¶sni_containers
¶timeout_client_data
¶timeout_member_connect
¶timeout_member_data
¶timeout_tcp_inspect
¶tls_certificate_id
¶updated_at
¶ListenerStatistics
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
active_connections
¶amphora_id
¶bytes_in
¶bytes_out
¶listener_id
¶request_errors
¶total_connections
¶LoadBalancer
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.NameMixin
, octavia.db.base_models.TagMixin
amphorae
¶created_at
¶description
¶enabled
¶flavor_id
¶id
¶listeners
¶name
¶operating_status
¶pools
¶project_id
¶provider
¶provisioning_status
¶server_group_id
¶topology
¶updated_at
¶vip
¶vrrp_group
¶Member
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.NameMixin
, octavia.db.base_models.TagMixin
backup
¶created_at
¶enabled
¶id
¶ip_address
¶monitor_address
¶monitor_port
¶name
¶operating_status
¶pool
¶pool_id
¶project_id
¶protocol_port
¶provisioning_status
¶subnet_id
¶updated_at
¶weight
¶OperatingStatus
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶Pool
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.IdMixin
, octavia.db.base_models.ProjectMixin
, oslo_db.sqlalchemy.models.TimestampMixin
, octavia.db.base_models.NameMixin
, octavia.db.base_models.TagMixin
ca_tls_certificate_id
¶created_at
¶crl_container_id
¶description
¶enabled
¶health_monitor
¶id
¶l7policies
¶lb_algorithm
¶listeners
¶load_balancer
¶load_balancer_id
¶members
¶name
¶operating_status
¶project_id
¶protocol
¶provisioning_status
¶session_persistence
¶tls_certificate_id
¶tls_enabled
¶updated_at
¶Protocol
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶ProvisioningStatus
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶Quotas
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
health_monitor
¶in_use_health_monitor
¶in_use_listener
¶in_use_load_balancer
¶in_use_member
¶in_use_pool
¶listener
¶load_balancer
¶member
¶pool
¶project_id
¶SNI
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
listener
¶listener_id
¶position
¶tls_container_id
¶SessionPersistence
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
persistence_granularity
¶persistence_timeout
¶pool
¶pool_id
¶type
¶SessionPersistenceType
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶VRRPAuthMethod
(**kwargs)[source]¶Bases: sqlalchemy.ext.declarative.api.Base
, octavia.db.base_models.LookupTableMixin
description
¶name
¶Defines interface for DB access that Resource or Octavia Controllers may reference
AmphoraBuildReqRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
add_to_build_queue
(session, amphora_id=None, priority=None)[source]¶Adds the build request to the table.
get_highest_priority_build_req
(session)[source]¶Fetches build request with highest priority and least created_time.
priority 20 = failover (highest) priority 40 = create_loadbalancer priority 60 = sparespool (least) :param session: A Sql Alchemy database session. :returns amphora_id corresponding to highest priority and least created time in ‘WAITING’ status.
model_class
¶AmphoraBuildSlotsRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_used_build_slots_count
(session)[source]¶Gets the number of build slots in use.
Returns: | Number of current build slots. |
---|
model_class
¶alias of octavia.db.models.AmphoraBuildSlots
AmphoraHealthRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
check_amphora_health_expired
(session, amphora_id, exp_age=None)[source]¶check if a specific amphora is expired in the amphora_health table
Parameters: |
|
---|---|
Returns: | boolean |
get_stale_amphora
(session)[source]¶Retrieves a stale amphora from the health manager database.
Parameters: | session – A Sql Alchemy database session. |
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.AmphoraHealth
AmphoraRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
allocate_and_associate
(session, load_balancer_id)[source]¶Allocate an amphora for a load balancer.
For v0.5 this is simple, find a free amp and associate the lb. In the future this needs to be enhanced.
Parameters: |
|
---|---|
Returns: | The amphora ID for the load balancer or None |
associate
(session, load_balancer_id, amphora_id)[source]¶Associates an amphora with a load balancer.
Parameters: |
|
---|
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of amphorae for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API amphora list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
get_cert_expiring_amphora
(session)[source]¶Retrieves an amphora whose cert is close to expiring..
Parameters: | session – A Sql Alchemy database session. |
---|---|
Returns: | one amphora with expiring certificate |
get_lb_for_amphora
(session, amphora_id)[source]¶Get all of the load balancers on an amphora.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
get_lb_for_health_update
(session, amphora_id)[source]¶This method is for the health manager status update process.
This is a time sensitive query that occurs often. It is an explicit query as the ORM produces a poorly optimized query.
Use extreme caution making any changes to this query as it can impact the scalability of the health manager. All changes should be analyzed using SQL “EXPLAIN” to make sure only indexes are being used. Changes should also be evaluated using the stressHM tool.
Parameters: |
|
---|---|
Returns: | A dictionary containing the required load balancer details. |
get_spare_amphora_count
(session)[source]¶Get the count of the spare amphora.
Returns: | Number of current spare amphora. |
---|
model_class
¶alias of octavia.db.models.Amphora
BaseRepository
[source]¶Bases: object
count
(session, **filters)[source]¶Retrieves a count of entities from the database.
Parameters: |
|
---|---|
Returns: | int |
create
(session, **model_kwargs)[source]¶Base create method for a database entity.
Parameters: |
|
---|---|
Returns: | octavia.common.data_model |
delete
(session, **filters)[source]¶Deletes an entity from the database.
Parameters: |
|
---|---|
Returns: | None |
Raises: | sqlalchemy.orm.exc.NoResultFound |
exists
(session, id)[source]¶Determines whether an entity exists in the database by its id.
Parameters: |
|
---|---|
Returns: | octavia.common.data_model |
get
(session, **filters)[source]¶Retrieves an entity from the database.
Parameters: |
|
---|---|
Returns: | octavia.common.data_model |
get_all
(session, pagination_helper=None, query_options=None, **filters)[source]¶Retrieves a list of entities from the database.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
get_all_deleted_expiring
(session, exp_age)[source]¶Get all previously deleted resources that are now expiring.
Parameters: |
|
---|---|
Returns: | A list of resource IDs |
model_class
= None¶FlavorProfileRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.FlavorProfile
FlavorRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.Flavor
HealthMonitorRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of health monitors for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API health monitor list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.HealthMonitor
L7PolicyRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
create
(session, **model_kwargs)[source]¶Base create method for a database entity.
Parameters: |
|
---|---|
Returns: | octavia.common.data_model |
delete
(session, id, **filters)[source]¶Deletes an entity from the database.
Parameters: |
|
---|---|
Returns: | None |
Raises: | sqlalchemy.orm.exc.NoResultFound |
get_all
(session, pagination_helper=None, **filters)[source]¶Retrieves a list of entities from the database.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.L7Policy
L7RuleRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
create
(session, **model_kwargs)[source]¶Base create method for a database entity.
Parameters: |
|
---|---|
Returns: | octavia.common.data_model |
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of L7 Rules for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API L7 Rule list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.L7Rule
ListenerRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of listeners for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API listener list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.Listener
ListenerStatisticsRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.ListenerStatistics
LoadBalancerRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of load balancers for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API load balancer list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.LoadBalancer
set_status_for_failover
(session, id, status, raise_exception=False)[source]¶Tests and sets a load balancer provisioning status.
Puts a lock on the load balancer table to check the status of a load balancer. If the status is ACTIVE or ERROR then the status of the load balancer is updated and the method returns True. If the status is not ACTIVE, then nothing is done and False is returned.
Parameters: |
|
---|---|
Returns: | bool |
test_and_set_provisioning_status
(session, id, status, raise_exception=False)[source]¶Tests and sets a load balancer and provisioning status.
Puts a lock on the load balancer table to check the status of a load balancer. If the status is ACTIVE then the status of the load balancer is updated and the method returns True. If the status is not ACTIVE, then nothing is done and False is returned.
Parameters: |
|
---|---|
Returns: | bool |
MemberRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of members for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API member list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.Member
PoolRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_all_API_list
(session, pagination_helper=None, **filters)[source]¶Get a list of pools for the API list call.
This get_all returns a data set that is only one level deep in the data graph. This is an optimized query for the API pool list method.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
¶alias of octavia.db.models.Pool
QuotasRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
delete
(session, project_id)[source]¶Deletes an entity from the database.
Parameters: |
|
---|---|
Returns: | None |
Raises: | sqlalchemy.orm.exc.NoResultFound |
model_class
¶alias of octavia.db.models.Quotas
Repositories
[source]¶Bases: object
check_quota_met
(session, lock_session, _class, project_id, count=1)[source]¶Checks and updates object quotas.
This method makes sure the project has available quota for the resource and updates the quota to reflect the new ussage.
Parameters: |
|
---|---|
Returns: | True if quota is met, False if quota was available |
create_load_balancer_and_vip
(session, lb_dict, vip_dict)[source]¶Inserts load balancer and vip entities into the database.
Inserts load balancer and vip entities into the database in one transaction and returns the data model of the load balancer.
Parameters: |
|
---|---|
Returns: | octavia.common.data_models.LoadBalancer |
create_pool_on_load_balancer
(session, pool_dict, listener_id=None)[source]¶Inserts a pool and session persistence entity into the database.
Parameters: |
|
---|---|
Returns: | octavia.common.data_models.Pool |
decrement_quota
(lock_session, _class, project_id, quantity=1)[source]¶Decrements the object quota for a project
Parameters: |
|
---|---|
Returns: | None |
get_amphora_stats
(session, amp_id)[source]¶Gets the statistics for all listeners on an amphora.
Parameters: |
|
---|---|
Returns: | An amphora stats dictionary |
test_and_set_lb_and_listeners_prov_status
(session, lb_id, lb_prov_status, listener_prov_status, listener_ids=None, pool_id=None, l7policy_id=None)[source]¶Tests and sets a load balancer and listener provisioning status.
Puts a lock on the load balancer table to check the status of a load balancer. If the status is ACTIVE then the status of the load balancer and listener is updated and the method returns True. If the status is not ACTIVE, then nothing is done and False is returned.
Parameters: |
|
---|---|
Returns: | bool |
SNIRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.SNI
SessionPersistenceRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.SessionPersistence
SparesPoolRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
get_for_update
(lock_session)[source]¶Queries and locks the SparesPool record.
This call will query for the SparesPool table record and lock it so that other processes cannot read or write it. :returns: expected_spares_count, updated_at
model_class
¶alias of octavia.db.models.SparesPool
VRRPGroupRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.VRRPGroup
VipRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
model_class
¶alias of octavia.db.models.Vip
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.