
Fixed a problem with the docs not even building and cleaned up the sphinx warnings. Changed the directory structure to more closely resemble other OpenStack projects. This doesn't address any of the content yet, simply the structure and ability to build. Change-Id: I2b00b12b7664d58d44994b9d0e23a55c96379c18
10 KiB
10 KiB
cURL Commands
Resources
Rack
create
curl -vX POST -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '
{
"subnet": "192.168.1.0/255",
"name": "my_rack",
"capacities": [{
"name": "total_cpu",
"value": "64",
"unit": "count"
}, {
"name": "total_memory",
"value": "1024",
"unit": "MiB"
}],
"nodes": [{
"id": "123"
}, {
"id": "345"
}],
"slots": 1
}
' http://0.0.0.0:8585/v1/racks
create with ResourceClass
curl -vX POST -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '
{
"subnet": "192.168.1.0/255",
"name": "my_rack",
"capacities": [{
"name": "total_cpu",
"value": "64",
"unit": "cpu"
}, {
"name": "total_memory",
"value": "1024",
"unit": "MB"
}],
"nodes": [{
"id": "123"
}, {
"id": "345"
}],
"slots": 1,
"resource_class":{
"id":1,
"links":[
{
"href":"http://0.0.0.0:8585/v1/resource_clases/1",
"rel":"self"
}
]
}
}
' http://0.0.0.0:8585/v1/racks
delete
curl -vX DELETE http://localhost:8585/v1/racks/1
update
curl -v -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '{ "name": "new_name" }' http://0.0.0.0:8585/v1/racks/1
update (change nodes to Rack 1)
curl -v -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '{ "nodes": [ { "id": "1" }, { "id": "2"}] }' http://0.0.0.0:8585/v1/racks/1
Flavor
This resource only exists as part of a ResourceClass.
create a new Flavor for a specific ResourceClass
curl -v -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '
{
"max_vms": 10,
"name": "tiny",
"capacities":
[
{
"value": "1",
"name": "cpu",
"unit": "count"
},
{
"value": "512",
"name": "memory",
"unit": "MiB"
},
{
"value": "512",
"name": "storage",
"unit": "GiB"
}
]
}'
http://0.0.0.0:8585/v1/resource_classes/1/flavors``
Flavors can also be created as part of ResourceClass create operation:
get Flavor(s) for a particular ResourceClass
curl -H "Accept: application/xml" http://0.0.0.0:8585/v1/resource_classes/1/flavors(/2)
delete a specific Flavor from a given ResourceClass
curl -X DELETE -H "Accept: application/xml" http://0.0.0.0:8585/v1/resource_classes/1/flavors/1
update an existing Flavor in a specified ResourceClass
curl -v -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '
{
"capacities":
[
{
"value": "5000",
"name": "cpu",
"unit": "count"
},
{
"value": "1111",
"name": "memory",
"unit": "MiB"
},
{
"value": "2222",
"name": "storage",
"unit": "GiB"
}
],
"max_vms": 9999,
"name": "tiny_update" }'
http://0.0.0.0:8585/v1/resource_classes/1/flavors/3``
NOTE: The above operation can be performed to change only part of a given flavor - such as updating the name or max_vms, or even a specific capacity. The body of the PUT request will determine what is updated. For example, to update the 'cpu' capacity and 'max_vms':
curl -v -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -v -d '
{
"max_vms": 1234,
"capacities" : [
{ "name": "cpu",
"value" : "1",
"unit" : "count" }
]
}'
http://0.0.0.0:8585/v1/resource_classes/1/flavors/3``
ResourceClass
get a specific ResourceClass
curl -H 'Accept: application/json' http://0.0.0.0:8585/v1/resource_classes/1
response
{
"id":11,
"name":"test-chassis",
"service_type":"compute",
"racks":[
{
"id":1,
"links":[
{
"href":"http://0.0.0.0:8585/v1/rack/1",
"rel":"self"
}
]
}
],
"links":[
{
"href":"http://0.0.0.0:8585/v1/resource_classes/11",
"rel":"self"
}
]
}
get collection
curl -H 'Accept: application/json' http://0.0.0.0:8585/v1/resource_classes
create without Racks
curl -iX POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '
{
"service_type": "compute",
"name": "test-chassis"
}
' http://0.0.0.0:8585/v1/resource_classes
create with Rack and Flavor definitions
curl -iX POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '
{
"name": "test-chassis",
"service_type":"compute",
"racks": [
{ "id":1,
"links":[{"href":"http://0.0.0.0:8585/v1/racks/1","rel":"self"}]
}
],
"flavors": [
{ "name" : "x-large",
"capacities" : [
{ "name": "cpu",
"value" : "4",
"unit" : "count" },
{ "name": "memory",
"value" : "8192",
"unit" : "MiB" },
{ "name": "storage",
"value" : "1024",
"unit" : "GiB" }
]
}
]
}
' http://0.0.0.0:8585/v1/resource_classes
as a one-liner (copy/paste)
curl -iX POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"service_type": "compute_1","name": "test-chassis", "service_type":"compute","racks":[{"id":1,"links":[{"href":"http://0.0.0.0:8585/v1/racks/1","rel":"self"}]}], "flavors": [{"name" : "x-large", "capacities" : [ { "name": "cpu", "value" : "4", "unit" : "count" }, { "name": "memory", "value" : "8192", "unit" : "MiB" }, { "name": "storage", "value" : "1024", "unit" : "GiB" }]}]}' http://0.0.0.0:8585/v1/resource_classes
update
To add or remove Racks on a ResourceClass, simply do an update and alter the racks array attribute accordingly.
curl -iX PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -d '
{
"service_type": "compute",
"name": "test-chassis",
"racks":[
{
"id": 1,
"links": [
{
"href":"http://0.0.0.0:8585/v1/racks/1",
"rel":"self"
}
]
}
]
}
' http://0.0.0.0:8585/v1/resource_classes/13``
delete
curl -X DELETE http://0.0.0.0:8585/v1/resource_classes/1
DataCenter
provision all
This will provision the data center according to its description in Tuskar.
curl -XPOST -H 'Content-Type:application/json' -H 'Accept: application/json' http://0.0.0.0:8585/v1/data_centers/
Node
Get Collection
curl http://0.0.0.0:8585/v1/nodes/
response
[
{
"nova_baremetal_node_id": "0e3ab3d3-bd85-40bd-b6a1-fae484040825",
"id": "1",
"links": [
{
"href": "http://127.0.0.1:8585/v1/nodes/1",
"rel": "self"
}
],
"rack": {
"id": 1,
"links":
[
{
"href": "http://127.0.0.1:8585/v1/racks/1",
"rel": "self"
}
]
}
}
]
Retrieve a single Node
curl http://0.0.0.0:8585/v1/nodes/1
response
{
"nova_baremetal_node_id": "0e3ab3d3-bd85-40bd-b6a1-fae484040825",
"id": "1",
"links":
[
{
"href": "http://127.0.0.1:8585/v1/nodes/1",
"rel": "self"
}
],
"rack":
{
"id": 1,
"links":
[
{
"href": "http://127.0.0.1:8585/v1/racks/1",
"rel": "self"
}
]
}
}
Overcloud
get Keystone URL for an overcloud
curl -X GET -H 'Content-Type:application/json' -H 'Accept: application/json' http://0.0.0.0:8585/v1/overclouds/cloudname
response
{
"stack_name": "cloudname",
"links": [
{
"rel": "keystone",
"href": "http://192.0.2.5:5000/v2.0/"
}
]
}