libcloud.loadbalancer.base module
- class libcloud.loadbalancer.base.Algorithm[source]
Bases:
object
Represents a load balancing algorithm.
- LEAST_CONNECTIONS = 2
- LEAST_CONNECTIONS_MEMBER = 7
- LEAST_CONNECTIONS_NODE = 8
- OBSERVED_MEMBER = 9
- OBSERVED_NODE = 10
- PERSISTENT_IP = 6
- PREDICTIVE_MEMBER = 11
- PREDICTIVE_NODE = 12
- RANDOM = 0
- ROUND_ROBIN = 1
- SHORTEST_RESPONSE = 5
- WEIGHTED_LEAST_CONNECTIONS = 4
- WEIGHTED_ROUND_ROBIN = 3
- class libcloud.loadbalancer.base.Driver(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]
Bases:
BaseDriver
A base Driver class to derive from
This class is always subclassed by a specific driver.
- Parameters:
key (
str
) – API key or username to be used (required)secret (
str
) – Secret password to be used (required)secure (
bool
) – Whether to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default.host (
str
) – Override hostname used for connections.port (
int
) – Override port used for connections.api_version (
str
) – Optional API version. Only used by drivers which support multiple API versions.region (
str
) – Optional driver region. Only used by drivers which support multiple regions.
- Return type:
None
- balancer_attach_compute_node(balancer, node)[source]
Attach a compute node as a member to the load balancer.
- Parameters:
balancer (
LoadBalancer
) – LoadBalancer which should be usednode (
Node
) – Node to join to the balancer
- Returns:
Member after joining the balancer.
- Return type:
- balancer_attach_member(balancer, member)[source]
Attach a member to balancer
- Parameters:
balancer (
LoadBalancer
) – LoadBalancer which should be usedmember (
Member
) – Member to join to the balancer
- Returns:
Member after joining the balancer.
- Return type:
- balancer_detach_member(balancer, member)[source]
Detach member from balancer
- Parameters:
balancer (
LoadBalancer
) – LoadBalancer which should be usedmember (
Member
) – Member which should be used
- Returns:
True
if member detach was successful, otherwiseFalse
.- Return type:
bool
- balancer_list_members(balancer)[source]
Return list of members attached to balancer
- Parameters:
balancer (
LoadBalancer
) – LoadBalancer which should be used- Return type:
list
ofMember
- connectionCls
alias of
ConnectionKey
- create_balancer(name, port, protocol, algorithm, members)[source]
Create a new load balancer instance
- Parameters:
name (
str
) – Name of the new load balancer (required)port (
str
) – Port the load balancer should listen on, defaults to 80protocol (
str
) – Loadbalancer protocol, defaults to http.members (
list
ofMember
) – list of Members to attach to balanceralgorithm (
Algorithm
) – Load balancing algorithm, defaults to ROUND_ROBIN.
- Return type:
- destroy_balancer(balancer)[source]
Destroy a load balancer
- Parameters:
balancer (
LoadBalancer
) – LoadBalancer which should be used- Returns:
True
if the destroy was successful, otherwiseFalse
.- Return type:
bool
- get_balancer(balancer_id)[source]
Return a
LoadBalancer
object.- Parameters:
balancer_id (
str
) – id of a load balancer you want to fetch- Return type:
- list_balancers()[source]
List all loadbalancers
- Return type:
list
ofLoadBalancer
- list_supported_algorithms()[source]
Return algorithms supported by this driver.
- Return type:
list
ofstr
- name = None
- update_balancer(balancer, **kwargs)[source]
Sets the name, algorithm, protocol, or port on a load balancer.
- Parameters:
balancer (
LoadBalancer
) – LoadBalancer which should be usedname (
str
) – New load balancer namealgorithm (
Algorithm
) – New load balancer algorithmprotocol (
str
) – New load balancer protocolport (
int
) – New load balancer port
- Return type:
- website = None
- class libcloud.loadbalancer.base.LoadBalancer(id, name, state, ip, port, driver, extra=None)[source]
Bases:
object
Provide a common interface for handling Load Balancers.
- Parameters:
id (
str
) – Load balancer ID.name (
str
) – Load balancer name.state (
libcloud.loadbalancer.types.State
) – State this loadbalancer is in.ip (
str
) – IP address of this loadbalancer.port (
int
) – Port of this loadbalancer.driver (
Driver
) – Driver this loadbalancer belongs to.extra (
dict
) – Provider specific attributes. (optional)
- class libcloud.loadbalancer.base.Member(id, ip, port, balancer=None, extra=None)[source]
Bases:
object
Represents a load balancer member.
- Parameters:
id (
str
) – Member ID.ip – IP address of this member.
ip –
str
port – Port of this member
port –
str
balancer – Balancer this member is attached to. (optional)
balancer –
LoadBalancer
extra (
dict
) – Provider specific attributes.