Jump to: navigation, search

Difference between revisions of "NovaAPIv2tov3"

 
(88 intermediate revisions by 9 users not shown)
Line 1: Line 1:
 
<big>'''<big><big>The Changes of Nova API v2 to v3</big></big>'''</big>
 
<big>'''<big><big>The Changes of Nova API v2 to v3</big></big>'''</big>
 +
 +
Note that this page does not cover the tighter input validation with the V3 API. However, you can generally expect that
 +
if you make a request that does not conform to the specification (such as parameters which are not allowed) then rather than
 +
them being ignored you will receive a 400 Bad Request.
  
 
'''AccessIPs'''
 
'''AccessIPs'''
  
 
Demote from server core as new extension called access-ips.
 
Demote from server core as new extension called access-ips.
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 9: Line 15:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| show/update/rebuild/detail ||  || access_ip_v4->os-access-ips:access_ip_v4<br />access_ip_v6->os-access-ips:access_ip_v6  || access_ip_v4->os-access-ips:access_ip_v4<br />access_ip_v6->os-access-ips:access_ip_v6 ||
+
| create || || accessIPv4 -> os-access-ips:access_ip_v4<br />accessIPv6 -> os-access-ips:access_ip_v6<br />flavorRef -> flavor_ref<br />imageRef -> image_ref<br />adminPass -> admin_password<br />OS-DCF:diskConfig -> os-disk-config:disk_config<br />security_groups -> os-security-groups:security_groups<br />min_count -> os-multiple-create:min_count<br />max_count -> os-multiple-create:max_count<br />return_reservation_id -> os-multiple-create:return_reservation_id<br />user_data -> os-user-data:user_data<br />availability_zone -> os-availability-zone:availability_zone || new attribute: os-access-ips:access_ip_v4 <br /> new attribute: os-access-ips:access_ip_v6<br />adminPass -> admin_password ||
 +
|-
 +
| show/detail ||  || || accessIPv4 -> os-access-ips:access_ip_v4<br />accessIPv6 -> os-access-ips:access_ip_v6<br />hostId -> host_id<br />OS-EXT-SRV-ATTR:host -> os-extended-server-attributes:host<br />OS-EXT-SRV-ATTR:hypervisor_hostname -> os-extended-server-attributes:hypervisor_hostname<br />OS-EXT-SRV-ATTR:instance_name -> os-extended-server-attributes:instance_name<br />OS-EXT-STS:task_state -> os-extended-status:task_state<br />OS-EXT-STS:vm_state -> os-extended-status:vm_state<br />OS-EXT-STS:power_state -> os-extended-status:power_state<br />OS-SRV-USG:launched_at -> os-server-usage:launched_at<br />OS-SRV-USG:terminated_at -> os-server-usage:terminated_at<br />OS-EXT-AZ:availability_zone -> os-extended-availability-zone:availability_zone<br />security_groups -> os-security-groups:security_groups<br />config_drive -> os-config-drive:config_drive ||
 +
|-
 +
| update ||  || accessIPv4 -> os-access-ips:access_ip_v4<br />accessIPv6 -> os-access-ips:access_ip_v6  || accessIPv4 -> os-access-ips:access_ip_v4<br />accessIPv6 -> os-access-ips:access_ip_v6<br />hostId -> host_id ||
 
|-
 
|-
| create || || access_ip_v4->os-access-ips:access_ip_v4<br />access_ip_v6->os-access-ips:access_ip_v6 || new attribute: os-access-ips:access_ip_v4 <br /> new attribute: os-access-ips:access_ip_v6 ||
+
| rebuild || || accessIPv4 -> os-access-ips:access_ip_v4<br />accessIPv6 -> os-access-ips:access_ip_v6<br />imageRef -> image_ref<br />adminPass -> admin_password || accessIPv4 -> os-access-ips:access_ip_v4<br />accessIPv6 -> os-access-ips:access_ip_v6<br />hostId -> host_id ||
 
|}
 
|}
  
 
'''AdminActions'''
 
