Difference between revisions of "NovaAPIv2tov3"
Ken1ohmichi (talk | contribs) |
|||
(120 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> | ||
− | AdminActions | + | 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | 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 || | ||
+ | |- | ||
+ | | 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''' | ||
+ | |||
+ | '/servers/server_id/action' | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 7: | Line 32: | ||
! Action !! Status code !! Request !! Response !! Error Code | ! Action !! Status code !! Request !! Response !! Error Code | ||
|- | |- | ||
− | | resetNetwork->reset_network || || || || | + | | pause || || || || |
+ | |- | ||
+ | | unpause || || || || | ||
+ | |- | ||
+ | | suspend || || || || | ||
+ | |- | ||
+ | | resume || || || || | ||
+ | |- | ||
+ | | migrate || || || || FlavorNotFound: 400->404 <br />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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | changePassword=>change_password || 202 -> 204 || adminPass->admin_password || || InstancePasswordSetFailed: 500->409 <br />InstanceInvalidState: 400->409 | ||
+ | |} | ||
+ | |||
+ | '''Agents''' | ||
+ | |||
+ | '/os-agents' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | create || 200 -> 201 || || || Invalid Input: 422->400 <br /> AgentBuildExists: 500->409 | ||
+ | |- | ||
+ | | update || || para -> agent || || Invalid Input: 422->400 | ||
+ | |- | ||
+ | | delete || 200 -> 204 || || || | ||
+ | |} | ||
+ | |||
+ | '''Aggregates''' | ||
+ | |||
+ | '/os-aggregates' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | index || || || interfaceAttachments->interface_attachments || | ||
+ | |- | ||
+ | | show || || || interfaceAttachment->interface_attachment || | ||
+ | |- | ||
+ | | create || || interfaceAttachment->interface_attachment || || | ||
+ | |} | ||
+ | |||
+ | '''AvailabilityZone''' | ||
+ | |||
+ | '/os-availability-zone' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | index/detail || || || availabilityZoneInfo->availability_zone_info<br />zoneName->zone_name<br />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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | delete || 200->204 || || || | ||
+ | |- | ||
+ | | create || 200->201 || || || | ||
+ | |- | ||
+ | |sync_instances || 200->204 || || || | ||
+ | |} | ||
+ | |||
+ | '''Certificates''' | ||
+ | |||
+ | '/os-certificates' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | create || 200->201 || || || | ||
+ | |- | ||
+ | | get || || || || | ||
+ | |} | ||
+ | |||
+ | '''CloudpipeUpdate''' | ||
+ | |||
+ | Delete from v3 | ||
+ | |||
+ | '''Cloudpipe''' | ||
+ | |||
+ | Delete from v3 | ||
+ | |||
+ | '''ConfigDrive''' | ||
+ | |||
+ | '/os-config-drive' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | os-getConsoleOutput -> get_console_output || || unlimited length: None -> -1 || || | ||
+ | |} | ||
+ | |||
+ | '''Consoles''' | ||
+ | |||
+ | Demote from core | ||
+ | |||
+ | '/consoles' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | create || 200->201 || || || | ||
+ | |} | ||
+ | |||
+ | '''Coverage''' | ||
+ | |||
+ | deleted from v3 | ||
+ | |||
+ | '''Createserverext''' | ||
+ | |||
+ | deleted from v3 | ||
+ | |||
+ | '''DeferredDelete''' | ||
+ | |||
+ | '/servers' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | forceDelete->force_delete || || || || | ||
+ | |} | ||
+ | |||
+ | '''DiskConfig'''' | ||
+ | |||
+ | the extend of '/images' was deleted<br/> | ||
+ | '/os-disk-config' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | evacuate || || adminPass->admin_password || adminPass->admin_password || 202 (instead of 200) | ||
+ | |} | ||
+ | |||
+ | '''ExtendedAvailabilityZone'''' | ||
+ | |||
+ | '/servers' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | show/detail || || || OS-EXT-AZ:availability_zone->os-extended-availability-zone:availability_zone || | ||
+ | |} | ||
+ | |||
+ | ''''ExtendedServerAttributes''' | ||
+ | |||
+ | '/servers' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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''' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | show/detail || || || OS-EXT-STS:*->os-extended-status:*<br />new attribute: os-extended-status:locked_by || | ||
+ | |} | ||
+ | |||
+ | '''ExtendedVirtualInterfacesNet''' | ||
+ | |||
+ | Delete from v3 | ||
+ | |||
+ | '''ExtendedVolumes''' | ||
+ | |||
+ | '/servers'<br /> 'servers/server_id/action' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | 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 || || || | ||
+ | |} | ||
+ | |||
+ | '''FlavorDisabled''' | ||
+ | |||
+ | Merges into Flavor core | ||
+ | |||
+ | '''FlavorRxtx''' | ||
+ | |||
+ | nothing changed | ||
+ | |||
+ | '''FlavorSwap''' | ||
+ | |||
+ | Merged into Flavor core | ||
+ | |||
+ | '''FlavorExtraData''' | ||
+ | |||
+ | Merged into Flavor core | ||
+ | |||
+ | '''FlavorManage''' | ||
+ | |||
+ | '/flavors' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | 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''' | ||
+ | |||
+ | '/flavors' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | index/show/detail || || minRam->min_ram<br />minDisk->min_disk || OS-FLV-EXT-DATA:ephemeral->ephemeral <br />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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | show/index || || || instanceAction -> server_action <br /> 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 | ||
+ | |||
+ | {| 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''' | |
+ | |||
+ | move to core api | ||
+ | 'os-keypairs' -> 'keypairs' | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! Action !! Status code !! Request !! Response !! Error | + | ! 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 | ||
+ | |||
+ | '''Migrations''' | ||
+ | |||
+ | nothing changed. | ||
+ | |||
+ | '''Multinic''' | ||
+ | |||
+ | '/servers/server_id/action' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | addFixedIp/add_fixed_ip || || addFixedIp->add_fixed_ip<br />networkId->network_id || || | ||
+ | |- | ||
+ | | removeFixedIp/remove_fixed_ip || || removeFixedIp->remove_fixed_ip || || | ||
+ | |} | ||
+ | |||
+ | '''MultipleCreate''' | ||
+ | |||
+ | '/servers' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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 || {'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 | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | update || || delete attribute: id <br />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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | rescue || 200->202 || adminPass->admin_password || adminPass->admin_password<br />enable_instance_password==False: {} || Invalid Input: 500->400 | ||
+ | |} | ||
+ | |||
+ | '''SchedulerHints''' | ||
+ | |||
+ | '/servers' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | 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 | ||
+ | |} | ||
+ | |||
+ | |||
+ | '''SecurityGroupDefaultRules''' | ||
+ | |||
+ | deleted from v3 | ||
+ | |||
+ | '''SecurityGroups''' | ||
+ | |||
+ | '/os-security-groups' was deleted <br /> | ||
+ | '/os-security-group-rules' was deleted <br /> | ||
+ | '/servers/server_id/os-security-groups' was deleted <br /> | ||
+ | |||
+ | '/servers': <br /> | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | delete->clear || || || || | ||
+ | |} | ||
+ | |||
+ | '''ServerStartStop''' | ||
+ | |||
+ | Merged into servers core | ||
+ | |||
+ | '''ServerUsage''' | ||
+ | |||
+ | '/servers/server_id' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | show/detail || || || OS-SRV-USG:*->os-server-usage:*|| | ||
+ | |} | ||
+ | |||
+ | '''Services''' | ||
+ | |||
+ | '/os-services/' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Action !! Status code !! Request !! Response !! Error code | ||
+ | |- | ||
+ | | update || || {'host': 'xxx'}->{'service': {'host': 'xxx'}}|| || Invalid Input: 422->400 | ||
+ | |} | ||
+ | |||
+ | '''Servers''' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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' | ||
+ | |||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Action !! Status code !! Request !! Response !! Error code | |
|- | |- | ||
− | | | + | | shelveOffload->shelve_offload || || || || |
|} | |} | ||
+ | |||
+ | '''UsedLimitsForAdmin''' | ||
+ | |||
+ | deleted from v3 | ||
+ | |||
+ | '''UsedLimits''' | ||
+ | |||
+ | deleted from v3 | ||
+ | |||
+ | '''UserData''' | ||
+ | |||
+ | '/servers' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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 |
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