Implement V2 API on V3 API (partial)

Registered by Christopher Yeoh

Implement the Nova V2 API on the V3 API primarily using decorators

Blueprint information

Status:
Complete
Approver:
Michael Still
Priority:
Low
Drafter:
Christopher Yeoh
Direction:
Approved
Assignee:
Christopher Yeoh
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
John Garbutt
Completed by
Thierry Carrez

Related branches

Sprints

Whiteboard

This is currently just a holding blueprint so we can tie together the WIP POC patches

WIP: register different resource and action name for v2.1: https://review.openstack.org/#/c/80198/

Fallback plan: WIP: add v2.1 plugins tree https://review.openstack.org/#/c/78906/
    - This can handle complex cases. But it's too overhead. So just as a fallback plan.

Gerrit topic: https://review.openstack.org/#q,topic:bp/v2-on-v3-api,n,z

Addressed by: https://review.openstack.org/77105
    WIP: Translate v2.1 API to v3 API
This is currently just a holding blueprint so we can tie together the WIP POC patches

WIP: register different resource and action name for v2.1: https://review.openstack.org/#/c/80198/

Fallback plan: WIP: add v2.1 plugins tree https://review.openstack.org/#/c/78906/
    - This can handle complex cases. But it's too overhead. So just as a fallback plan.

Gerrit topic: https://review.openstack.org/#q,topic:bp/v2-on-v3-api,n,z

Addressed by: https://review.openstack.org/77105
    WIP: Translate v2.1 API to v3 API

If you are still working on this, please re-submit via nova-specs. If not, please mark as obsolete, and add a quick comment to describe why. --johnthetubaguy (20th April 2014)

Addressed by: https://review.openstack.org/82301
    WIP: Distinguish diffrent behavior between v2.1 and v3

Addressed by: https://review.openstack.org/80198
    WIP register different action and resource name for v2.1 on v3

Addressed by: https://review.openstack.org/82788
    WIP: Translate "get servers on the specified hypervisor" API

Addressed by: https://review.openstack.org/83256
    WIP: Do v2.1 API Poc

Addressed by: https://review.openstack.org/84008
    Port images and image_metadata for V2.1 on V3 framework

Addressed by: https://review.openstack.org/84066
    Port images and image_metadata for V2.1 with V3 framework

Addressed by: https://review.openstack.org/84068
    WIP: Port v2 volumes extension into v2.1

Addressed by: https://review.openstack.org/84296
    Adds separate plugin namespace for V2.1 with V3 framework

Addressed by: https://review.openstack.org/84347
    WIP: Translate v2.1 "create/update/get server" API on v3 framework

Addressed by: https://review.openstack.org/84348
    WIP: Translate v2.1 "create/delete agent" API on v3 framework

Addressed by: https://review.openstack.org/84349
    WIP: Translate v2.1 "get console output" API on v3 framework

Addressed by: https://review.openstack.org/84350
    WIP: Translate v2.1 "list flavor access" API on v3 framework

Addressed by: https://review.openstack.org/84351
    WIP: Translate v2.1 "create/get flavor" API on v3 framework

Addressed by: https://review.openstack.org/84407
    Adds enable/disable config flag for V2.1

Addressed by: https://review.openstack.org/84660
    WIP: Emulate v2 behavior for "create a private flavor" API

Gerrit topic: https://review.openstack.org/#q,topic:bp/for,n,z

Addressed by: https://review.openstack.org/84695
    Blueprint for implementing the V2 API using the V3 API code

Addressed by: https://review.openstack.org/85644
    Add logging capability to API input validation

Addressed by: https://review.openstack.org/85879
    WIP: Delay API validation failure message generation

Addressed by: https://review.openstack.org/85927
    WIP: Translate input validation exceptions for V2.1 API

Addressed by: https://review.openstack.org/89473
    WIP: Emulate v2 behavior for "create a private flavor" API

Addressed by: https://review.openstack.org/89549
    Port image_size for V2.1 on V3 framework

Addressed by: https://review.openstack.org/111726
    Add v2-on-v3-api spec

Addressed by: https://review.openstack.org/111929
    WIP: Change v3 agents API to v2.1

Addressed by: https://review.openstack.org/112498
    Fix the error status code of duplicated agents

Addressed by: https://review.openstack.org/112501
    Port v3 agents API tests to v2 API tests

Addressed by: https://review.openstack.org/110835
    Merge BadRequest tests of "create a flavor" API

Addressed by: https://review.openstack.org/113167
    Add some v2 flavor_manage API tests

Addressed by: https://review.openstack.org/113168
    Fix the exception for a nonexistent flavor

Addressed by: https://review.openstack.org/113169
    Change v3 flavor_manage API to v2.1

Addressed by: https://review.openstack.org/113175
    Backport v3 api unittest into v2 api for attach_interface extension

Addressed by: https://review.openstack.org/113176
    Change v3 attach_interface to v2.1

Addressed by: https://review.openstack.org/113178
    Use common get_instance function in v2 attach_interface

Addressed by: https://review.openstack.org/113186
    Change v3 availability-zone API to v2.1

Addressed by: https://review.openstack.org/113188
    WIP: Convert migrate_server v3 plugin to v2.1

Addressed by: https://review.openstack.org/113197
    Change v3 admin_actions to v2.1

Addressed by: https://review.openstack.org/113204
    Change v3 shelve to v2.1

Addressed by: https://review.openstack.org/113220
    Merge BadRequest tests of "create a keypair" API

Addressed by: https://review.openstack.org/113221
    Change v3 keypairs API to v2.1

Addressed by: https://review.openstack.org/113247
    Change v3 admin-password to v2.1

Addressed by: https://review.openstack.org/113249
    Enable v2.1 API endpoint instead of v3 API

Addressed by: https://review.openstack.org/113424
    Backport v3 api unittest into v2 api for remote_console extension

Addressed by: https://review.openstack.org/113425
    Use common get_instance function in v2 consoles extension

Addressed by: https://review.openstack.org/113426
    Changes V3 remote_console extension into v2.1

Addressed by: https://review.openstack.org/113452
    Change v3 aggregate API to v2.1

Addressed by: https://review.openstack.org/113755
    Convert v3 certificate API to v2.1

Addressed by: https://review.openstack.org/113410
    Convert create_backup v3 plugin to v2.1 API

Addressed by: https://review.openstack.org/113419
    Convert deferred_delete v3 plugin to v2.1 API

Addressed by: https://review.openstack.org/113772
    Backport some v3 availability zones API UT to v2 API

Addressed by: https://review.openstack.org/113796
    Changes V3 evacuate extension into v2.1

Addressed by: https://review.openstack.org/113812
    Change v3 flavor_access to v2.1

Addressed by: https://review.openstack.org/113814
    Convert v3 ExtendedAvailabilityZone api to v2.1

Addressed by: https://review.openstack.org/114101
    Share unittest between v2 and v2.1 for hide_server_addresses extension

Addressed by: https://review.openstack.org/114107
    Change V3 access_ips extension into v2.1

Addressed by: https://review.openstack.org/114112
    Change v3 extended_server_attibutes to v2.1

Addressed by: https://review.openstack.org/114126
    Cleanup of V2 console output tests and add missing tests

Addressed by: https://review.openstack.org/114127
    Convert console_output v3 plugin to v2.1

Addressed by: https://review.openstack.org/114144
    Convert v3 cells API to v2.1

Addressed by: https://review.openstack.org/114157
    Port v2 images extension to work in v2.1(v3) framework

Addressed by: https://review.openstack.org/114166
    Change v3 hosts to v2.1

Addressed by: https://review.openstack.org/114172
    Backport v3 config_drive API unittest to v2 API

Addressed by: https://review.openstack.org/114177
    Change 'admin_password' into v2 style for servers extension

Addressed by: https://review.openstack.org/114424
    Convert v3 config drive plugin to v2.1

Addressed by: https://review.openstack.org/114426
    Change v3 extended_status to v2.1

Addressed by: https://review.openstack.org/114427
    Change 'image_ref'/'flavor_ref' into v2 style for servers

Addressed by: https://review.openstack.org/114431
    Change v3 flavor_rxtx to v2.1

Addressed by: https://review.openstack.org/114434
    Change v3 availability-zone API to v2.1

Addressed by: https://review.openstack.org/114444
    Port v2 image_metadata extension to work in v2.1(v3) framework

Addressed by: https://review.openstack.org/114445
    Raise Not Implemented error from V2 diagnostics API

Addressed by: https://review.openstack.org/114451
    Change ViewBuilder into v2.1 for servers

Addressed by: https://review.openstack.org/114456
    Convert v3 server diagnostics plugin to v2.1

Addressed by: https://review.openstack.org/114876
    Backport V3 flavor extraspecs API unit tests to V2

Addressed by: https://review.openstack.org/114883
    Change 'changes_since'/'changes-since' into v2.1 style for servers

Addressed by: https://review.openstack.org/114890
    Convert v3 flavor extraspecs plugin to v2.1

Addressed by: https://review.openstack.org/114899
    Change v3 flavors to v2.1

Addressed by: https://review.openstack.org/114976
    Merge UserQuotasTest into QuotaSetTest

Addressed by: https://review.openstack.org/114977
    Move fake_quotas and fake_get_quotas into a class

Addressed by: https://review.openstack.org/114978
    Separate QuotaSetsTest for each API

Addressed by: https://review.openstack.org/114979
    Change v3 quota-sets API to v2.1

Addressed by: https://review.openstack.org/115177
    Backport V3 hypervisor plugin unit tests to V2

Addressed by: https://review.openstack.org/115189
    Return BadRequest instead of UnprocessableEntity for volumes API

Addressed by: https://review.openstack.org/115190
    Changes block_device_mapping extension into v2.1

Addressed by: https://review.openstack.org/115197
    Change v3 security_groups API to v2.1

Addressed by: https://review.openstack.org/115225
    Changes V3 server_actions extension into v2.1

Addressed by: https://review.openstack.org/115281
    Convert v3 hypervisor plugin to v2.1

Addressed by: https://review.openstack.org/115288
    Port volumes extension to work in v2.1/v3 framework

Addressed by: https://review.openstack.org/115490
    Allow to create a flavor without specifying id

Addressed by: https://review.openstack.org/115491
    Backport v3 multinic tests to v2

Addressed by: https://review.openstack.org/115492
    Convert multinic v3 plugin to v2.1

Addressed by: https://review.openstack.org/115499
    Handle non dict metadata in server metadata V2 API

Addressed by: https://review.openstack.org/115503
    Remove duplicated code in test_user_data

Addressed by: https://review.openstack.org/115504
    Change v3 os-user-data extension to v2.1

Addressed by: https://review.openstack.org/115511
    Convert multiple-create v3 plugin to v2.1

Addressed by: https://review.openstack.org/115165
    Porting assisted-volume-snapshots extension to v2.1

Addressed by: https://review.openstack.org/115528
    Convert v3 server metadata plugin to v2.1

Addressed by: https://review.openstack.org/115532
    Port os-server-groups extension to work in v2.1/v3 framework

Addressed by: https://review.openstack.org/115535
    Remove duplicated code in test_versions

Addressed by: https://review.openstack.org/115536
    Add v3 versions plugin unit test to v2

Addressed by: https://review.openstack.org/115537
    Change v3 version API to v2.1

Addressed by: https://review.openstack.org/115551
    Add extension block_device_mapping_v1 for v2.1

Addressed by: https://review.openstack.org/115576
    Port image-size extension to work in v2.1/v3 framework

Addressed by: https://review.openstack.org/115831
    Convert v3 server SchedulerHints plugin to v2.1

Addressed by: https://review.openstack.org/115848
    WIP: Convert extension_info plugin to support v2.1 natively

Addressed by: https://review.openstack.org/115893
    Port limits extension to work in v2.1/v3 framework

Addressed by: https://review.openstack.org/115904
    Backport some v3 scheduler hints API UT to v2 API

Addressed by: https://review.openstack.org/115913
    Port simple_tenant_usage into v2.1

Addressed by: https://review.openstack.org/116208
    Fix V2 unit tests to test hypervisor API as admin

Addressed by: https://review.openstack.org/116584
    Remove duplicated negative factors in keypair test

Addressed by: https://review.openstack.org/114926
    Merge BadRequest tests of v2 quota_sets API

Addressed by: https://review.openstack.org/114875
    Use default quota values in test_quotas

Addressed by: https://review.openstack.org/116790
    Porting v3 evacuate testcases to v2

Gerrit topic: https://review.openstack.org/#q,topic:bp/v3-on-v2-api,n,z

Addressed by: https://review.openstack.org/117119
    Use v2.1 URLs instead of v3 one in API unit tests

Addressed by: https://review.openstack.org/117187
    Refactor admin_action plugin and test cases

