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)