Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rm-you/e1c2bf33aa570e310b1cdc7ebdd5dc2e to your computer and use it in GitHub Desktop.
Save rm-you/e1c2bf33aa570e310b1cdc7ebdd5dc2e to your computer and use it in GitHub Desktop.
octavia curl command help
MYTOKEN=$(openstack token issue | awk '/ id / { print $4 }')
MYPROJECT=$(openstack token issue | awk '/ project_id / { print $4 }')
DEFAULT_NETWORK=$(openstack subnet list | awk '/ private-subnet / {print $2}')
# Create a loadbalancer:
LB_ID=$(curl -X POST -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"name": "test_lb", "vip": {"subnet_id": "'$DEFAULT_NETWORK'"}, "project_id": "'$MYPROJECT'"}' http://localhost:9876/v1/loadbalancers | python -m json.tool | awk '/"id"/ { print $2 }' | cut -d '"' -f 2)
# Get loadbalancer (do this until pending create is no longer pending...):
curl -H "X-Auth-Token:$MYTOKEN" http://localhost:9876/v1/loadbalancers/${LB_ID} | python -m json.tool
# create listener:
LISTENER1_ID=$(curl -X POST -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"name": "test_listener", "protocol": "HTTP", "protocol_port": 80, "project_id": "'$MYPROJECT'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners | python -m json.tool | awk '/"id"/ { print $2 }' | cut -d '"' -f 2)
# get listener:
curl -H "X-Auth-Token:$MYTOKEN" http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER1_ID} | python -m json.tool
# get the above listener's pools:
curl -H "X-Auth-Token:$MYTOKEN" http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER1_ID}/pools | python -m json.tool
# create pool:
POOL1_ID=$(curl -X POST -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"name":"test_pool1", "protocol": "HTTP", "lb_algorithm": "ROUND_ROBIN", "project_id": "'$MYPROJECT'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER1_ID}/pools | python -m json.tool | awk '/"id"/ { print $2 }' | cut -d '"' -f 2)
# create pool in lb context:
POOL2_ID=$(curl -X POST -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"name":"test_pool2", "protocol": "HTTP", "lb_algorithm": "ROUND_ROBIN", "project_id": "'$MYPROJECT'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/pools | python -m json.tool | awk '/"id"/ { print $2 }' | cut -d '"' -f 2)
# Update listener to use different pool2 as default:
curl -X PUT -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"default_pool_id": "'$POOL2_ID'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER1_ID} | python -m json.tool
# Create second listener that also uses the above pool
LISTENER2_ID=$(curl -X POST -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"name": "test_listener2", "protocol": "HTTP", "protocol_port": 81, "default_pool_id": "'$POOL2_ID'", "project_id": "'$MYPROJECT'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners | python -m json.tool | awk '/"id"/ { print $2 }' | cut -d '"' -f 2)
# Delete that default pool...
curl -X DELETE -H "X-Auth-Token:$MYTOKEN" http://localhost:9876/v1/loadbalancers/${LB_ID}/pools/${POOL2_ID}
# Get a pool...
curl -H "X-Auth-Token:$MYTOKEN" http://localhost:9876/v1/loadbalancers/${LB_ID}/pools/${POOL1_ID} | python -m json.tool
# Create a member
curl -X POST -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"ip_address": "216.58.192.174", "protocol_port": 80, "project_id": "'$MYPROJECT'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER1_ID}/pools/${POOL1_ID}/members | python -m json.tool
# Update listener to use different pool1 as default:
curl -X PUT -H Content-type:application/json -H "X-Auth-Token:$MYTOKEN" -d '{"default_pool_id": "'$POOL1_ID'"}' http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER1_ID} | python -m json.tool
# Delete that second listener...
curl -X DELETE -H "X-Auth-Token:$MYTOKEN" http://localhost:9876/v1/loadbalancers/${LB_ID}/listeners/${LISTENER2_ID}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment