Custom Search

Saturday, November 22, 2014

OpenStack API Examples using curl

1)
*Export keystone credentials

export OS_USERNAME=admin
export OS_PASSWORD=secret123
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://127.0.0.1:35357/v2.0


Run CLI commands with "--debug" option and copy the curl command from the output and execute it without using python client.





2)
Get Token


a)
*CLI command
#keystone --debug token-get

b)

*curl command
#curl -i -X POST http://127.0.0.1:35357/v2.0/tokens -H "Content-Type: application/json" -H "User-Agent: python-keystoneclient" -d '{"auth": {"tenantName": "demo", "passwordCredentials": {"username": "admin", "password": "secret123"}}}'

3)
Save token into a shell script variable like

TOKEN=blablabla

4)
List all images


a)
CLI command
#glance --debug image-list

b)
*curl command
*Note: Use double quotes for -H "X-Auth-Token:$TOKEN"

#curl -i -X GET -H "X-Auth-Token:$TOKEN" -H 'Content-Type: application/json' -H 'User-Agent: python-glanceclient' http://127.0.0.1:9292/v1/images/detail?sort_key=name&sort_dir=asc&limit=20

*Replace the option "-i" with "-s" and filter with "python -mjson.tool" to get readable formatted json output
#curl -s -X GET -H "X-Auth-Token:$TOKEN" -H 'Content-Type: application/json' -H 'User-Agent: python-glanceclient' http://127.0.0.1:9292/v1/images/detail?sort_key=name&sort_dir=asc&limit=20 | python -mjson.tool

5)
List all Virtual Machines


a)
CLI command
#nova --debug list

b)
*curl command
#curl -i 'http://127.0.0.1:8774/v1.1/02ef892087a640bcb66bd42a3ceccc79/servers/detail' -X GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token:$TOKEN"

*Replace the option "-i" with "-s" and filter with "python -mjson.tool" to get readable formatted json output
#curl -s 'http://127.0.0.1:8774/v1.1/02ef892087a640bcb66bd42a3ceccc79/servers/detail' -X GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token:$TOKEN" | python -mjson.tool

6)
List all networks


a)
CLI command
#neutron --debug net-list

b)

*curl command
#curl -i http://127.0.0.1:9696/v2.0/networks.json -X GET -H "X-Auth-Token:$TOKEN" -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient"

*Replace the option "-i" with "-s" and filter with "python -mjson.tool" to get readable formatted json output
#curl -s http://127.0.0.1:9696/v2.0/networks.json -X GET -H "X-Auth-Token:$TOKEN" -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient" | python -mjson.tool

7)
List all volumes


a)
CLI command
#cinder --debug list

b)
*curl command
#curl -i http://127.0.0.1:8776/v1/02ef892087a640bcb66bd42a3ceccc79/volumes/detail -X GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-cinderclient" -H "Accept: application/json" -H "X-Auth-Token:$TOKEN"

*Replace the option "-i" with "-s" and filter with "python -mjson.tool" to get readable formatted json output
#curl -s http://127.0.0.1:8776/v1/02ef892087a640bcb66bd42a3ceccc79/volumes/detail -X GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-cinderclient" -H "Accept: application/json" -H "X-Auth-Token:$TOKEN" | python -mjson.tool



1 comment: