| 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) |