libcloud.loadbalancer.drivers.rackspace module
- class libcloud.loadbalancer.drivers.rackspace.RackspaceAccessRule(id=None, rule_type=None, address=None)[source]
Bases:
objectAn access rule allows or denies traffic to a Load Balancer based on the incoming IPs.
- Parameters:
id (
int) – Unique identifier to refer to this rule by.rule_type – RackspaceAccessRuleType.ALLOW or RackspaceAccessRuleType.DENY.
address (
str) – IP address or cidr (can be IPv4 or IPv6).
- class libcloud.loadbalancer.drivers.rackspace.RackspaceAccessRuleType[source]
Bases:
object- ALLOW = 0
- DENY = 1
- class libcloud.loadbalancer.drivers.rackspace.RackspaceConnection(*args, **kwargs)[source]
Bases:
RackspaceConnection,PollingConnectionInitialize user_id and key; set secure to an
intbased on passed value.- cache_busting = True
- get_poll_request_kwargs(response, context, request_kwargs)[source]
Return keyword arguments which are passed to the request() method when polling for the job status.
- Parameters:
response (
dict) – Response object returned by poll request.request_kwargs – Kwargs previously used to initiate the poll request.
:return
dictKeyword arguments
- has_completed(response)[source]
Return job completion status.
- Parameters:
response (
HTTPResponse) – Response object returned by poll request.
:return
boolTrue if the job has completed, False otherwise.
- poll_interval = 2
- request(action, params=None, data='', headers=None, method='GET')[source]
Request a given action.
Basically a wrapper around the connection object’s request that does some helpful pre-processing.
- Parameters:
action (
str) – A path. This can include arguments. If included, any extra parameters are appended to the existing ones.params (
dict) – Optional mapping of additional parameters to send. If None, leave as an emptydict.data (
unicode) – A body of data to send with the request.headers (
dict) – Extra headers to add to the request None, leave as an emptydict.method (
str) – An HTTP method such as “GET” or “POST”.raw (
bool) – True to perform a “raw” request aka only send the headers and use the rawResponseCls class. This is used with storage API when uploading a file.stream (
bool) – True to return an iterator in Response.iter_content and allow streaming of the response data (for downloading large files)retry_failed – True if failed requests should be retried. This argument can override module level constant and environment variable value on per-request basis.
- Returns:
An
Responseinstance.- Return type:
Responseinstance
- responseCls
alias of
RackspaceResponse
- class libcloud.loadbalancer.drivers.rackspace.RackspaceConnectionThrottle(min_connections, max_connections, max_connection_rate, rate_interval_seconds)[source]
Bases:
object- Parameters:
min_connections (
int) – Minimum number of connections per IP address before applying throttling.max_connections (
int) – Maximum number of connections per IP address. (Must be between 0 and 100000, 0 allows an unlimited number of connections.)max_connection_rate (
int) – Maximum number of connections allowed from a single IP address within the given rate_interval_seconds. (Must be between 0 and 100000, 0 allows an unlimited number of connections.)rate_interval_seconds (
int) – Interval at which the max_connection_rate is enforced. (Must be between 1 and 3600.)
- class libcloud.loadbalancer.drivers.rackspace.RackspaceHTTPHealthMonitor(type, delay, timeout, attempts_before_deactivation, path, body_regex, status_regex)[source]
Bases:
RackspaceHealthMonitorA HTTP health monitor adds extra features to a Rackspace health monitor.
- Parameters:
path (
str) – the HTTP path to monitor.body_regex (
str) – Regular expression used to evaluate the body of the HTTP response.status_regex (
str) – Regular expression used to evaluate the HTTP status code of the response.
- class libcloud.loadbalancer.drivers.rackspace.RackspaceHealthMonitor(type, delay, timeout, attempts_before_deactivation)[source]
Bases:
object- Parameters:
type (
str) – type of load balancer. currently CONNECT (connection monitoring), HTTP, HTTPS (connection and HTTP monitoring) are supported.delay (
int) – minimum seconds to wait before executing the health monitor. (Must be between 1 and 3600)timeout (
int) – maximum seconds to wait when establishing a connection before timing out. (Must be between 1 and 3600)attempts_before_deactivation (
int) – Number of monitor failures before removing a node from rotation. (Must be between 1 and 10)
- class libcloud.loadbalancer.drivers.rackspace.RackspaceLBDriver(key, secret=None, secure=True, host=None, port=None, region='ord', **kwargs)[source]
Bases:
Driver,OpenStackDriverMixin- 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
- CONDITION_LB_MEMBER_MAP = {0: 'ENABLED', 1: 'DISABLED', 2: 'DRAINING'}
- LB_MEMBER_CONDITION_MAP = {'DISABLED': 1, 'DRAINING': 2, 'ENABLED': 0}
- LB_STATE_MAP = {'ACTIVE': 0, 'BUILD': 1, 'DELETED': 4, 'ERROR': 3, 'PENDING_DELETE': 1, 'PENDING_UPDATE': 1}
- api_name = 'rackspace_lb'
- 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:
Member
- 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:
Trueif 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:
listofMember
- connectionCls
alias of
RackspaceConnection
- create_balancer(name, members, protocol='http', port=80, algorithm=1)[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 (
listofMember) – list of Members to attach to balanceralgorithm (
Algorithm) – Load balancing algorithm, defaults to ROUND_ROBIN.
- Return type:
LoadBalancer
- destroy_balancer(balancer)[source]
Destroy a load balancer
- Parameters:
balancer (
LoadBalancer) – LoadBalancer which should be used- Returns:
Trueif the destroy was successful, otherwiseFalse.- Return type:
bool
- ex_balancer_access_list(balancer)[source]
List the access list.
- Parameters:
balancer (
LoadBalancer) – Balancer which should be used- Return type:
listofRackspaceAccessRule
- ex_balancer_attach_members(balancer, members)[source]
Attaches a list of members to a load balancer.
- Parameters:
balancer (
LoadBalancer) – The Balancer to which members will be attached.members (
listofMember) – A list of Members to attach.
- Return type:
listofMember
- ex_balancer_detach_members(balancer, members)[source]
Detaches a list of members from a balancer (the API supports up to 10). This method blocks until the detach request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – The Balancer to detach members from.members (
listofMember) – A list of Members to detach.
- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_balancer_detach_members_no_poll(balancer, members)[source]
Detaches a list of members from a balancer (the API supports up to 10). This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – The Balancer to detach members from.members (
listofMember) – A list of Members to detach.
- Returns:
Returns whether the detach request was accepted.
- Return type:
bool
- ex_balancer_update_member(balancer, member, **kwargs)[source]
Updates a Member’s extra attributes for a Balancer. The attributes can include ‘weight’ or ‘condition’. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to update the member on.member (
Member) – Member which should be used**kwargs –
New attributes. Should contain either ‘weight’
or ‘condition’. ‘condition’ can be set to ‘ENABLED’, ‘DISABLED’. or ‘DRAINING’. ‘weight’ can be set to a positive integer between 1 and 100, with a higher weight indicating that the node will receive more traffic (assuming the Balancer is using a weighted algorithm). :type **kwargs:
dict- Returns:
Updated Member.
- Return type:
Member
- ex_balancer_update_member_no_poll(balancer, member, **kwargs)[source]
Updates a Member’s extra attributes for a Balancer. The attribute can include ‘weight’ or ‘condition’. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to update the member on.member (
Member) – Member which should be used**kwargs –
New attributes. Should contain either ‘weight’
or ‘condition’. ‘condition’ can be set to ‘ENABLED’, ‘DISABLED’. or ‘DRAINING’. ‘weight’ can be set to a positive integer between 1 and 100, with a higher weight indicating that the node will receive more traffic (assuming the Balancer is using a weighted algorithm). :type **kwargs:
dict- Returns:
Returns whether the update request was accepted.
- Return type:
bool
- ex_create_balancer(name, members, protocol='http', port=80, algorithm=1, vip='PUBLIC')[source]
Creates a new load balancer instance
- Parameters:
name (
str) – Name of the new load balancer (required)members (
listofMember) –listof:class:`Member`s to attach to balancerprotocol (
str) – Loadbalancer protocol, defaults to http.port (
str) – Port the load balancer should listen on, defaults to 80algorithm (
Algorithm) – Load balancing algorithm, defaults to LBAlgorithm.ROUND_ROBINvip (
str) – Virtual ip type of PUBLIC, SERVICENET, or ID of a virtual ip
- Return type:
LoadBalancer
- ex_create_balancer_access_rule(balancer, rule)[source]
Adds an access rule to a Balancer’s access list. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to create the access rule for.rule (
RackspaceAccessRule) – Access Rule to add to the balancer.
- Returns:
The created access rule.
- Return type:
- ex_create_balancer_access_rule_no_poll(balancer, rule)[source]
Adds an access rule to a Balancer’s access list. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to create the access rule for.rule (
RackspaceAccessRule) – Access Rule to add to the balancer.
- Returns:
Returns whether the create request was accepted.
- Return type:
bool
- ex_create_balancer_access_rules(balancer, rules)[source]
Adds a list of access rules to a Balancer’s access list. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to create the access rule for.rules (
listofRackspaceAccessRule) – List ofRackspaceAccessRuleto add to the balancer.
- Returns:
The created access rules.
- Return type:
- ex_create_balancer_access_rules_no_poll(balancer, rules)[source]
Adds a list of access rules to a Balancer’s access list. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to create the access rule for.rules (
listofRackspaceAccessRule) – List ofRackspaceAccessRuleto add to the balancer.
- Returns:
Returns whether the create request was accepted.
- Return type:
bool
- ex_destroy_balancer_access_rule(balancer, rule)[source]
Removes an access rule from a Balancer’s access list. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to remove the access rule from.rule (
RackspaceAccessRule) – Access Rule to remove from the balancer.
- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_destroy_balancer_access_rule_no_poll(balancer, rule)[source]
Removes an access rule from a Balancer’s access list. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to remove the access rule from.rule (
RackspaceAccessRule) – Access Rule to remove from the balancer.
- Returns:
Returns whether the destroy request was accepted.
- Return type:
bool
- ex_destroy_balancer_access_rules(balancer, rules)[source]
Removes a list of access rules from a Balancer’s access list. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to remove the access rules from.rules (
listofRackspaceAccessRule) – List ofRackspaceAccessRuleobjects to remove from the balancer.
- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_destroy_balancer_access_rules_no_poll(balancer, rules)[source]
Removes a list of access rules from a Balancer’s access list. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to remove the access rules from.rules (
listofRackspaceAccessRule) – List ofRackspaceAccessRuleobjects to remove from the balancer.
- Returns:
Returns whether the destroy request was accepted.
- Return type:
bool
- ex_destroy_balancers(balancers)[source]
Destroys a list of Balancers (the API supports up to 10).
- Parameters:
balancers (
listofLoadBalancer) – A list of Balancers to destroy.- Returns:
Returns whether the destroy request was accepted.
- Return type:
bool
- ex_disable_balancer_connection_logging(balancer)[source]
Disables connection logging for a Balancer. This method blocks until the enable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable connection logging on.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_disable_balancer_connection_logging_no_poll(balancer)[source]
Disables connection logging for a Balancer. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable connection logging on.- Returns:
Returns whether the disable request was accepted.
- Return type:
bool
- ex_disable_balancer_connection_throttle(balancer)[source]
Disables a Balancer’s connection throttle. This method blocks until the disable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable connection throttle on.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_disable_balancer_connection_throttle_no_poll(balancer)[source]
Disables a Balancer’s connection throttle. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable connection throttle on.- Returns:
Returns whether the disable request was accepted.
- Return type:
bool
- ex_disable_balancer_custom_error_page(balancer)[source]
Disables a Balancer’s custom error page, returning its error page to the Rackspace-provided default. This method blocks until the disable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable the custom error page for.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_disable_balancer_custom_error_page_no_poll(balancer)[source]
Disables a Balancer’s custom error page, returning its error page to the Rackspace-provided default. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable the custom error page for.- Returns:
Returns whether the disable request was accepted.
- Return type:
bool
- ex_disable_balancer_health_monitor(balancer)[source]
Disables a Balancer’s health monitor. This method blocks until the disable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable health monitor on.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_disable_balancer_health_monitor_no_poll(balancer)[source]
Disables a Balancer’s health monitor. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable health monitor on.- Returns:
Returns whether the disable request was accepted.
- Return type:
bool
- ex_disable_balancer_session_persistence(balancer)[source]
Disables session persistence for a Balancer. This method blocks until the disable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable session persistence on.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_disable_balancer_session_persistence_no_poll(balancer)[source]
Disables session persistence for a Balancer. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to disable session persistence for.- Returns:
Returns whether the disable request was accepted.
- Return type:
bool
- ex_enable_balancer_connection_logging(balancer)[source]
Enables connection logging for a Balancer. This method blocks until the enable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to enable connection logging on.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_enable_balancer_connection_logging_no_poll(balancer)[source]
Enables connection logging for a Balancer. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to enable connection logging on.- Returns:
Returns whether the enable request was accepted.
- Return type:
bool
- ex_enable_balancer_session_persistence(balancer)[source]
Enables session persistence for a Balancer by setting the persistence type to ‘HTTP_COOKIE’. This method blocks until the enable request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to enable session persistence on.- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_enable_balancer_session_persistence_no_poll(balancer)[source]
Enables session persistence for a Balancer by setting the persistence type to ‘HTTP_COOKIE’. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to enable session persistence on.- Returns:
Returns whether the enable request was accepted.
- Return type:
bool
- ex_get_balancer_error_page(balancer)[source]
List error page configured for the specified load balancer.
- Parameters:
balancer (
LoadBalancer) – Balancer which should be used- Return type:
str
- ex_list_algorithm_names()[source]
Lists algorithms supported by the API. Returned as strings because this list may change in the future.
- Return type:
listofstr
- ex_list_current_usage(balancer)[source]
Return current load balancer usage report.
- Parameters:
balancer (
LoadBalancer) – Balancer to remove the access rules from.- Returns:
Raw load balancer usage object.
- Return type:
dict
- ex_list_protocols_with_default_ports()[source]
List protocols with default ports.
- Return type:
listoftuple- Returns:
A list of protocols with default ports included.
- ex_update_balancer_connection_throttle(balancer, connection_throttle)[source]
Updates a Balancer’s connection throttle. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to update connection throttle on.connection_throttle (
RackspaceConnectionThrottle) – Connection Throttle for the balancer.
- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_update_balancer_connection_throttle_no_poll(balancer, connection_throttle)[source]
Sets a Balancer’s connection throttle. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to update connection throttle on.connection_throttle (
RackspaceConnectionThrottle) – Connection Throttle for the balancer.
- Returns:
Returns whether the update request was accepted.
- Return type:
bool
- ex_update_balancer_error_page(balancer, page_content)[source]
Updates a Balancer’s custom error page. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to update the custom error page for.page_content (
str) – HTML content for the custom error page.
- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_update_balancer_error_page_no_poll(balancer, page_content)[source]
Updates a Balancer’s custom error page. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to update the custom error page for.page_content (
str) – HTML content for the custom error page.
- Returns:
Returns whether the update request was accepted.
- Return type:
bool
- ex_update_balancer_health_monitor(balancer, health_monitor)[source]
Sets a Balancer’s health monitor. This method blocks until the update request has been processed and the balancer is in a RUNNING state again.
- Parameters:
balancer (
LoadBalancer) – Balancer to update.health_monitor (
RackspaceHealthMonitor) – Health Monitor for the balancer.
- Returns:
Updated Balancer.
- Return type:
LoadBalancer
- ex_update_balancer_health_monitor_no_poll(balancer, health_monitor)[source]
Sets a Balancer’s health monitor. This method returns immediately.
- Parameters:
balancer (
LoadBalancer) – Balancer to update health monitor on.health_monitor (
RackspaceHealthMonitor) – Health Monitor for the balancer.
- Returns:
Returns whether the update request was accepted.
- Return type:
bool
- ex_update_balancer_no_poll(balancer, **kwargs)[source]
Update balancer no poll.
@inherits:
Driver.update_balancer
- get_balancer(balancer_id)[source]
Return a
LoadBalancerobject.- Parameters:
balancer_id (
str) – id of a load balancer you want to fetch- Return type:
LoadBalancer
- list_balancers(ex_member_address=None, ex_status=None, ex_changes_since=None, ex_params={})[source]
@inherits:
Driver.list_balancers- Parameters:
ex_member_address (
str) – Optional IP address of the attachment member. If provided, only the load balancers which have this member attached will be returned.ex_status (
str) – Optional. Filter balancers by statusex_changes_since (
str) – Optional. List all load balancers that have changed since the specified date/timeex_params (
dict) – Optional. Set parameters to be submitted to the API in the query string
- name = 'Rackspace LB'
- 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:
LoadBalancer
- website = 'http://www.rackspace.com/'
- class libcloud.loadbalancer.drivers.rackspace.RackspaceResponse(response, connection)[source]
Bases:
JsonResponse- Parameters:
response (
httplib.HTTPResponse) – HTTP response object. (optional)connection (
Connection) – Parent connection object.