As discussed at our nova meetings, reorganize the juno specs into three directories: - proposed: things proposed which weren't approved - approved: things we approved but didn't implement - implemented: things approved and implemented The first I suspect is the most controversial. I've done this because I worry about the case where a future developer wants to pick up something dropped by a previous developer, but has trouble finding previous proposed specifications on the topic. Note that the actual proposed specs for Juno are adding in a later commit. Change-Id: Idcf55ca37a83d7098dcb7c2971240c4e8fd23dc8
3.9 KiB
Integrate the vmware driver with the oslo.vmware library
https://blueprints.launchpad.net/nova/+spec/use-oslo-vmware
Now that the oslo.vmware library has been released, the vmware driver should be updated to use it.
Problem description
Too much code duplication of vmware-related projects led to the creation of the oslo.vmware project (https://github.com/openstack/oslo.vmware). Now that it is released, and already started to be used by Glance and Ceilometer, it's time the nova driver does the same.
Proposed change
This means mostly adding new import lines, mechanical conversion of call sites and deleting existing code obsoleted by the library. Most of the work has already be done and proposed in the icehouse cycle (https://review.openstack.org/#/c/70175/) so that can be used as the starting point of the patch. The changes are pure code reorganization, and has no externally visible impact.
Alternatives
None, unless we consider the undesirable option of keeping status quo as one.
Data model impact
None
REST API impact
None
Security impact
None
Notifications impact
None
Other end user impact
None
Performance Impact
None
Other deployer impact
Some version of the oslo.vmware library as eventually dictated by the the project requirements will have to be installed for the updated vmware driver to function.
Developer impact
While the changes are mechanical, it touches many places in the vmwareapi driver code base, so it can cause a lot of conflict with other driver work. Once merged, it is likely all vmware driver related patches under review will have to be updated to account for it.
On the flip side, there is developer impact of this change not being merged as well:
Until this change is merged, driver changes/fixes to areas of functionality that oslo.vmware also provides means that a developer should almost always have to update both nova and oslo.vmware with similar patches.
To migitate this issue of conflicts and code duplication, it is recommended that patches related to the vmware driver should be made dependent on this work.
Changes to the nova driver may now require a change/release to oslo.vmware as a pre-requisite.
Implementation
Assignee(s)
- Primary assignee:
-
vui
Work Items
Mostly https://review.openstack.org/#/c/70175/ plus some additional updates to account for recent code additions to the vmware driver code.
Dependencies
Changes pertaining to https://blueprints.launchpad.net/nova/+spec/vmware-spawn-refactor will cause significant code churn, but given the mostly mechanical nature of the changes to this blueprint, reacting to the former should be fairly straightforward.
Given that this work and that for the vmware-spawn-refactor blueprint are fairly orthogonal, and both necessary to facilitate additional changes to the driver, it is proposed that they be considered the highest-priority items for the vmware driver to be included in Juno-1.
Testing
Unit tests exercising the obsoleted code will be removed. Updating existing tests that currently mocks the obsoleted code to use use.vmware accordingly so that they pass should be sufficient to validate the change.
No externally visible changes means no additional Tempest tests are needed.
Documentation Impact
None