In the previous chapter we learnt how to add networks using the API. It’s really simple, its basically a network and label placeholder. But what about viewing the networks we have after we’ve made some? This is pretty simple to confirm.
I have simplified the code a bit to make it easier to read.
#!/bin/sh USERNAME='mycloudusername' APIKEY='mycloudapikey' ACCOUNT_NUMBER=10010101 API_ENDPOINT="https://lon.networks.api.rackspacecloud.com/v2.0/$ACCOUNT_NUMBER" TOKEN=`curl https://identity.api.rackspacecloud.com/v2.0/tokens -X POST -d '{ "auth":{"RAX-KSKEY:apiKeyCredentials": { "username":"'$USERNAME'", "apiKey": "'$APIKEY'" }} }' -H "Content-type: application/json" | python -mjson.tool | grep -A5 token | grep id | cut -d '"' -f4` curl -i -X GET https://lon.networks.api.rackspacecloud.com/v2.0/networks -H "X-Auth-Token: $TOKEN"
Output
# ./list-networks.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5143 100 5028 100 115 4472 102 0:00:01 0:00:01 --:--:-- 4477 HTTP/1.1 200 OK Date: Fri, 12 Feb 2016 10:13:49 GMT Via: 1.1 Repose (Repose/6.2.0.2) Date: Fri, 12 Feb 2016 10:13:49 GMT Content-Type: application/json; charset=UTF-8 Content-Length: 336 Server: Jetty(9.2.z-SNAPSHOT) {"networks": [{"status": "ACTIVE", "subnets": [], "name": "Isolatednet", "admin_state_up": true, "tenant_id": "10010101", "shared": false, "id": "ae36972f-5cba-4327-8bff-15d8b05dc3ee"}], "networks_links": [{"href": "http://localhost:9696/v2.0/networks?marker=ae36972f-5cba-4327-8bff-15d8b05dc3ee&page_reverse=True", "rel": "previous"}]}
Pretty cool, but the format kind of sucks, I forgot to use python |-mjson.tool or jq to format the json output. Lets do that now by adding the line to the end of the curl -i line.
Now the output is nice:
{ "networks": [ { "admin_state_up": true, "id": "ae36972f-5cba-4327-8bff-15d8b05dc3ee", "name": "Isolatednet", "shared": false, "status": "ACTIVE", "subnets": [], "tenant_id": "10010101" } ], "networks_links": [ { "href": "http://localhost:9696/v2.0/networks?marker=ae36972f-5cba-4327-8bff-15d8b05dc3ee&page_reverse=True", "rel": "previous" } ] }
The complete code will look like;
#!/bin/sh USERNAME='mycloudusername' APIKEY='mycloudapikey' ACCOUNT_NUMBER=10010101 API_ENDPOINT="https://lon.networks.api.rackspacecloud.com/v2.0/$ACCOUNT_NUMBER" TOKEN=`curl https://identity.api.rackspacecloud.com/v2.0/tokens -X POST -d '{ "auth":{"RAX-KSKEY:apiKeyCredentials": { "username":"'$USERNAME'", "apiKey": "'$APIKEY'" }} }' -H "Content-type: application/json" | python -mjson.tool | grep -A5 token | grep id | cut -d '"' -f4` # with header no formatting #curl -i -X GET https://lon.networks.api.rackspacecloud.com/v2.0/networks -H "X-Auth-Token: $TOKEN" # without header with formatting curl -X GET https://lon.networks.api.rackspacecloud.com/v2.0/networks -H "X-Auth-Token: $TOKEN" | python -mjson.tool