LoadBalancer Examples

Create a Load Balancer with two members and wait for it to become ready

import time
from pprint import pprint

from libcloud.loadbalancer.base import Member, Algorithm
from libcloud.loadbalancer.types import State, Provider
from libcloud.loadbalancer.providers import get_driver

driver = get_driver(Provider.RACKSPACE_US)("username", "api key")

name = "test-lb"
members = (Member(None, "192.168.86.1", 8080), Member(None, "192.168.86.2", 8080))

print("Creating load balancer")
new_balancer = driver.create_balancer(
    name=name,
    algorithm=Algorithm.ROUND_ROBIN,
    port=80,
    protocol="http",
    members=members,
)

print("Waiting for load balancer to become ready...")
while True:
    balancer = driver.get_balancer(balancer_id=new_balancer.id)

    if balancer.state == State.RUNNING:
        break

    print("Load balancer not ready yet, sleeping 20 seconds...")
    time.sleep(20)

print("Load balancer is ready")
pprint(balancer)

# fetch list of members
members = balancer.list_members()
pprint(members)