This had its spec approved, but blueprint was never approved :( but we have lots of code that needs reviewing, so putting this up there for now, as low priority. Its past feature proposal freeze, so no more patches allowed. --johnthetubaugy 27 August 2014.

Addressed by: https://review.openstack.org/117400
    Change v3 security_groups API to v2.1

Addressed by: https://review.openstack.org/117402
    Port fping extension to work in v2.1/v3 framework

Gerrit topic: https://review.openstack.org/#q,topic:(detached,n,z

Addressed by: https://review.openstack.org/117427
    Catch BDM related InvalidBDM exceptions for server create v2.1

Addressed by: https://review.openstack.org/117688
    WIP:Port used_limits & used_limits_for_admin into v2.1

Addressed by: https://review.openstack.org/117922
    [WIP]Porting baremetal_nodes extension to v2.1

Addressed by: https://review.openstack.org/116791
    Convert v3 servers return_reservation_id behaviour to v2.1

Addressed by: https://review.openstack.org/115515
    Convert rescue v3 plugin to v2.1 API

Addressed by: https://review.openstack.org/113438
    Convert server_usage v3 plugin to v2.1 API

Addressed by: https://review.openstack.org/113432
    Convert service v3 plugin to v2.1 API

Addressed by: https://review.openstack.org/118255
    Port flavor-extra-data extension to v2.1 framework

Has some +2s, so leaving in juno for now. --johnthetubaguy 2nd September 2014

========================================================
To concentrate patch reviews, we need to pick up 20 patches for Juno.
The list is the following(2014/09/02 oomichi):

https://review.openstack.org/#/c/114157/
https://review.openstack.org/#/c/113796/
https://review.openstack.org/#/c/113814/
https://review.openstack.org/#/c/113188/
https://review.openstack.org/#/c/115281/
https://review.openstack.org/#/c/116791/
https://review.openstack.org/#/c/117402/
https://review.openstack.org/#/c/115576/
https://review.openstack.org/#/c/114444/
https://review.openstack.org/#/c/115288/
https://review.openstack.org/#/c/113438/
https://review.openstack.org/#/c/115893/
https://review.openstack.org/#/c/115537/
https://review.openstack.org/#/c/117119/
https://review.openstack.org/#/c/115515/
https://review.openstack.org/#/c/114127/
https://review.openstack.org/#/c/115511/
https://review.openstack.org/#/c/113169/
https://review.openstack.org/#/c/113452/
https://review.openstack.org/#/c/114979/

Addressed by: https://review.openstack.org/118934
    Port v2 quota_classes extension to work in v2.1(v3) framework

Addressed by: https://review.openstack.org/118968
    Port fixed_ip extention to v2.1

Addressed by: https://review.openstack.org/119012
    Refactor test cases of test_floating_ip_dnsto simple code

Addressed by: https://review.openstack.org/119013
    Port floating_ip_dns extention to v2.1

Addressed by: https://review.openstack.org/119283
    Port floating_ip_pools extention to v2.1

Addressed by: https://review.openstack.org/119319
    Port floating_ips_bulk extention to v2.1

Last two patches for FFEs:
https://review.openstack.org/#/c/114979/
https://review.openstack.org/#/c/113169/
--johnthetubaguy 8th September 2014

All patches approved now.

Addressed by: https://review.openstack.org/120668
    Refactoring of contrib.test_networks tests

Addressed by: https://review.openstack.org/120669
    Port os-networks plugin to v2.1(v3) infrastructure

Addressed by: https://review.openstack.org/120683
    Change flavor-manage alias for v3 API

Addressed by: https://review.openstack.org/120703
    [WIP] Port floating_ips extention to v2.1

Addressed by: https://review.openstack.org/120973
    Port cloudpipe extention to v2.1

Addressed by: https://review.openstack.org/121008
    Port cloudpipe_update extention to v2.1

Addressed by: https://review.openstack.org/121804
    Cleanup tenant networks plugin config creation

Addressed by: https://review.openstack.org/121805
    Port os-tenant-networks plugin to v2.1(v3) infrastructure

Addressed by: https://review.openstack.org/122078
    Port os-networks-associate plugin to v2.1(v3) infrastructure

Addressed by: https://review.openstack.org/122363
    Porting SecurityGroup related controller into v2.1

Addressed by: https://review.openstack.org/122610
    Port volume_attachments extension to v2.1 API

Addressed by: https://review.openstack.org/122633
    Port SecurityGroupRules controller into v2.1

Addressed by: https://review.openstack.org/123067
    Port virtual-interfaces plugin to v2.1(v3) API

Addressed by: https://review.openstack.org/120961
    Port extended_ips/extended_ips_mac extension to V2.1

Addressed by: https://review.openstack.org/124279
    Port security-group-default-rules extension into v2.1

Addressed by: https://review.openstack.org/124301
    Make v2.1 API tests use v2 URLs

Addressed by: https://review.openstack.org/124331
    Add decorator expected_errors for security_group extension

Addressed by: https://review.openstack.org/124367
    Port disk_config extension for V2.1

Addressed by: https://review.openstack.org/124328
    Enhance V2 disk_config extension Unit Test

Addressed by: https://review.openstack.org/126452
    Add v2-on-v3-api spec

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.