'''AdminActions'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 20: Line 32:
 
! Action !! Status code !! Request !! Response !! Error Code
 
! Action !! Status code !! Request !! Response !! Error Code
 
|-
 
|-
| pause || || || || InstanceIsLocked: 422->409
+
| pause || || || ||  
 
|-
 
|-
| unpause || || || || InstanceIsLocked: 422->409
+
| unpause || || || ||
 
|-
 
|-
| suspend || || || || InstanceIsLocked: 422->409
+
| suspend || || || ||
 
|-
 
|-
| resume || || || || InstanceIsLocked: 422->409
+
| resume || || || ||  
 
|-
 
|-
| migrate || || || || InstanceIsLocked: 400->409 <br />FlavorNotFound: 400->404 <br />TooManyInstances: 400->413
+
| migrate || || || || FlavorNotFound: 400->404 <br />TooManyInstances: 400->413
 
|-
 
|-
| resetNetwork->reset_network ||  ||  || || InstanceIsLocked: 422->409
+
| resetNetwork->reset_network ||  ||  || || InstanceIsLocked: 400->409
 
|-
 
|-
| injectNetworkInfo->inject_network_info || || || || InstanceIsLocked: 422->409
+
| injectNetworkInfo->inject_network_info || || || || InstanceIsLocked: 400->409
 
|-
 
|-
 
| createBackup->create_backup ||  ||  || ||  
 
| createBackup->create_backup ||  ||  || ||  
 
|-
 
|-
| os-migrateLive->migrate_live || || || || InstanceInvalidState: 400->409
+
| os-migrateLive->migrate_live || || || ||  
 
|-
 
|-
 
| os-resetState->reset_state || || || ||
 
| os-resetState->reset_state || || || ||
Line 44: Line 56:
  
 
Demote action 'changePassword' from server core.
 
Demote action 'changePassword' from server core.
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 49: Line 63:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| changePassword=>change_password || 204->202 || adminPass->admin_password || ||
+
| changePassword=>change_password || 202 -> 204 || adminPass->admin_password || || InstancePasswordSetFailed: 500->409 <br />InstanceInvalidState: 400->409
 
|}
 
|}
  
 
'''Agents'''
 
'''Agents'''
 +
 +
'/os-agents'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 58: Line 74:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| update || || || || Invalid Input: 422->400
+
| create || 200 -> 201 || || || Invalid Input: 422->400 <br /> AgentBuildExists: 500->409
 
|-
 
|-
| delete || 200->204 || || ||
+
| update || || para -> agent || || Invalid Input: 422->400
 
|-
 
|-
| create || 200->201 || || || Invalid Input: 422->400 <br /> AgentBuildExists: 500->409
+
| delete || 200 -> 204 || || ||
 
|}
 
|}
  
 
'''Aggregates'''
 
'''Aggregates'''
 +
 +
'/os-aggregates'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 71: Line 89:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| create || 200->201 ||  || ||
+
| create || 200 -> 201 ||  || ||
 
|-
 
|-
| delete || 200->204 || || ||
+
| delete || 200 -> 204 || || ||
 
|-
 
|-
| add_host || 200->202 || || ||
+
| add_host || 200 -> 202 || || ||
 
|-
 
|-
| remove_host || 200->202 || || ||
+
| remove_host || 200 -> 202 || || ||
 
|}
 
|}
 +
 +
'''AssistedVolumeSnapshots'''
 +
 +
deleted from v3
  
 
'''AttachInterfaces'''
 
'''AttachInterfaces'''
 +
 +
'/servers/os-interface' -> '/servers/os-attach-interfaces'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 88: Line 112:
 
| index ||  ||  || interfaceAttachments->interface_attachments ||
 
| index ||  ||  || interfaceAttachments->interface_attachments ||
 
|-
 
|-
| show || || || interfaceAttachment->interface_attachments ||
+
| show || || || interfaceAttachment->interface_attachment ||
 
|-
 
|-
| create || || interfaceAttachment->interface_attachments || ||
+
| create || || interfaceAttachment->interface_attachment || ||
 
|}
 
|}
  
 
'''AvailabilityZone'''
 
'''AvailabilityZone'''
 +
 +
'/os-availability-zone'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 101: Line 127:
 
| index/detail ||  ||  || availabilityZoneInfo->availability_zone_info<br />zoneName->zone_name<br />zoneState->zone_state ||
 
| index/detail ||  ||  || availabilityZoneInfo->availability_zone_info<br />zoneName->zone_name<br />zoneState->zone_state ||
 
|}
 
|}
 +
 +
'''BaremetalExtStatus'''
 +
 +
deleted from v3
 +
 +
'''BaremetalNodes'''
 +
 +
deleted from v3
  
 
'''BlockDeviceMapping'''
 
'''BlockDeviceMapping'''
  
 
Same with Block_device_mapping_v2_boot. But only support new format
 
Same with Block_device_mapping_v2_boot. But only support new format
 +
 +
'/servers'
 +
 +
{| class="wikitable"
 +
|-
 +
! Action !! Status code !! Request !! Response !! Error code
 +
|-
 +
| create || || block_device_mapping_v2 -> os-block-device-mapping:block_device_mapping || ||
 +
|}
 +
  
 
'''CellCapacities'''
 
'''CellCapacities'''
Line 111: Line 155:
  
 
'''Cells'''
 
'''Cells'''
 +
 +
'/os-cells'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 124: Line 170:
  
 
'''Certificates'''
 
'''Certificates'''
 +
 +
'/os-certificates'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 130: Line 178:
 
|-
 
|-
 
| create ||  200->201 ||  ||  ||
 
| create ||  200->201 ||  ||  ||
 +
|-
 +
| get ||  ||  ||  ||
 
|}
 
|}
  
Line 141: Line 191:
  
 
'''ConfigDrive'''
 
'''ConfigDrive'''
 +
 +
'/os-config-drive'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 154: Line 206:
  
 
'''ConsoleOutput'''
 
'''ConsoleOutput'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 159: Line 213:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| os-getConsoleOutput->get_console_output ||  || ||  ||
+
| os-getConsoleOutput -> get_console_output ||  || unlimited length: None -> -1 ||  ||
 
|}
 
|}
  
Line 165: Line 219:
  
 
Demote from core
 
Demote from core
 +
 +
'/consoles'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 173: Line 229:
 
|}
 
|}
  
'''coverage'''
+
'''Coverage'''
 +
 
 +
deleted from v3
  
Rename from coverage_ext
+
'''Createserverext'''
  
{| class="wikitable"
+
deleted from v3
|-
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
| start || 200->204  || ||  ||
 
|-
 
| reset || 200->204  || ||  ||
 
|}
 
  
 
'''DeferredDelete'''
 
'''DeferredDelete'''
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 197: Line 250:
 
'''DiskConfig''''
 
'''DiskConfig''''
  
the extend of images was deleted
+
the extend of '/images' was deleted<br/>
 +
'/os-disk-config'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 207: Line 261:
  
 
'''Evacuate'''
 
'''Evacuate'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 212: Line 268:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| evacuate || || adminPass->admin_password || adminPass->admin_password ||
+
| evacuate || || adminPass->admin_password || adminPass->admin_password || 202 (instead of 200)
 
|}
 
|}
  
 
'''ExtendedAvailabilityZone''''
 
'''ExtendedAvailabilityZone''''
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 225: Line 283:
  
 
''''ExtendedServerAttributes'''
 
''''ExtendedServerAttributes'''
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 259: Line 319:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| show/detail || || || new attribute: os-extended-status:locked_by ||
+
| show/detail || || || OS-EXT-STS:*->os-extended-status:*<br />new attribute: os-extended-status:locked_by ||
 
|}
 
|}
  
Line 267: Line 327:
  
 
'''ExtendedVolumes'''
 
'''ExtendedVolumes'''
 +
 +
'/servers'<br /> 'servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 274: Line 336:
 
| new action: swap/attach/detach || || ||  ||
 
| new action: swap/attach/detach || || ||  ||
 
|}
 
|}
 +
 +
'''ExtensionInfo'''
 +
 +
New for v3
  
 
'''FixedIPs'''
 
'''FixedIPs'''
Line 280: Line 346:
  
 
'''FlavorAccess'''
 
'''FlavorAccess'''
 +
 +
Promote to core api
 +
 +
'/os-flavor-access' -> '/flavor-access'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 285: Line 355:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| addTenantAccess->add_tenant_access<br />removeTenantAccess->remove_tenant_access || || ||  ||
+
| addTenantAccess->add_tenant_access<br />removeTenantAccess->remove_tenant_access || || tenant -> tenant_id ||  ||
 +
|}
 +
 
 +
'''FlavorsExtraSpecs'''
 +
 
 +
'flavors/:flavor_id/os-extra_specs/:(id) ' -> '/flavors/:flavor_id/flavor-extra-specs/:(id)'
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Action !! Status code !! Request !! Response !! Error code
 +
|-
 +
| create || 200 -> 201 || || ||
 +
|-
 +
| delete ||  200 -> 204 ||  ||  ||
 
|}
 
|}
  
Line 305: Line 388:
  
 
'''FlavorManage'''
 
'''FlavorManage'''
 +
 +
'/flavors'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 310: Line 395:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| || || OS-FLV-EXT-DATA:ephemeral->ephemera ||  OS-FLV-EXT-DATA:ephemeral->ephemera ||
+
| create || 200 -> 201 || OS-FLV-EXT-DATA:ephemeral -> ephemeral<br />os-flavor-access:is_public -> flavor-access:is_public<br />rxtx_factor -> os-flavor-rxtx:rxtx_factor ||  OS-FLV-EXT-DATA:ephemeral -> ephemeral<br />OS-FLV-DISABLED:disabled -> disabled<br />os-flavor-access:is_public -> flavor-access:is_public<br />rxtx_factor -> os-flavor-rxtx:rxtx_factor ||
 +
|-
 +
| show ||  ||  ||  OS-FLV-EXT-DATA:ephemeral -> ephemeral<br />OS-FLV-DISABLED:disabled -> disabled<br />os-flavor-access:is_public -> flavor-access:is_public<br />rxtx_factor -> os-flavor-rxtx:rxtx_factor ||
 +
|-
 +
| delete || 202 -> 204 || || ||
 
|}
 
|}
  
 
'''Flavor'''
 
'''Flavor'''
 +
 +
'/flavors'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 319: Line 410:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
|  index/show/detail || || || OS-FLV-EXT-DATA:ephemeral->ephemera <br />OS-FLV-DISABLED:disabled->disabled ||
+
|  index/show/detail || || minRam->min_ram<br />minDisk->min_disk || OS-FLV-EXT-DATA:ephemeral->ephemeral <br />OS-FLV-DISABLED:disabled->disabled ||
 
|}
 
|}
  
Line 347: Line 438:
  
 
'''Hosts'''
 
'''Hosts'''
 +
 +
'/os-hosts'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 352: Line 445:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
|  update || || updates->host || updates->host ||  
+
|  update || || updates - host || updates - host ||
 +
|-
 +
|  reboot || || || updates - host ||
 +
|-
 +
|  shutdown || || || updates - host ||
 +
|-
 +
|  startup || || || updates - host ||
 +
|-
 +
|  index || || new optional filter option - 'service' || ||  
 
|}
 
|}
  
 
'''Hypervisors'''
 
'''Hypervisors'''
 +
 +
'/os-hypervisors'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 361: Line 464:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
|  /hypervisors/'match'/search -> /hypervisors/search?query='match' || ||  || || NothingFound: 200->404
+
|  /os-hypervisors/'match'/search -> /hypervisors/search?query='match' || ||  || || NothingFound: 200->404
 +
|-
 +
|  /os-hypervisors/'match'/servers->/hypervisors/'hypervisor_id'/servers || ||  || || NothingFound: 200->404
 +
|-
 +
| /os-hypervisors/id/servers || || || Returns body indexed by hypervisor instead of hypervisors ||
 +
|-
 +
| /os-hypervisors/id || || || new attribute: os-pci:pci_stats ||
 
|-
 
|-
| /hypervisors/'match'/servers->/hypervisors/'hypervisor_id'/servers || || || || NothingFound: 200->404
+
| /os-hypervisors/detail || || || new attribute: os-pci:pci_stats ||
 
|}
 
|}
  
Line 371: Line 480:
  
 
'''InstanceAction'''
 
'''InstanceAction'''
 +
 +
'/servers/server_id/os-instance-actions'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 376: Line 487:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| show/index || ||  || instanceAction->instance_action ||
+
| show/index || ||  || instanceAction -> server_action  <br /> instance_uuid -> server_uuid  ||
 
|}
 
|}
  
 
'''InstanceUsageAuditLog'''
 
'''InstanceUsageAuditLog'''
  
nothing changed
+
'/os-instance_usage_audit_log' -> '/os-instance-usage-audit-log'
 +
 
 +
the action: show has been removed, but the filterː before is used instead in actionːindex
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Action !! Status code !! Request !! Response !! Error code
 +
|-
 +
| index || ||  || instance_usage_audit_logs->instance_usage_audit_log ||
 +
|}
 +
 
 +
'''IPs'''
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Action !! Status code !! Request !! Response !! Error code
 +
|-
 +
| index || ||  || new attributes: <br /> type <br /> mac_addr ||
 +
|-
 +
| show || ||  || new attributes: <br /> type <br /> mac_addr ||
 +
|}
  
 
'''Keypairs'''
 
'''Keypairs'''
  
promote to core api
+
move to core api
'/keypairs' was deleted
+
'os-keypairs' -> 'keypairs'
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Action !! Status code !! Request !! Response !! Error code
 +
|-
 +
| delete ||  202 -> 204 ||  ||  ||
 +
|-
 +
| create || 200->201 || || ||
 +
|-
 +
| show || || || delete attributes: <br /> user_id <br /> deleted <br /> created_at <br /> updated_at <br /> deleted_at <br /> id ||
 +
|}
 +
 
 +
'''Limits'''
 +
 
 +
deleted from v3
  
'''Migration'''
+
'''Migrations'''
  
 
nothing changed.
 
nothing changed.
  
 
'''Multinic'''
 
'''Multinic'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 404: Line 552:
  
 
'''MultipleCreate'''
 
'''MultipleCreate'''
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 409: Line 559:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| create || || min_count->os-multiple-create:min_count<br />max_count->os-multiple-create:max_count<br />return_reservation_id->os-multiple-create:return_reservation_id ||  ||
+
| create || || min_count->os-multiple-create:min_count<br />max_count->os-multiple-create:max_count<br />return_reservation_id->os-multiple-create:return_reservation_id ||  {'reservation_id': 'xxx'} -> {'servers_reservation': {'reservation_id': 'xxx'}} ||
 
|}
 
|}
  
Line 423: Line 573:
  
 
deleted from v3
 
deleted from v3
 +
 +
'''Personalities'''
 +
 +
demote from servers core
  
 
'''QuotaClasses'''
 
'''QuotaClasses'''
  
{| class="wikitable"
+
deleted from v3 and v2
|-
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
| update || ||  ||  || Invalid Input: 500->400
 
|}
 
  
 
'''Quotas''' -> '''QuotaSets'''
 
'''Quotas''' -> '''QuotaSets'''
 +
 +
'/os-quota-sets'
 +
 +
hide injected_files, injected_file_content_bytes and injected_file_path_bytes  in all request and response
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 439: Line 593:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| update || || delete attribute: id <br />delete attribute: tenant_id || new attribute: id ||
+
| update || || delete attribute: id <br />delete attribute: tenant_id || new attribute: id ||
 
|-
 
|-
 
| show || || || new attribute: id ||
 
| show || || || new attribute: id ||
 
|-
 
|-
 
| delete || 202->204 || || ||  
 
| delete || 202->204 || || ||  
 +
| /os-quota-sets/tenant_id/detail || 200 || || Same as show, but adds usage and reservation information for resource||
 
|}
 
|}
  
 
'''contrib.consoles''' -> '''plugins.v3.remote_consoles'''
 
'''contrib.consoles''' -> '''plugins.v3.remote_consoles'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 455: Line 612:
 
|-
 
|-
 
| os-getSPICEConsole->get_spice_console || || os-getSPICEConsole->get_spice_console || ||
 
| os-getSPICEConsole->get_spice_console || || os-getSPICEConsole->get_spice_console || ||
 +
|-
 +
| os-getRDPConsole -> get_rdp_console || || os-getRDPConsole -> get_rdp_console || ||
 
|}
 
|}
  
 
'''Rescue'''
 
'''Rescue'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 463: Line 624:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| rescue || 200->202 || adminPass->admin_pass || adminPass->admin_pass<br />enable_instance_password==False: {} || Invalid Input: 500->400
+
| rescue || 200->202 || adminPass->admin_password || adminPass->admin_password<br />enable_instance_password==False: {} || Invalid Input: 500->400
 
|}
 
|}
  
 
'''SchedulerHints'''
 
'''SchedulerHints'''
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 472: Line 635:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| create || || OS-SCH-HNT:scheduler_hints->os-scheduler-hints:scheduler_hints || adminPass->admin_pass<br />enable_instance_password==False: {} || Invalid Input: 500->400
+
| create || || OS-SCH-HNT:scheduler_hints -> os-scheduler-hints:scheduler_hints <br /> os:scheduler_hints -> os-scheduler-hints:scheduler_hints || adminPass->admin_pass<br />enable_instance_password==False: {} || Invalid Input: 500->400
 
|}
 
|}
  
Line 496: Line 659:
 
'''ServerDiagnostics'''
 
'''ServerDiagnostics'''
  
'servers/diagnostics'->'/servers/os-server-diagnostics'
+
'/servers/diagnostics'->'/servers/os-server-diagnostics'
  
 
'''ServerMetaData'''
 
'''ServerMetaData'''
  
Demote from core
+
'/servers/server_id/metadata'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 506: Line 669:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| create || 200->201 || || ||  
+
| update || 200->201 || || ||  
 
|-
 
|-
| update || || meta->metadata || meta->metadata ||
+
| get metadata item || || meta->metadata || meta->metadata ||
 
|-
 
|-
| show || meta->metadata || meta->metadata ||
+
| set metadata item || || meta->metadata || meta->metadata ||
 
|}
 
|}
  
  
 
'''ServerPassword'''
 
'''ServerPassword'''
 +
 +
'/servers/server_id/os-server-password'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 528: Line 693:
  
 
'''ServerUsage'''
 
'''ServerUsage'''
 +
 +
'/servers/server_id'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 537: Line 704:
  
 
'''Services'''
 
'''Services'''
 +
 +
'/os-services/'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 542: Line 711:
 
! Action !! Status code !! Request !! Response !! Error code
 
! Action !! Status code !! Request !! Response !! Error code
 
|-
 
|-
| update || || {'hosts': 'xxx'}->{'servers': {'hosts': 'xxx'}}|| || Invalid Input: 422->400
+
| update || || {'host': 'xxx'}->{'service': {'host': 'xxx'}}|| || Invalid Input: 422->400
 
|}
 
|}
  
Line 553: Line 722:
 
| index || || 'servers?change-since=->'servers?change_since=' || || Invalid Input: 422->400
 
| index || || 'servers?change-since=->'servers?change_since=' || || Invalid Input: 422->400
 
|-
 
|-
| show || || || hostId->host_id <br /> {'reservation_id': 'xxx'} -> {'servers_reservation': {'reservation_id': 'xxx'}} ||
+
| show || || || hostId->host_id ||
 
|-
 
|-
 
| update || || || hostId->host_id ||
 
| update || || || hostId->host_id ||
 
|-
 
|-
| confirmResize->confirm_resize || || || ||
+
| confirmResize->confirm_resize ||204->202 || || ||
 
|-
 
|-
 
| revertResize->revert_resize || || || ||
 
| revertResize->revert_resize || || || ||
Line 565: Line 734:
  
 
'''Shelve'''
 
'''Shelve'''
 +
 +
'/servers/server_id/action'
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 582: Line 753:
  
 
'''UserData'''
 
'''UserData'''
 +
 +
'/servers'
  
 
{| class="wikitable"
 
{| class="wikitable"

Latest revision as of 08:14, 1 September 2014

The Changes of Nova API v2 to v3

Note that this page does not cover the tighter input validation with the V3 API. However, you can generally expect that if you make a request that does not conform to the specification (such as parameters which are not allowed) then rather than them being ignored you will receive a 400 Bad Request.

AccessIPs

Demote from server core as new extension called access-ips.

'/servers'

Action Status code Request Response Error code
create accessIPv4 -> os-access-ips:access_ip_v4
accessIPv6 -> os-access-ips:access_ip_v6
flavorRef -> flavor_ref
imageRef -> image_ref
adminPass -> admin_password
OS-DCF:diskConfig -> os-disk-config:disk_config
security_groups -> os-security-groups:security_groups
min_count -> os-multiple-create:min_count
max_count -> os-multiple-create:max_count
return_reservation_id -> os-multiple-create:return_reservation_id
user_data -> os-user-data:user_data
availability_zone -> os-availability-zone:availability_zone
new attribute: os-access-ips:access_ip_v4
new attribute: os-access-ips:access_ip_v6
adminPass -> admin_password
show/detail accessIPv4 -> os-access-ips:access_ip_v4
accessIPv6 -> os-access-ips:access_ip_v6
hostId -> host_id
OS-EXT-SRV-ATTR:host -> os-extended-server-attributes:host
OS-EXT-SRV-ATTR:hypervisor_hostname -> os-extended-server-attributes:hypervisor_hostname
OS-EXT-SRV-ATTR:instance_name -> os-extended-server-attributes:instance_name
OS-EXT-STS:task_state -> os-extended-status:task_state
OS-EXT-STS:vm_state -> os-extended-status:vm_state
OS-EXT-STS:power_state -> os-extended-status:power_state
OS-SRV-USG:launched_at -> os-server-usage:launched_at
OS-SRV-USG:terminated_at -> os-server-usage:terminated_at
OS-EXT-AZ:availability_zone -> os-extended-availability-zone:availability_zone
security_groups -> os-security-groups:security_groups
config_drive -> os-config-drive:config_drive
update accessIPv4 -> os-access-ips:access_ip_v4
accessIPv6 -> os-access-ips:access_ip_v6
accessIPv4 -> os-access-ips:access_ip_v4
accessIPv6 -> os-access-ips:access_ip_v6
hostId -> host_id
rebuild accessIPv4 -> os-access-ips:access_ip_v4
accessIPv6 -> os-access-ips:access_ip_v6
imageRef -> image_ref
adminPass -> admin_password
accessIPv4 -> os-access-ips:access_ip_v4
accessIPv6 -> os-access-ips:access_ip_v6
hostId -> host_id

AdminActions

'/servers/server_id/action'

Action Status code Request Response Error Code
pause
unpause
suspend
resume
migrate FlavorNotFound: 400->404
TooManyInstances: 400->413
resetNetwork->reset_network InstanceIsLocked: 400->409
injectNetworkInfo->inject_network_info InstanceIsLocked: 400->409
createBackup->create_backup
os-migrateLive->migrate_live
os-resetState->reset_state

AdminPassword

Demote action 'changePassword' from server core.

'/servers/server_id/action'

Action Status code Request Response Error code
changePassword=>change_password 202 -> 204 adminPass->admin_password InstancePasswordSetFailed: 500->409
InstanceInvalidState: 400->409

Agents

'/os-agents'

Action Status code Request Response Error code
create 200 -> 201 Invalid Input: 422->400
AgentBuildExists: 500->409
update para -> agent Invalid Input: 422->400
delete 200 -> 204

Aggregates

'/os-aggregates'

Action Status code Request Response Error code
create 200 -> 201
delete 200 -> 204
add_host 200 -> 202
remove_host 200 -> 202

AssistedVolumeSnapshots

deleted from v3

AttachInterfaces

'/servers/os-interface' -> '/servers/os-attach-interfaces'

Action Status code Request Response Error code
index interfaceAttachments->interface_attachments
show interfaceAttachment->interface_attachment
create interfaceAttachment->interface_attachment

AvailabilityZone

'/os-availability-zone'

Action Status code Request Response Error code
index/detail availabilityZoneInfo->availability_zone_info
zoneName->zone_name
zoneState->zone_state

BaremetalExtStatus

deleted from v3

BaremetalNodes

deleted from v3

BlockDeviceMapping

Same with Block_device_mapping_v2_boot. But only support new format

'/servers'

Action Status code Request Response Error code
create block_device_mapping_v2 -> os-block-device-mapping:block_device_mapping


CellCapacities

Merge into cells in v3

Cells

'/os-cells'

Action Status code Request Response Error code
delete 200->204
create 200->201
sync_instances 200->204

Certificates

'/os-certificates'

Action Status code Request Response Error code
create 200->201
get

CloudpipeUpdate

Delete from v3

Cloudpipe

Delete from v3

ConfigDrive

'/os-config-drive'

Action Status code Request Response Error code
create config_drive->os-config-drive:config_drive
show config_drive->os-config-drive:config_drive
detail config_drive->os-config-drive:config_drive

ConsoleOutput

'/servers/server_id/action'

Action Status code Request Response Error code
os-getConsoleOutput -> get_console_output unlimited length: None -> -1

Consoles

Demote from core

'/consoles'

Action Status code Request Response Error code
create 200->201

Coverage

deleted from v3

Createserverext

deleted from v3

DeferredDelete

'/servers'

Action Status code Request Response Error code
forceDelete->force_delete

DiskConfig'

the extend of '/images' was deleted
'/os-disk-config'

Action Status code Request Response Error code
create/update/show/detail/rebuild/resize OS-DCF:diskConfig->os-disk-config:disk_config OS-DCF:diskConfig->os-disk-config:disk_config

Evacuate

'/servers/server_id/action'

Action Status code Request Response Error code
evacuate adminPass->admin_password adminPass->admin_password 202 (instead of 200)

ExtendedAvailabilityZone'

'/servers'

Action Status code Request Response Error code
show/detail OS-EXT-AZ:availability_zone->os-extended-availability-zone:availability_zone

'ExtendedServerAttributes

'/servers'

Action Status code Request Response Error code
show/detail OS-EXT-SRV-ATTR:*->os-extended-server-attributes:*

ExtendedServices

Merge into extension Services

ExtendedFloatingIPs

Delete from v3

ExtendedIPsMac

Merge into IPs

ExtendedIPs

Merge into IPs

ExtendedQuotas

Merge into QuotaSets

ExtendedStatus

Action Status code Request Response Error code
show/detail OS-EXT-STS:*->os-extended-status:*
new attribute: os-extended-status:locked_by

ExtendedVirtualInterfacesNet

Delete from v3

ExtendedVolumes

'/servers'
'servers/server_id/action'

Action Status code Request Response Error code
new action: swap/attach/detach

ExtensionInfo

New for v3

FixedIPs

Deleted from v3

FlavorAccess

Promote to core api

'/os-flavor-access' -> '/flavor-access'

Action Status code Request Response Error code
addTenantAccess->add_tenant_access
removeTenantAccess->remove_tenant_access
tenant -> tenant_id

FlavorsExtraSpecs

'flavors/:flavor_id/os-extra_specs/:(id) ' -> '/flavors/:flavor_id/flavor-extra-specs/:(id)'

Action Status code Request Response Error code
create 200 -> 201
delete 200 -> 204

FlavorDisabled

Merges into Flavor core

FlavorRxtx

nothing changed

FlavorSwap

Merged into Flavor core

FlavorExtraData

Merged into Flavor core

FlavorManage

'/flavors'

Action Status code Request Response Error code
create 200 -> 201 OS-FLV-EXT-DATA:ephemeral -> ephemeral
os-flavor-access:is_public -> flavor-access:is_public
rxtx_factor -> os-flavor-rxtx:rxtx_factor
OS-FLV-EXT-DATA:ephemeral -> ephemeral
OS-FLV-DISABLED:disabled -> disabled
os-flavor-access:is_public -> flavor-access:is_public
rxtx_factor -> os-flavor-rxtx:rxtx_factor
show OS-FLV-EXT-DATA:ephemeral -> ephemeral
OS-FLV-DISABLED:disabled -> disabled
os-flavor-access:is_public -> flavor-access:is_public
rxtx_factor -> os-flavor-rxtx:rxtx_factor
delete 202 -> 204

Flavor

'/flavors'

Action Status code Request Response Error code
index/show/detail minRam->min_ram
minDisk->min_disk
OS-FLV-EXT-DATA:ephemeral->ephemeral
OS-FLV-DISABLED:disabled->disabled

FloatingIPDns

deleted from v3

FloatingIPPools'

deleted from v3

FloatingIPsBulk

deleted from v3

FloatingIPs

deleted from v3

fping

deleted from v3

HideServerAddresses

nothing changed

Hosts

'/os-hosts'

Action Status code Request Response Error code
update updates - host updates - host
reboot updates - host
shutdown updates - host
startup updates - host
index new optional filter option - 'service'

Hypervisors

'/os-hypervisors'

Action Status code Request Response Error code
/os-hypervisors/'match'/search -> /hypervisors/search?query='match' NothingFound: 200->404
/os-hypervisors/'match'/servers->/hypervisors/'hypervisor_id'/servers NothingFound: 200->404
/os-hypervisors/id/servers Returns body indexed by hypervisor instead of hypervisors
/os-hypervisors/id new attribute: os-pci:pci_stats
/os-hypervisors/detail new attribute: os-pci:pci_stats

ImageSize

deleted from v3

InstanceAction

'/servers/server_id/os-instance-actions'

Action Status code Request Response Error code
show/index instanceAction -> server_action
instance_uuid -> server_uuid

InstanceUsageAuditLog

'/os-instance_usage_audit_log' -> '/os-instance-usage-audit-log'

the action: show has been removed, but the filterː before is used instead in actionːindex

Action Status code Request Response Error code
index instance_usage_audit_logs->instance_usage_audit_log

IPs

Action Status code Request Response Error code
index new attributes:
type
mac_addr
show new attributes:
type
mac_addr

Keypairs

move to core api 'os-keypairs' -> 'keypairs'

Action Status code Request Response Error code
delete 202 -> 204
create 200->201
show delete attributes:
user_id
deleted
created_at
updated_at
deleted_at
id

Limits

deleted from v3

Migrations

nothing changed.

Multinic

'/servers/server_id/action'

Action Status code Request Response Error code
addFixedIp/add_fixed_ip addFixedIp->add_fixed_ip
networkId->network_id
removeFixedIp/remove_fixed_ip removeFixedIp->remove_fixed_ip

MultipleCreate

'/servers'

Action Status code Request Response Error code
create min_count->os-multiple-create:min_count
max_count->os-multiple-create:max_count
return_reservation_id->os-multiple-create:return_reservation_id
{'reservation_id': 'xxx'} -> {'servers_reservation': {'reservation_id': 'xxx'}}

NetworkAssociate

deleted from v3

OsNetwork

deleted from v3

OsTenantNetwork

deleted from v3

Personalities

demote from servers core

QuotaClasses

deleted from v3 and v2

Quotas -> QuotaSets

'/os-quota-sets'

hide injected_files, injected_file_content_bytes and injected_file_path_bytes  in all request and response


Action Status code Request Response Error code
update delete attribute: id
delete attribute: tenant_id
new attribute: id
show new attribute: id
delete 202->204 /os-quota-sets/tenant_id/detail 200 Same as show, but adds usage and reservation information for resource

contrib.consoles -> plugins.v3.remote_consoles

'/servers/server_id/action'

Action Status code Request Response Error code
os-getVNCConsole->get_vnc_console os-getVNCConsole->get_vnc_console
os-getSPICEConsole->get_spice_console os-getSPICEConsole->get_spice_console
os-getRDPConsole -> get_rdp_console os-getRDPConsole -> get_rdp_console

Rescue

'/servers/server_id/action'

Action Status code Request Response Error code
rescue 200->202 adminPass->admin_password adminPass->admin_password
enable_instance_password==False: {}
Invalid Input: 500->400

SchedulerHints

'/servers'

Action Status code Request Response Error code
create OS-SCH-HNT:scheduler_hints -> os-scheduler-hints:scheduler_hints
os:scheduler_hints -> os-scheduler-hints:scheduler_hints
adminPass->admin_pass
enable_instance_password==False: {}
Invalid Input: 500->400


SecurityGroupDefaultRules

deleted from v3

SecurityGroups

'/os-security-groups' was deleted
'/os-security-group-rules' was deleted
'/servers/server_id/os-security-groups' was deleted

'/servers':

Action Status code Request Response Error code
create security_groups->os-security-groups:security_groups security_groups->os-security-groups:security_groups

ServerDiagnostics

'/servers/diagnostics'->'/servers/os-server-diagnostics'

ServerMetaData

'/servers/server_id/metadata'

Action Status code Request Response Error code
update 200->201
get metadata item meta->metadata meta->metadata
set metadata item meta->metadata meta->metadata


ServerPassword

'/servers/server_id/os-server-password'

Action Status code Request Response Error code
delete->clear

ServerStartStop

Merged into servers core

ServerUsage

'/servers/server_id'

Action Status code Request Response Error code
show/detail OS-SRV-USG:*->os-server-usage:*

Services

'/os-services/'

Action Status code Request Response Error code
update {'host': 'xxx'}->{'service': {'host': 'xxx'}} Invalid Input: 422->400

Servers

Action Status code Request Response Error code
index 'servers?change-since=->'servers?change_since=' Invalid Input: 422->400
show hostId->host_id
update hostId->host_id
confirmResize->confirm_resize 204->202
revertResize->revert_resize
createImage->create_image

Shelve

'/servers/server_id/action'

Action Status code Request Response Error code
shelveOffload->shelve_offload

UsedLimitsForAdmin

deleted from v3

UsedLimits

deleted from v3

UserData

'/servers'

Action Status code Request Response Error code
create user_data->os-user-data:user_data

UserQuotas

Merged into QuotaSets

VirtualInterfaces'

deleted from v3

VolumeAttachmentUpdate

deleted from v3

Volumes

delete from v3