Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Port 9292 is glance, not cinder. Cinder listens on port 8776. You can find out what services are listening on what ports using the keystone service-list and endpoint-list commands. For example

$ keystone service-list | grep cinder
| d81505aec2b5464eb299a2814d9a7ef6 |  cinder  |     volume     |       Cinder Service       |
$ keystone endpoint-list | grep d81505aec2b5464eb299a2814d9a7ef6
| d32688601e714d4e8077d8df07fde5e8 | RegionOne | http://192.168.200.1:8776/v1/%(tenant_id)s | http://192.168.200.1:8776/v1/%(tenant_id)s | http://192.168.200.1:8776/v1/%(tenant_id)s | d81505aec2b5464eb299a2814d9a7ef6 |

Knowing the correct port, I can access the cinder API like this:

curl -X GET -s -H "x-auth-token: $TOKEN" \
  -H 'content-type: application/json' \
  http://192.168.200.1:8776/v1/$OS_TENANT_ID/volumes | jq .
{
  "volumes": [
    {
      "size": 1,
      "id": "fe69f0b6-8402-45ab-81ce-ecb6ee997ba4",
      "metadata": {},
      "source_volid": null,
      "snapshot_id": null,
      "status": "available",
      "display_name": null,
      "attachments": [],
      "availability_zone": "nova",
      "bootable": "false",
      "created_at": "2014-03-27T13:48:17.000000",
      "display_description": null,
      "volume_type": "None"
    }
  ]
}

Port 9292 is glance, not cinder. Cinder listens on port 8776. You can find out what services are listening on what ports using the keystone service-list and endpoint-list commands. For example

$ keystone service-list | grep cinder
| d81505aec2b5464eb299a2814d9a7ef6 |  cinder  |     volume     |       Cinder Service       |
$ keystone endpoint-list | grep d81505aec2b5464eb299a2814d9a7ef6
| d32688601e714d4e8077d8df07fde5e8 | RegionOne | http://192.168.200.1:8776/v1/%(tenant_id)s | http://192.168.200.1:8776/v1/%(tenant_id)s | http://192.168.200.1:8776/v1/%(tenant_id)s | d81505aec2b5464eb299a2814d9a7ef6 |

Knowing the correct port, I can access the cinder API like this:

curl -X GET -s -H "x-auth-token: $TOKEN" \
  -H 'content-type: application/json' \
  http://192.168.200.1:8776/v1/$OS_TENANT_ID/volumes | jq .
{
  "volumes": [
    {
      "size": 1,
      "id": "fe69f0b6-8402-45ab-81ce-ecb6ee997ba4",
      "metadata": {},
      "source_volid": null,
      "snapshot_id": null,
      "status": "available",
      "display_name": null,
      "attachments": [],
      "availability_zone": "nova",
      "bootable": "false",
      "created_at": "2014-03-27T13:48:17.000000",
      "display_description": null,
      "volume_type": "None"
    }
  ]
}

UPDATE 2014-04-02

While you are now using the correct port, you're still using the wrong endpoint URL. Start with a request to:

http://10.10.10.51:8776/

And you will probably see a response like this:

{
  "versions": [
    {
      "links": [
        {
          "rel": "self",
          "href": "http://10.10.10.51:8776/v1/"
        }
      ],
      "id": "v1.0",
      "updated": "2012-01-04T11:33:21Z",
      "status": "CURRENT"
    },
    {
      "links": [
        {
          "rel": "self",
          "href": "http://10.10.10.51:8776/v1/"
        }
      ],
      "id": "v2.0",
      "updated": "2012-11-21T11:33:21Z",
      "status": "CURRENT"
    }
  ]
}

This tells you that for either API version 1.0 or 2.0, the endpoint is:

http://10.10.10.51:8776/v1/

Which means your complete URL should be:

http://10.10.10.51:8776/v1/$tenant_id/volumes/detail

You are using:

http://10.10.10.51:8776/v2.0/

Which isn't a valid API endpoint.