Merge API extensions Controller and Schema code (Queens - partial)

Registered by Ghanshyam Mann on 2017-08-23

This is continuation of API extensions removal work from Pike- https://blueprints.launchpad.net/nova/+spec/api-no-more-extensions-pike

In Pike, we have removed the extensions framework and stevedore loading. To achieve better readability and debugability, the API extensions code can be merged further. Basically below items:

1. remove the extension base class and Extension manager of configuring the extensions :
https://github.com/openstack/nova/blob/f91817aaf4c02b5b1362928d05e09ffc35c3d0e9/nova/api/openstack/extensions.py#L33
The unittest needs to be cleanup, still have a lot of unittests depend on those old extension obj.

2. Merge all extended json-schema into the server main json-schema https://github.com/openstack/nova/blob/f91817aaf4c02b5b1362928d05e09ffc35c3d0e9/nova/api/openstack/compute/servers.py#L90

3. Merge all the 'server create' extensions into servers controller, the extension list is https://github.com/openstack/nova/blob/f91817aaf4c02b5b1362928d05e09ffc35c3d0e9/nova/api/openstack/compute/servers.py#L104

4. Merge all the extended controllers into the main controller, the extension list is https://github.com/openstack/nova/blob/f91817aaf4c02b5b1362928d05e09ffc35c3d0e9/nova/api/openstack/compute/routes.py#L280

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
Low
Drafter:
Ghanshyam Mann
Direction:
Approved
Assignee:
Ghanshyam Mann
Definition:
Approved
Series goal:
Accepted for queens
Implementation:
Implemented
Milestone target:
milestone icon queens-rc1
Started by
Matt Riedemann on 2017-10-16
Completed by
Matt Riedemann on 2018-01-31

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/api-extensions-merge-queens,n,z

Addressed by: https://review.openstack.org/451331
    Merge server create schema for availability zone extension

Addressed by: https://review.openstack.org/502574
    Merge server create for availability zone extension

Addressed by: https://review.openstack.org/502859
    Merge extended availability zone controller

Addressed by: https://review.openstack.org/508101
    Spec for API extensions policy removal

Approving as a specless blueprint for API extension internal plumbing cleanup, continuation from work done in previous releases. -- 20171016

Addressed by: https://review.openstack.org/516104
    Merge flavor extensions controller code

Addressed by: https://review.openstack.org/519997
    Remove the objects which related to the old v2 API implementation

Addressed by: https://review.openstack.org/519998
    Remove the objects for describing the extension for v2.1 API

Addressed by: https://review.openstack.org/529206
    Remove extensions module

Addressed by: https://review.openstack.org/529207
    Remove the LoadedExtensionInfo object

Addressed by: https://review.openstack.org/529217
    Merge ResourceV21 obj into Resource obj

Addressed by: https://review.openstack.org/529218
    Remove the inherits parameter for the Resource object

There is more work to do here which can happen in Rocky:

https://blueprints.launchpad.net/nova/+spec/api-extensions-merge-rocky

-- mriedem 20180130

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.