- Using curl with open stack
- [Getting the total count of containers/objects] (http://docs.openstack.org/api/openstack-object-storage/1.0/content/determining-storage-useage.html)
- Using curl with object-store
Before you can interface with the object-store, you must first authenticate against the keystone. Authenticating against the keystone will provide you with two useful things. 1. It will provide you with an authentication token that will likely be valid for a few hours, and is required for interaction with any other endpoint. 2. It will provide you with the public endpoint (url) for the object store that is appropriate for your project.
The following command will authenticate against the keystone, providing you with a token:
Request:
curl -d '{"auth":{"passwordCredentials":{"username": "example@my.jcu.edu.au", "password": "ExampLEjYmFjNmM5ZGZj"}}}' -H "Content-type: application/json" https://keystone.rc.nectar.org.au:5000/v2.0/tokens
Field | Description | Example |
---|---|---|
username | this should be your nectar username (probably an email address) | example@my.jcu.edu.au |
password | this is your nectar API password (a generated API key) | ExampLEjYmFjNmM5ZGZj |
Response:
{
"access":{
"token":{
"issued_at":"2014-02-04T03:15:15.752325",
"expires":"2014-02-04T09:15:15Z",
"id":"EXAMPLEsssssssssssssaaaaaaaaaaMCAQExCTAHBgUrDgMCGjCCAW8GCSqGSIb3DQEHAaCCAWAEggFceyJhY2Nlc3MDoPB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNC0wMi0wNFQwMzoxNToxNS43NTIzMjUiLCAiZXhwaXJlcrI6ICIyMDE0LTAyLTA0VDA5OjE1OjE1WiIsICJpZCI6ICJwbGFjZWhvbGRlciJ9LCAic2VydmljZUNhdGFsb2ciOiBbXSwgInVzZXIiOiB7InVzZXJuYW1lIjogInJvYmVydC5waaaaaaabbbbbbbbddddddddeeeeeeeeddddddddua3MiOiBbXSwgImlkIjogIjUxYjZkYTNkZWZkMDRl2WM4MzNmMjViNFQ0Yjg2ZjVjIiwgInJvbGVzIjogW10sICJuYW1lIjoganJvYmVydCdweWtlQG15Lmrjdv5lZHUuYXUifSwgIm1ldGFkYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFtdfX19MYH-MIH8AgABMFwwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVVuc2V0MQ4wDAYDVQQHEwVVbnNldbEOMAwGA1UEChMeVW5zZXQxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbQIBATAHBgUrDgMCGjANBgkqhkiG9w0BAQEFAASBgAyNYkKTuWelHmBLVAg0V7yyVRdiPhGqJUqEuwWilV37LIKB8cclhiXNAvVTNUt95-VdiWIjtf4CIIyzD4EflEYsBCrAOm-XsJPaUvI6k-UZIjt1Z14jFdP01BOK2iFcgknkH3nORJDC24QL3ZoaGrQAJn3gZieLdltrQZdnzjzw"
},
"serviceCatalog":[
],
"user":{
"username":"example@my.jcu.edu.au",
"roles_links":[
],
"id":"aaaaaabbbbcc4e1c833f25b644b86f5c",
"roles":[
],
"name":"example@my.jcu.edu.au"
},
"metadata":{
"is_admin":0,
"roles":[
]
}
}
}
That's nice and all, but we want to authenticate against a specific tenant (a project):
Request:
curl -d '{"auth":{"tenantName": "QCIF_CliMAS_2", "passwordCredentials":{"username": "example@my.jcu.edu.au", "password": "ExampLEjYmFjNmM5ZGZj"}}}' -H "Content-type: application/json" https://keystone.rc.nectar.org.au:5000/v2.0/tokens
Field | Description | Example |
---|---|---|
username | this should be your nectar username (probably an email address) | example@my.jcu.edu.au |
password | this is your nectar API password (a generated API key) | ExampLEjYmFjNmM5ZGZj |
tenantName | this is the name of your nectar project | QCIF_CliMAS_2 |
Response:
{
"access":{
"token":{
"issued_at":"2014-02-04T03:19:58.698759",
"expires":"2014-02-04T09:19:58Z",
"id":"EXAMPLEaaaaaaaaasssssssddddddfffffddddddddddddddddfffffsssssssssssssffffggggeeeeeeeeeeMiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNC0wMi0wNFQwMzoxOTo1OC42OTg3NTkiLCAiZXhwaXJlcyI6ICIyMDE0LTAyLTA0VDA5OjE5OjU4WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIlFDSUYtQ2xpTUFTXzIiLCAiZW5hYmxlZCI6IHRydWUsICJpZCI6ICIxMzJmNTQ0NWUzMTI0NDM1YjhiNGFkMzAwODFkZmFhYiIsICJuYW1lIjogIlFDSUZfQ0xpTUFTXzIifX0sICJzZXJ2aWNlQ2F0YWxvZyI6IFt7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHBzOi8vbm92YS5yYy5uZWN0YXIub3JnLmF1Ojg3NzQvdjEuMS8xMzJmNTQ0NWUzMTI0NDM1YjhiNGFkMzAwODFkZmFhYiIsICJyZWdpb24iOiAiTWVsYm91cm5lIiwgImVuYWJsZWQiOiAiMSIsICJpbnRlcm5hbFVSTCI6ICJodHRwczovL25vdmEucmMubmVjdGFyLm9yZy5hdTo4Nzc0L3YxLjEvMTMyZjU0NDVlMzEyNDQzNWI4YjRhZDMwMDgxZGZhYWIiLCAicHVibGljVVJMIjogImh0dHBzOi8vbm92YS5yYy5uZWN0YXIub3JnLmF1Ojg3NzQvdjEuMS8xMzJmNTQ0NWUzMTI0NDM1YjhiNGFkMzAwODFkZmFhYiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJjb21wdXRlIiwgIm5hbWUiOiAiQ29tcHV0ZSBTZXJ2aWNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cHM6Ly9zd2lmdC5yYy5uZWN0YXIub3JnLmF1Ojg4ODgvIiwgInJlZ2lvbiI6ICJNZWxib3VybmUiLCAicHVibGljVVJMIjogImh0dHBzOi8vc3dpZnQucmMubmVjdGFyLm9yZy5hdTo4ODg4LyIsICJpbnRlcm5hbFVSTCI6ICJodHRwczovL3N3aWZ0LnJjLm5lY3Rhci5vcmcuYXU6ODg4OC8ifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiczMiLCAibmFtZSI6ICJTMyBTZXJ2aWNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovL2dsYW5jZS5yYy5uZWN0YXIub3JnLmF1OjkyOTIvdjEiLCAicmVnaW9uIjogIk1lbGJvdXJuZSIsICJlbmFibGVkIjogIjEiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovL2dsYW5jZS5yYy5uZWN0YXIub3JnLmF1OjkyOTIvdjEiLCAicHVibGljVVJMIjogImh0dHA6Ly9nbGFuY2UucmMubmVjdGFyLm9yZy5hdTo5MjkyL3YxIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5hbWUiOiAiSW1hZ2UgU2VydmljZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHBzOi8vY2VpbG9tZXRlci5yYy5uZWN0YXIub3JnLmF1Ojg3NzcvIiwgInJlZ2lvbiI6ICJNZWxib3VybmUiLCAicHVibGljVVJMIjogImh0dHBzOi8vY2VpbG9tZXRlci5yYy5uZWN0YXIub3JnLmF1Ojg3NzcvIiwgImludGVybmFsVVJMIjogImh0dHBzOi8vY2VpbG9tZXRlci5yYy5uZWN0YXIub3JnLmF1Ojg3NzcvIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm1ldGVyaW5nIiwgIm5hbWUiOiAiTWV0ZXJpbmcgU2VydmljZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHBzOi8vY2luZGVyLnJjLm5lY3Rhci5vcmcuYXU6ODc3Ni92MS8xMzJmNTQ0NWUzMTI0NDM1YjhiNGFkMzAwODFkZmFhYiIsICJyZWdpb24iOiAiTWVsYm91cm5lIiwgInB1YmxpY1VSTCI6ICJodHRwczovL2NpbmRlci5yYy5uZWN0YXIub3JnLmF1Ojg3NzYvdjEvMTMyZjU0NDVlMzEyNDQzNWI4YjRhZDMwMDgxZGZhYWIiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cHM6Ly9jaW5kZXIucmMubmVjdGFyLm9yZy5hdTo4Nzc2L3YxLzEzMmY1NDQ1ZTMxMjQ0MzViOGI0YWQzMDA4MWRmYWFiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogIlZvbHVtZSBTZXJ2aWNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cHM6Ly9ub3ZhLnJjLm5lY3Rhci5vcmcuYXU6ODc3My9zZXJ2aWNlcy9BZG1pbiIsICJyZWdpb24iOiAiTWVsYm91cm5lIiwgInB1YmxpY1VSTCI6ICJodHRwczovL25vdmEucmMubmVjdGFyLm9yZy5hdTo4NzczL3NlcnZpY2VzL0Nsb3VkIiwgImludGVybmFsVVJMIjogImh0dHBzOi8vbm92YS5yYy5uZWN0YXIub3JnLmF1Ojg3NzMvc2VydmljZXMvQ2xvdWQifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiZWMyIiwgIm5hbWUiOiAiRUMyIFNlcnZpY2UifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwczovL3N3aWZ0LnJjLm5lY3Rhci5vcmcuYXU6ODg4OC92MS4wLyIsICJyZWdpb24iOiAiTWVsYm91cm5lIiwgImVuYWJsZWQiOiAiMSIsICJpbnRlcm5hbFVSTCI6ICJodHRwczovL3N3aWZ0LnJjLm5lY3Rhci5vcmcuYXU6ODg4OC92MS9BVVRIXzEzMmY1NDQ1ZTMxMjQ0MzViOGI0YWQzMDA4MWRmYWFiIiwgInB1YmxpY1VSTCI6ICJodHRwczovL3N3aWZ0LnJjLm5lY3Rhci5vcmcuYXU6ODg4OC92MS9BVVRIXzEzMmY1NDQ1ZTMxMjQ0MzViOGI0YWQzMDA4MWRmYWFiIn0sIHsiYWRtaW5VUkwiOiAiaHR0cHM6Ly9zd2lmdC5xbGQubmVjdGFyLm9yZy5hdTo4ODg4L3YxLjAvIiwgInJlZ2lvbiI6ICJRbGQiLCAiZW5hYmxlZCI6ICIxIiwgImludGVybmFsVVJMIjogImh0dHBzOi8vc3dpZnQucWxkLm5lY3Rhci5vcmcuYXU6ODg4OC92MS9BVVRIXzEzMmY1NDQ1ZTMxMjQ0MzViOGI0YWQzMDA4MWRmYWFiIiwgInB1YmxpY1VSTCI6ICJodHRwczovL3N3aWZ0LnFsZC5uZWN0YXIub3JnLmF1Ojg4ODgvdjEvQVVUSF8xMzJmNTQ0NWUzMTI0NDM1YjhiNGFkMzAwODFkZmFhYiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJvYmplY3Qtc3RvcmUiLCAibmFtZSI6ICJPYmplY3QgU3RvcmFnZSBTZXJ2aWNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cHM6Ly9rZXlzdG9uZS5yYy5uZWN0YXIub3JnLmF1OjM1MzU3L3YyLjAvIiwgInJlZ2lvbiI6ICJNZWxib3VybmUiLCAiZW5hYmxlZCI6ICIxIiwgImludGVybmFsVVJMIjogImh0dHBzOi8va2V5c3RvbmUucmMubmVjdGFyLm9yZy5hdTo1MDAwL3YyLjAvIiwgInB1YmxpY1VSTCI6ICJodHRwczovL2tleXN0b25lLnJjLm5lY3Rhci5vcmcuYXU6NTAwMC92Mi4wLyJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpZGVudGl0eSIsICJuYW1lIjogIklkZW50aXR5IFNlcnZpY2UifV0sICJ1c2VyIjogeyJ1c2VybmFtZSI6ICJyb2JlcnQucHlrZUBteS5qY3UuZWR1LmF1IiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICI1MWI2ZGEzZGVmZDA0ZTFjODMzZjI1YjY0NGI4NmY1YyIsICJyb2xlcyI6IFt7Im5hbWUiOiAiTWVtYmVyIn1dLCAibmFtZSI6ICJyb2JlcnQucHlrZUBteS5qY3UuZWR1LmF1In0sICJtZXRhZGF0YSI6IHsiaXNfYWRtaW4iOiAwLCAicm9sZXMiOiBbIjIiXX19fTGB-zCB-AIBATBcMFcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVVbnNldDEOMAwGA1UEBxMFVW5zZXQxDjAMBgNVBAoTBVVuc2V0MRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20CAQEwBwYFKw4DAhowDQYJKoZIhvcNAQEBBQAEgYCesH4RJrQd4sriCvRd71EMd1651NpJNnFmOAcKRnH8yGEmkn8N8KMzmTUcxnDwlUCpreUv9-T9kOSLGSjoyGMGfLjq4pus800qFAseryRr34Gvqsepg9RCHR9XK4T3VR7+ExampleylCadQ-ICCUVQLV9keG-6bvMT5MAClGQIQ==",
"tenant":{
"description":"QCIF-CliMAS_2",
"enabled":true,
"id":"aaaaaaaaaaaaaaaaaaa4ad30081dfaab",
"name":"QCIF_CLiMAS_2"
}
},
"serviceCatalog":[
{
"endpoints":[
{
"adminURL":"https://nova.rc.nectar.org.au:8774/v1.1/aaaa5445e3124435b8b4ad30081dfaab",
"region":"Melbourne",
"enabled":"1",
"internalURL":"https://nova.rc.nectar.org.au:8774/v1.1/aaaa5445e3124435b8b4ad30081dfaab",
"publicURL":"https://nova.rc.nectar.org.au:8774/v1.1/aaaa5445e3124435b8b4ad30081dfaab"
}
],
"endpoints_links":[
],
"type":"compute",
"name":"Compute Service"
},
{
"endpoints":[
{
"adminURL":"https://swift.rc.nectar.org.au:8888/",
"region":"Melbourne",
"publicURL":"https://swift.rc.nectar.org.au:8888/",
"internalURL":"https://swift.rc.nectar.org.au:8888/"
}
],
"endpoints_links":[
],
"type":"s3",
"name":"S3 Service"
},
{
"endpoints":[
{
"adminURL":"http://glance.rc.nectar.org.au:9292/v1",
"region":"Melbourne",
"enabled":"1",
"internalURL":"http://glance.rc.nectar.org.au:9292/v1",
"publicURL":"http://glance.rc.nectar.org.au:9292/v1"
}
],
"endpoints_links":[
],
"type":"image",
"name":"Image Service"
},
{
"endpoints":[
{
"adminURL":"https://ceilometer.rc.nectar.org.au:8777/",
"region":"Melbourne",
"publicURL":"https://ceilometer.rc.nectar.org.au:8777/",
"internalURL":"https://ceilometer.rc.nectar.org.au:8777/"
}
],
"endpoints_links":[
],
"type":"metering",
"name":"Metering Service"
},
{
"endpoints":[
{
"adminURL":"https://cinder.rc.nectar.org.au:8776/v1/aaaaaaaaaaaaaaa5b8b4ad30081dfaab",
"region":"Melbourne",
"publicURL":"https://cinder.rc.nectar.org.au:8776/v1/aaaaaaaaaaaaaaa5b8b4ad30081dfaab",
"internalURL":"https://cinder.rc.nectar.org.au:8776/v1/aaaaaaaaaaaaaaa5b8b4ad30081dfaab"
}
],
"endpoints_links":[
],
"type":"volume",
"name":"Volume Service"
},
{
"endpoints":[
{
"adminURL":"https://nova.rc.nectar.org.au:8773/services/Admin",
"region":"Melbourne",
"publicURL":"https://nova.rc.nectar.org.au:8773/services/Cloud",
"internalURL":"https://nova.rc.nectar.org.au:8773/services/Cloud"
}
],
"endpoints_links":[
],
"type":"ec2",
"name":"EC2 Service"
},
{
"endpoints":[
{
"adminURL":"https://swift.rc.nectar.org.au:8888/v1.0/",
"region":"Melbourne",
"enabled":"1",
"internalURL":"https://swift.rc.nectar.org.au:8888/v1/AUTH_aaaaaaaaaaaaaaa5b8b4ad30081dfaab",
"publicURL":"https://swift.rc.nectar.org.au:8888/v1/AUTH_aaaaaaaaaaaaaaa5b8b4ad30081dfaab"
},
{
"adminURL":"https://swift.qld.nectar.org.au:8888/v1.0/",
"region":"Qld",
"enabled":"1",
"internalURL":"https://swift.qld.nectar.org.au:8888/v1/AUTH_aaaaaaaaaaaaaaa5b8b4ad30081dfaab",
"publicURL":"https://swift.qld.nectar.org.au:8888/v1/AUTH_aaaaaaaaaaaaaaa5b8b4ad30081dfaab"
}
],
"endpoints_links":[
],
"type":"object-store",
"name":"Object Storage Service"
},
{
"endpoints":[
{
"adminURL":"https://keystone.rc.nectar.org.au:35357/v2.0/",
"region":"Melbourne",
"enabled":"1",
"internalURL":"https://keystone.rc.nectar.org.au:5000/v2.0/",
"publicURL":"https://keystone.rc.nectar.org.au:5000/v2.0/"
}
],
"endpoints_links":[
],
"type":"identity",
"name":"Identity Service"
}
],
"user":{
"username":"example@my.jcu.edu.au",
"roles_links":[
],
"id":"aaaaaaaaaaaaaaaf25b644b86f5c",
"roles":[
{
"name":"Member"
}
],
"name":"example@my.jcu.edu.au"
},
"metadata":{
"is_admin":0,
"roles":[
"2"
]
}
}
}