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 |
---|
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_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
¶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
created_at
¶delay
¶enabled
¶expected_codes
¶fall_threshold
¶http_method
¶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
action
¶created_at
¶description
¶enabled
¶id
¶l7rules
¶listener
¶listener_id
¶name
¶operating_status
¶position
¶project_id
¶provisioning_status
¶redirect_pool
¶redirect_pool_id
¶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
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
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
amphorae
¶created_at
¶description
¶enabled
¶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
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
created_at
¶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
¶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_deleted_expiring_amphora
(session, exp_age=None)[source]¶Get all previously deleted amphora that are now expiring.
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_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, **filters)[source]¶Retrieves a list of entities from the database.
Parameters: |
|
---|---|
Returns: | [octavia.common.data_model] |
model_class
= None¶HealthMonitorRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
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 |
model_class
¶alias of octavia.db.models.L7Rule
ListenerRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
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
check_load_balancer_expired
(session, lb_id, exp_age=None)[source]¶Checks if a given load balancer is expired.
Parameters: |
|
---|---|
Returns: | boolean |
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
model_class
¶alias of octavia.db.models.Member
PoolRepository
[source]¶Bases: octavia.db.repositories.BaseRepository
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 |
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
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.