StarlingX extensions to the OpenStack Compute API include:
Adding capability to specify VIF-Model on a per-NIC basis when creating/launching/booting a VM Server.
Adding capability to specify VIF-PCI Address on a per-NIC basis when creating/launching/booting a VM Server.
Adding an attribute to allow sorting of a VM Server’s IP Addresses in order of network attachment(NIC).
Adding the ability to scale the resources (currently only vCPUs) of a VM Server up and down without requiring a restart of the VM Server.
Adding a number of new attributes and behavior to VM Server Groups; a project_id attribute for ownership, an affinity-hyperthread policy and best_effort and max group_size metadata attribute values.
Support for various new Flavor Extra Specs to enable StarlingX-specific optimizations and capabilities for compute servers.
Adding the capability of displaying details about Provider Network with regards to Nova usage.
The typical port used for the Compute REST API is 8774. However, proper technique would be to look up the nova service endpoint in keystone.
The Extensions entity lists all available extensions
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
namespace (Optional) |
plain |
xsd:string |
Indicates namespace of the extension. |
name (Optional) |
plain |
xsd:string |
Indicates name of the extension. |
updated (Optional) |
plain |
xsd:string |
Indicates updated time of the extension. |
description (Optional) |
plain |
xsd:string |
Indicates description of the extension. |
alias (Optional) |
plain |
xsd:string |
Indicates alias of the extension. |
links (Optional) |
plain |
xsd:list |
A list of links for the extension. |
{
"extensions" : [
...
{
"namespace" : "http://docs.windriver.com/tis/ext/wrs-if/api/v1.0",
"name" : "wrs-server-if",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Interface Related Extensions",
"alias" : "wrs-if",
"links" : []
},
{
"namespace" : "http://docs.windriver.com/tis/ext/wrs-res/api/v1.0",
"name" : "wrs-server-resource",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Server Resource Extensions",
"alias" : "wrs-res",
"links" : []
},
{
"namespace" : "http://docs.windriver.com/tis/ext/wrs-sg/api/v1.0",
"name" : "wrs-server-group",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Server Grouip Extensions",
"alias" : "wrs-sg",
"links" : []
},
{
"namespace" : "http://docs.windriver.com/tis/ext/wrs/api/v1.0",
"name" : "wrs-flavor-extra-spec",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Extended Flavor Extra Spec Keys"
"alias" : "wrs",
"links" : []
},
...
]
}
This operation does not accept a request body.
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
extension_alias |
URI |
xsd:string |
The alias for the extension to list. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
namespace (Optional) |
plain |
xsd:string |
Indicates namespace of the extension. |
name (Optional) |
plain |
xsd:string |
Indicates name of the extension. |
updated (Optional) |
plain |
xsd:string |
Indicates updated time of the extension. |
description (Optional) |
plain |
xsd:string |
Indicates description of the extension. |
alias (Optional) |
plain |
xsd:string |
Indicates alias of the extension. |
links (Optional) |
plain |
xsd:list |
A list of links for the extension. |
{
"extension" : {
"namespace" : "http://docs.windriver.com/tis/ext/wrs-if/api/v1.0",
"name" : "wrs-server-if",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Interface Related Extensions",
"alias" : "wrs-if",
"links" : []
}
}
OR
{
"extension" : {
"namespace" : "http://docs.windriver.com/tis/ext/wrs-res/api/v1.0",
"name" : "wrs-server-resource",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Server Resource Extensions",
"alias" : "wrs-res",
"links" : []
}
}
OR
{
"extension" : {
"namespace" : "http://docs.windriver.com/tis/ext/wrs-sg/api/v1.0",
"name" : "wrs-server-group",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Server Group Extensions",
"alias" : "wrs-sg",
"links" : []
}
}
OR
{
"extension" : {
"namespace" : "http://docs.windriver.com/tis/ext/wrs/api/v1.0",
"name" : "wrs-flavor-extra-spec",
"updated" : "2014-08-16T00:00:00+00:00",
"description" : "WRS Extended Flavor Extra Spec Keys"
"alias" : "wrs",
"links" : []
}
}
This operation does not accept a request body.
The StarlingX extensions to the server entity are:
Adding capability to specify VIF-Model on a per-NIC basis when creating/launching/booting a VM Server.
Adding capability to specify VIF-PCI Address on a per-NIC basis when creating/launching/booting a VM Server.
Adding the ability to scale the resources (currently only vCPUs) of a server up and down without requiring a restart of the VM Server.
Adding an attribute to allow sorting of a VM Server’s IP Addresses in order of network attachment(NIC).
Normal response codes
200
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
networks (Optional) |
plain |
xsd:list |
A |
{
"server": {
"name": "testvm",
"imageRef": "ec42f67b-1dcd-4f09-aa02-7a426737c20a",
"flavorRef": "2",
"networks": [
{
"wrs-if:vif_model": "e1000",
"uuid": "06937e9e-0acd-4ad5-a6bb-f82d8896d5e8"
},
{
"wrs-if:vif_pci_address": "0000:04:12.0",
"uuid": "cdc149b5-9122-4a16-975c-6acb973f49c3"
},
{
"uuid": "b7adf5a0-3c5a-47f3-b733-8d56d12d2f45"
}
]
}
}
{
"server": {
"adminPass": "yjzytFHb7XHc",
"id": "f8f4f3ce-f6e0-4e05-8f79-bf984fdfce45",
"links": [
{
"href": "http://openstack.example.com/v2/openstack/servers/f8f4f3ce-f6e0-4e05-8f79-bf984fdfce45",
"rel": "self"
},
{
"href": "http://openstack.example.com/openstack/servers/f8f4f3ce-f6e0-4e05-8f79-bf984fdfce45",
"rel": "bookmark"
}
]
}
}
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
servers |
plain |
xsd:list |
The list of |
nics (Optional) |
plain |
xsd:list |
A |
addresses (Optional) |
plain |
xsd:list |
An |
wrs-if:nics (Optional) |
plain |
xsd:list |
An |
wrs-res:topology (Optional) |
plain |
xsd:string |
This attribute specifies a number of resource details of the VM Server; the number of numa nodes, the amount of memory and the memory page size, and the current number of VCPUs. |
wrs-res:pci_devices (Optional) |
plain |
xsd:string |
List of pci devices associated with the server instance; indicates the numa node, pci address, type of device, vendor id, product id. |
wrs-res:vcpus (min/cur/max) (Optional) |
plain |
xsd:list |
This attribute specifies the minimum number of vcpus, current number of vcpus and maximum number of vcpus of a VM Server. |
wrs-sg:server_group (Optional) |
plain |
xsd:string |
This attribute specifies the server group which the VM Server is in; a null-string if the VM Server is not in a server group. |
{
"servers" : [
{
"accessIPv4" : "",
"wrs-if:nics" : [
{
"nic1" : {
"network" : "tenant1-mgmt-net",
"port_id" : "dc627524-64a9-4fec-957a-b271f353fb22",
"vif_model" : "virtio",
"vif_pci_address": "0000:04:12.0",
"mtu" : 1500
}
}
],
"OS-EXT-SRV-ATTR:instance_name" : "instance-0000003d",
"OS-SRV-USG:terminated_at" : null,
"accessIPv6" : "",
"config_drive" : "",
"OS-DCF:diskConfig" : "MANUAL",
"wrs-sg:server_group" : "",
"updated" : "2015-04-01T20:32:57Z",
"metadata" : {},
"id" : "770a214c-5d22-42ce-9273-f6baab0ad7fd",
"flavor" : {
"id" : "00bbded9-318a-461a-aef8-3904356ca8d9",
"links" : [
{
"rel" : "bookmark",
"href" : "http://128.224.151.243:8774/101d1cffc5ec4accbdb075c89a4c5cd7/flavors/00bbded9-318a-461a-aef8-3904356ca8d9"
}
]
},
"links" : [
{
"rel" : "self",
"href" : "http://128.224.151.243:8774/v2/101d1cffc5ec4accbdb075c89a4c5cd7/servers/770a214c-5d22-42ce-9273-f6baab0ad7fd"
},
{
"rel" : "bookmark",
"href" : "http://128.224.151.243:8774/101d1cffc5ec4accbdb075c89a4c5cd7/servers/770a214c-5d22-42ce-9273-f6baab0ad7fd"
}
],
"OS-EXT-SRV-ATTR:host" : "compute-0",
"OS-EXT-AZ:availability_zone" : "nova",
"name" : "vm07-shared-vcpu-id",
"hostId" : "938254ae1b04aabc901dd4ad2cf2a561a4eab858efa0b0a48eb048ff",
"user_id" : "13dbcb9d22474c39a4a612cd44bf58ad",
"status" : "ACTIVE",
"wrs-res:topology" : "node:1, 1024MB, pgsize:4K, vcpus:3",
"wrs-res:pci_devices": "node:1, addr:0000:83:04.6, type:VF, vendor:8086, product:0443",
"OS-EXT-STS:power_state" : 1,
"OS-EXT-SRV-ATTR:hypervisor_hostname" : "compute-0",
"tenant_id" : "101d1cffc5ec4accbdb075c89a4c5cd7",
"OS-SRV-USG:launched_at" : "2015-04-01T20:32:57.000000",
"OS-EXT-STS:vm_state" : "active",
"OS-EXT-STS:task_state" : null,
"progress" : 0,
"key_name" : null,
"image" : {
"id" : "a99dfaa7-c850-4a63-ad99-d4a5f8da3069",
"links" : [
{
"rel" : "bookmark",
"href" : "http://128.224.151.243:8774/101d1cffc5ec4accbdb075c89a4c5cd7/images/a99dfaa7-c850-4a63-ad99-d4a5f8da3069"
}
]
},
"wrs-res:vcpus (min/cur/max)" : [
3,
3,
3
],
"created" : "2015-04-01T20:32:49Z",
"addresses" : {
"tenant1-mgmt-net" : [
{
"OS-EXT-IPS:type" : "fixed",
"version" : 4,
"OS-EXT-IPS-MAC:mac_addr" : "fa:16:3e:fc:65:81",
"addr" : "192.168.102.6"
}
]
},
"os-extended-volumes:volumes_attached" : []
}
]
}
This operation does not accept a request body.
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
server_id |
URI |
csapi:UUID |
The ID for the server of interest to you. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
server |
plain |
xsd:dict |
The requested |
nics (Optional) |
plain |
xsd:list |
A |
addresses (Optional) |
plain |
xsd:list |
An |
wrs-if:nics (Optional) |
plain |
xsd:list |
An |
wrs-res:topology (Optional) |
plain |
xsd:string |
This attribute specifies a number of resource details of the VM Server; the number of numa nodes, the amount of memory and the memory page size, and the current number of VCPUs. |
wrs-res:pci_devices (Optional) |
plain |
xsd:string |
List of pci devices associated with the server instance; indicates the numa node, pci address, type of device, vendor id, product id. |
wrs-res:vcpus (min/cur/max) (Optional) |
plain |
xsd:list |
This attribute specifies the minimum number of vcpus, current number of vcpus and maximum number of vcpus of a VM Server. |
wrs-sg:server_group (Optional) |
plain |
xsd:string |
This attribute specifies the server group which the VM Server is in; a null-string if the VM Server is not in a server group. |
{
"server" : {
"accessIPv4" : "",
"wrs-if:nics" : [
{
"nic1" : {
"network" : "tenant1-mgmt-net",
"port_id" : "dc627524-64a9-4fec-957a-b271f353fb22",
"vif_model" : "virtio",
"vif_pci_address": "0000:04:12.0",
"mtu" : 1500
}
}
],
"OS-EXT-SRV-ATTR:instance_name" : "instance-0000003d",
"OS-SRV-USG:terminated_at" : null,
"accessIPv6" : "",
"config_drive" : "",
"OS-DCF:diskConfig" : "MANUAL",
"wrs-sg:server_group" : "",
"updated" : "2015-04-01T20:32:57Z",
"metadata" : {},
"id" : "770a214c-5d22-42ce-9273-f6baab0ad7fd",
"flavor" : {
"id" : "00bbded9-318a-461a-aef8-3904356ca8d9",
"links" : [
{
"rel" : "bookmark",
"href" : "http://128.224.151.243:8774/101d1cffc5ec4accbdb075c89a4c5cd7/flavors/00bbded9-318a-461a-aef8-3904356ca8d9"
}
]
},
"links" : [
{
"rel" : "self",
"href" : "http://128.224.151.243:8774/v2/101d1cffc5ec4accbdb075c89a4c5cd7/servers/770a214c-5d22-42ce-9273-f6baab0ad7fd"
},
{
"rel" : "bookmark",
"href" : "http://128.224.151.243:8774/101d1cffc5ec4accbdb075c89a4c5cd7/servers/770a214c-5d22-42ce-9273-f6baab0ad7fd"
}
],
"OS-EXT-SRV-ATTR:host" : "compute-0",
"OS-EXT-AZ:availability_zone" : "nova",
"name" : "vm07-shared-vcpu-id",
"hostId" : "938254ae1b04aabc901dd4ad2cf2a561a4eab858efa0b0a48eb048ff",
"user_id" : "13dbcb9d22474c39a4a612cd44bf58ad",
"status" : "ACTIVE",
"wrs-res:topology" : "node:1, 1024MB, pgsize:4K, vcpus:3",
"wrs-res:pci_devices": "node:1, addr:0000:83:04.6, type:VF, vendor:8086, product:0443",
"OS-EXT-STS:power_state" : 1,
"OS-EXT-SRV-ATTR:hypervisor_hostname" : "compute-0",
"tenant_id" : "101d1cffc5ec4accbdb075c89a4c5cd7",
"OS-SRV-USG:launched_at" : "2015-04-01T20:32:57.000000",
"OS-EXT-STS:vm_state" : "active",
"OS-EXT-STS:task_state" : null,
"progress" : 0,
"key_name" : null,
"image" : {
"id" : "a99dfaa7-c850-4a63-ad99-d4a5f8da3069",
"links" : [
{
"rel" : "bookmark",
"href" : "http://128.224.151.243:8774/101d1cffc5ec4accbdb075c89a4c5cd7/images/a99dfaa7-c850-4a63-ad99-d4a5f8da3069"
}
]
},
"wrs-res:vcpus (min/cur/max)" : [
3,
3,
3
],
"created" : "2015-04-01T20:32:49Z",
"addresses" : {
"tenant1-mgmt-net" : [
{
"OS-EXT-IPS:type" : "fixed",
"version" : 4,
"OS-EXT-IPS-MAC:mac_addr" : "fa:16:3e:fc:65:81",
"addr" : "192.168.102.6"
}
]
},
"os-extended-volumes:volumes_attached" : []
}
}
This operation does not accept a request body.
Normal response codes
202
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
server_id |
URI |
csapi:UUID |
The ID for the server of interest to you. |
wrs-res:scale |
plain |
xsd:string |
Specify the |
direction |
plain |
xsd:string |
Direction to scale, “up” or “down”. This will result in scaling the specified resource by one unit in the specified direction. |
resource |
plain |
xsd:string |
Resource to scale. Currently only “cpu” is supported. |
{
"wrs-res:scale": {
"direction": "up",
"resource": cpu
}
}
This operation does not return a response body.
Normal response codes
202
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
server_id |
URI |
csapi:UUID |
The ID for the server of interest to you. |
wrs-if:vif_model (Optional) |
plain |
string |
Requested VIF model. |
{
"interfaceAttachment": {
"net_id": "e8b9af5e-1f47-429e-9ee0-fef202d4ea14",
"wrs-if:vif_model": "virtio"
}
}
This operation does not return a response body.
The StarlingX extensions to the Server Groups entity are:
Added a ‘wrs-sg:project_id’ attribute to assign tenant ownership to a Server Group.
Added a ‘wrs-sg:affinity-hyperthread’ policy to indicate that members of the Server Group are allowed to share hyperthread siblings.
Added a boolean ‘wrs-sg:best_effort’ metadata key/value in order to specify whether the policy should be strictly enforced or not.
Added an integer ‘wrs-sg:group_size’ metadata key/value in order to specify the maximum number of members in the group.
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
server_groups |
plain |
xsd:list |
The list of |
wrs-sg:project_id |
plain |
csapi:UUID |
The tenant or project owning the server group. |
policies |
plain |
xsd:list |
A list of policies associated with the server group. StarlingX added |
metadata |
plain |
xsd:dict |
Associated metadata key-and-value pairs. StarlingX added a boolean valued |
{
"server_groups": [
{
"id": "616fb98f-46ca-475e-917e-2563e5a8cd19",
"wrs-sg:project_id": "28d41dbebab24bdf8854a6632271a3f6"
"name": "callservergroup",
"policies": [
"wrs-sg:affinity-hyperthread"
],
"members": [],
"metadata": {
"wrs-sg:best_effort": "1",
"wrs-sg:group_size": "2"
}
},
{
"id": "2fb919a2-4666-11e4-9255-080027367628",
"wrs-sg:project_id": "28d41dbebab24bdf8854a6632271a3f6"
"name": "antiaffinitygroup",
"policies": [
"anti-affinity"
],
"members": [],
"metadata": {}
}
]
}
This operation does not accept a request body.
Normal response codes
200
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
wrs-sg:project_id |
plain |
csapi:UUID |
The project or tenant ID which owns this server group. |
policies (Optional) |
plain |
xsd:list |
The scheduler policy to associate with the server group. Modified by StarlingX to include the following additional policy: <ul><li>``wrs-sg:affinity-hyperthread`` which will try to put servers on the same compute node and have servers sharing sibling hyperthread cores with each other, and only each other. Server Groups using this policy are restriceted to a maximum of 2 members. </li></ul> |
metadata (Optional) |
plain |
xsd:dict |
This parameter specifies a dictionary of optional metadata to be associated with the group. Additional keys added by StarlingX are: <ul><li>``wrs-sg:best_effort`` (where a value of 0 means that the scheduler policy will be strictly applied and a value of 1 means that the server will still be scheduled even if the policy can’t be met). </li><li>``wrs-sg:group_size`` (where the value is an integer specifying the max number of servers in the group). </li></ul> |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
server_group |
plain |
xsd:dict |
The requested |
wrs-sg:project_id |
plain |
csapi:UUID |
The tenant or project owning the server group. |
policies |
plain |
xsd:list |
A list of policies associated with the server group. StarlingX added |
metadata |
plain |
xsd:dict |
Associated metadata key-and-value pairs. StarlingX added a boolean valued |
{
"server_group": {
"name": "antiaffinitygroup",
"wrs-sg:project_id": "28d41dbebab24bdf8854a6632271a3f6"
"policies": [
"anti-affinity"
],
"metadata": {
"wrs-sg:best_effort": "1",
"wrs-sg:group_size": "2"
}
}
}
{
"server_group": {
"id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"wrs-sg:project_id": "28d41dbebab24bdf8854a6632271a3f6"
"name": "antiaffinitygroup",
"policies": [
"anti-affinity"
],
"members": [],
"metadata": {
"wrs-sg:best_effort": "1",
"wrs-sg:group_size": "2"
}
}
}
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
ServerGroup_id |
URI |
csapi:UUID |
The server group ID. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
server_group |
plain |
xsd:dict |
The requested |
wrs-sg:project_id |
plain |
csapi:UUID |
The tenant or project owning the server group. |
policies |
plain |
xsd:list |
A list of policies associated with the server group. StarlingX added |
metadata |
plain |
xsd:dict |
Associated metadata key-and-value pairs. StarlingX added a boolean valued |
{
"server_group": {
"id": "616fb98f-46ca-475e-917e-2563e5a8cd19",
"wrs-sg:project_id": "28d41dbebab24bdf8854a6632271a3f6"
"name": "callservergroup",
"policies": [
"wrs-sg:affinity-hyperthread"
],
"members": [],
"metadata": {
"wrs-sg:best_effort": "1",
"wrs-sg:group_size": "2"
}
}
}
This operation does not accept a request body.
StarlingX has added several flavor extra specs, e.g.
sw:wrs:guest:heartbeat
, hw:wrs:shared_vcpu
,
hw:wrs:min_vcpus
, sw:wrs:vtpm
and many more.
Normal response codes
200
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
flavor_id |
URI |
String |
The ID of the flavor of interest to you. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
extra_specs (Optional) |
plain |
xsd:list |
The list of flavor extra specs. |
sw:wrs:guest:heartbeat (Optional) |
plain |
xsd:boolean |
Indicates whether or not the guest applications running in the virtual machine make use of the StarlingX Heartbeat client API. |
sw:wrs:vtpm (Optional) |
plain |
xsd:boolean |
Indicates whether or not to expose a TPM device to the Guest. |
hw:wrs:shared_vcpu (Optional) |
plain |
xsd:integer |
Indicates the vCPU of the guest virtual machine that will be scheduled to run on a shared CPU of the host. Note, this can be specified even if hw:cpu_policy is set to dedicated; allowing the guest application to use dedicated cores exclusively for its high-load tasks, but use a shared core for its low-load (e.g. management type) tasks. |
hw:wrs:min_vcpus (Optional) |
plain |
xsd:integer |
Indicates the minimum number of vCPUs for the virtual machine. The value must be between one and the number of VCPUs in the flavor of the virtual machine. If this extra_spec is specified then the server is assumed to support vCPU scaling. |
extra spec (Optional) |
plain |
xsd:integer |
StarlingX has added several flavor extra specs. |
{
"extra_specs": {
"sw:wrs:guest:heartbeat": "True",
"sw:wrs:srv_grp_messaging": "True",
"sw:wrs:vtpm": "False",
"hw:numa_node.0": "1",
"hw:wrs:vcpu:scheduler": "fifo:50:0"
"hw:wrs:min_vcpus": "2"
"hw:wrs:shared_vcpu": "1"
"hw:cpu_model": "Nehalem"
"aggregate_instance_extra_specs:localstorage": "False"
}
}
This operation does not accept a request body.
Normal response codes
200
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
flavor_id |
URI |
String |
The ID of the flavor of interest to you. |
key_id |
URI |
xsd:string |
The key of the extra-spec of interest to you. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
sw:wrs:guest:heartbeat (Optional) |
plain |
xsd:boolean |
Indicates whether or not the guest applications running in the virtual machine make use of the StarlingX Heartbeat client API. |
sw:wrs:vtpm (Optional) |
plain |
xsd:boolean |
Indicates whether or not to expose a TPM device to the Guest. |
hw:wrs:shared_vcpu (Optional) |
plain |
xsd:integer |
Indicates the vCPU of the guest virtual machine that will be scheduled to run on a shared CPU of the host. Note, this can be specified even if hw:cpu_policy is set to dedicated; allowing the guest application to use dedicated cores exclusively for its high-load tasks, but use a shared core for its low-load (e.g. management type) tasks. |
hw:wrs:min_vcpus (Optional) |
plain |
xsd:integer |
Indicates the minimum number of vCPUs for the virtual machine. The value must be between one and the number of VCPUs in the flavor of the virtual machine. If this extra_spec is specified then the server is assumed to support vCPU scaling. |
extra spec (Optional) |
plain |
xsd:integer |
StarlingX has added several flavor extra specs. |
{
"sw:wrs:guest:heartbeat": "True",
}
This operation does not accept a request body.
Normal response codes
200
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
flavor_id |
URI |
String |
The ID of the flavor of interest to you. |
extra_specs (Optional) |
plain |
xsd:list |
The list of flavor extra specs. |
sw:wrs:guest:heartbeat (Optional) |
plain |
xsd:boolean |
Indicates whether or not the guest applications running in the virtual machine make use of the StarlingX Heartbeat client API. |
sw:wrs:vtpm (Optional) |
plain |
xsd:boolean |
Indicates whether or not to expose a TPM device to the Guest. |
hw:wrs:shared_vcpu (Optional) |
plain |
xsd:integer |
Indicates the vCPU of the guest virtual machine that will be scheduled to run on a shared CPU of the host. Note, this can be specified even if hw:cpu_policy is set to dedicated; allowing the guest application to use dedicated cores exclusively for its high-load tasks, but use a shared core for its low-load (e.g. management type) tasks. |
hw:wrs:min_vcpus (Optional) |
plain |
xsd:integer |
Indicates the minimum number of vCPUs for the virtual machine. The value must be between one and the number of VCPUs in the flavor of the virtual machine. If this extra_spec is specified then the server is assumed to support vCPU scaling. |
extra spec (Optional) |
plain |
xsd:integer |
StarlingX has added several flavor extra specs. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
sw:wrs:guest:heartbeat (Optional) |
plain |
xsd:boolean |
Indicates whether or not the guest applications running in the virtual machine make use of the StarlingX Heartbeat client API. |
sw:wrs:vtpm (Optional) |
plain |
xsd:boolean |
Indicates whether or not to expose a TPM device to the Guest. |
hw:wrs:shared_vcpu (Optional) |
plain |
xsd:integer |
Indicates the vCPU of the guest virtual machine that will be scheduled to run on a shared CPU of the host. Note, this can be specified even if hw:cpu_policy is set to dedicated; allowing the guest application to use dedicated cores exclusively for its high-load tasks, but use a shared core for its low-load (e.g. management type) tasks. |
hw:wrs:min_vcpus (Optional) |
plain |
xsd:integer |
Indicates the minimum number of vCPUs for the virtual machine. The value must be between one and the number of VCPUs in the flavor of the virtual machine. If this extra_spec is specified then the server is assumed to support vCPU scaling. |
extra spec (Optional) |
plain |
xsd:integer |
StarlingX has added several flavor extra specs. |
{
"extra_specs": {
"sw:wrs:guest:heartbeat": "True",
}
}
{
"extra_specs": {
"sw:wrs:guest:heartbeat": "True",
}
}
The StarlingX extensions to the Provider Network entity are:
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
This operation does not accept a request body and does not return a response body.
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
providernet_id |
URI |
String |
The ID of the provider network of interest to you. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
providernet (Optional) |
plain |
xsd:dict |
The requested |
id (Optional) |
plain |
csapi:UUID |
The ID of the provider network. |
name (Optional) |
plain |
xsd:string |
The name of the provider network. |
pci_pfs_configured (Optional) |
plain |
xsd:integer |
The number of configured PCI devices (PFs). |
pci_pfs_used (Optional) |
plain |
xsd:integer |
The number of used PCI devices (PFs). |
pci_vfs_configured (Optional) |
plain |
xsd:integer |
The number of configured SR-IOV PCI devices (VFs). |
pci_vfs_used (Optional) |
plain |
xsd:integer |
The number of used SR-IOV PCI devices (VFs). |
{
"providernet": {
"pci_pfs_used": 0,
"pci_pfs_configured": 0,
"pci_vfs_used": 1,
"pci_vfs_configured": 16,
"id": "21c41131-07fb-43ac-a6f3-8a8020152530",
"name": "group0-data0"
}
}
This operation does not accept a request body.
The StarlingX extensions to the PCI device entity are:
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
device_name (Optional) |
plain |
xsd:string |
The name of device. |
device_id (Optional) |
plain |
xsd:string |
The device id of device. |
vendor_id (Optional) |
plain |
xsd:string |
The vendor id of device. |
class_id (Optional) |
plain |
xsd:string |
The class id of device. |
pci_pfs_configured (Optional) |
plain |
xsd:integer |
The number of configured PCI devices (PFs). |
pci_pfs_used (Optional) |
plain |
xsd:integer |
The number of used PCI devices (PFs). |
pci_vfs_configured (Optional) |
plain |
xsd:integer |
The number of configured SR-IOV PCI devices (VFs). |
pci_vfs_used (Optional) |
plain |
xsd:integer |
The number of used SR-IOV PCI devices (VFs). |
{
"pci_device_usage": [
{
"pci_pfs_used": 0,
"pci_pfs_configured": 0,
"pci_vfs_used": 1,
"vendor_id": "8086",
"pci_vfs_configured": 64,
"device_name": "Coleto Creek PCIe Co-processor",
"device_id": "0443",
"class_id": "0b4000"
}
]
}
This operation does not accept a request body.
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
tenant_id |
URI |
xsd:string |
The ID for the tenant or account in a multi-tenancy cloud. |
device_id |
URI |
String |
The device id of the pci device of interest to you. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
device_name (Optional) |
plain |
xsd:string |
The name of device. |
device_id (Optional) |
plain |
xsd:string |
The device id of device. |
vendor_id (Optional) |
plain |
xsd:string |
The vendor id of device. |
class_id (Optional) |
plain |
xsd:string |
The class id of device. |
host (Optional) |
plain |
xsd:string |
The name of the compute host. |
pci_pfs_configured (Optional) |
plain |
xsd:integer |
The number of configured PCI devices (PFs). |
pci_pfs_used (Optional) |
plain |
xsd:integer |
The number of used PCI devices (PFs). |
pci_vfs_configured (Optional) |
plain |
xsd:integer |
The number of configured SR-IOV PCI devices (VFs). |
pci_vfs_used (Optional) |
plain |
xsd:integer |
The number of used SR-IOV PCI devices (VFs). |
{
"pci_device_usage": [
{
"pci_vfs_used": 0,
"host": "compute-3",
"pci_pfs_used": 0,
"pci_pfs_configured": 0,
"pci_vfs_configured": 0,
"device_name": "Coleto Creek PCIe Co-processor",
"vendor_id": "8086",
"device_id": "0443",
"class_id": "0b4000"
},
{
"pci_vfs_used": 1,
"host": "compute-1",
"pci_pfs_used": 0,
"pci_pfs_configured": 0,
"pci_vfs_configured": 32,
"device_name": "Coleto Creek PCIe Co-processor",
"vendor_id": "8086",
"device_id": "0443",
"class_id": "0b4000"
},
{
"pci_vfs_used": 0,
"host": "compute-2",
"pci_pfs_used": 0,
"pci_pfs_configured": 0,
"pci_vfs_configured": 0,
"device_name": "Coleto Creek PCIe Co-processor",
"vendor_id": "8086",
"device_id": "0443",
"class_id": "0b4000"
},
{
"pci_vfs_used": 0,
"host": "compute-0",
"pci_pfs_used": 0,
"pci_pfs_configured": 0,
"pci_vfs_configured": 32,
"device_name": "Coleto Creek PCIe Co-processor",
"vendor_id": "8086",
"device_id": "0443",
"class_id": "0b4000"
}
]
}
This operation does not accept a request body.
The StarlingX extensions to the Hypervisor entity are:
Normal response codes
200
Error response codes
computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), itemNotFound (404)
Request parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
hypervisor_id |
URI |
csapi:UUID |
The ID for the hypervisor of interest to you. |
Response parameters
Parameter |
Style |
Type |
Description |
---|---|---|---|
memory_mb_by_node |
plain |
xsd:string |
lists available memory, in Megabytes, based on page size (4K, 2M, 1G) on each NUMA node. The sum total must match the number reported in |
memory_mb_used_by_node |
plain |
xsd:string |
lists memory currently in use, in Megabytes, based on page size (4K, 2M, 1G) on each NUMA node. The sum total must match the number reported in |
vcpus_by_node |
plain |
xsd:string |
lists available vcpus, on each NUMA node. The sum total must match the quantity reported by |
vcpus_used_by_node |
plain |
xsd:string |
lists vcpus currently in use, on each NUMA node. The sum total must match the quantity reported by |
{
"hypervisor":{
"memory_mb_used_by_node":"{\"0\": {\"2M\": 5120, \"4K\": 0, \"1G\": 0}, \"1\": {\"2M\": 0, \"4K\": 0, \"1G\": 0}}",
"cpu_info":{
"arch":"x86_64",
"model":"IvyBridge",
"vendor":"Intel",
"features":[
"pge",
"avx",
"vmx",
"clflush",
"sep",
"syscall",
"vme",
"dtes64",
"tsc",
"sse",
"xsave",
"xsaveopt",
"erms",
"xtpr",
"cmov",
"smep",
"ssse3",
"est",
"pat",
"monitor",
"smx",
"pcid",
"lm",
"msr",
"nx",
"fxsr",
"tm",
"sse4.1",
"pae",
"sse4.2",
"pclmuldq",
"acpi",
"tsc-deadline",
"popcnt",
"mmx",
"osxsave",
"cx8",
"mce",
"de",
"tm2",
"ht",
"dca",
"pni",
"pdcm",
"mca",
"pdpe1gb",
"apic",
"fsgsbase",
"f16c",
"pse",
"ds",
"invtsc",
"lahf_lm",
"aes",
"sse2",
"ss",
"ds_cpl",
"arat",
"pbe",
"fpu",
"cx16",
"pse36",
"mtrr",
"rdrand",
"rdtscp",
"x2apic"
],
"topology":{
"cores":10,
"cells":2,
"threads":2,
"sockets":1
}
},
"free_disk_gb":208,
"memory_mb_used":5120,
"vcpus_by_node":"{\"0\": 14, \"1\": 20}",
"memory_mb_by_node":"{\"0\": {\"2M\": 21440, \"4K\": 0, \"1G\": 0}, \"1\": {\"2M\": 29088, \"4K\": 0, \"1G\": 0}}",
"service":{
"host":"compute-1",
"disabled_reason":null,
"id":8
},
"local_gb_used":9,
"id":2,
"current_workload":0,
"state":"up",
"vcpus_used_by_node":"{\"0\": {\"shared\": 0.125, \"dedicated\": 6}, \"1\": {\"shared\": 0.0, \"dedicated\": 0}}",
"status":"enabled",
"host_ip":"192.168.205.205",
"hypervisor_hostname":"compute-1",
"hypervisor_version":2006000,
"disk_available_least":208,
"local_gb":219,
"free_ram_mb":45408,
"vcpus_used":6.125,
"hypervisor_type":"QEMU",
"memory_mb":50528,
"vcpus":34,
"running_vms":7
}
}
This operation does not accept a request body.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.