Switching oslo.vmware’s backing SOAP library
With Python 2 being removed from all of OpenStack, we need the library backing oslo.vmware’s SOAP calls to be compatible with Python 3. We see suds-jurko as being unmaintained upstream, so we cannot rely on any changes happening. Since we currently already see deprecation warnings generated by nova’s tests for Python 3.6, we need a fix before the release of Python 3.10 or oslo.vmware will stop working alltogether.
Additionally, the vast number of VMs handled by a single compute-node with nova’s VMware driver makes suds-jurko a performance bottleneck. This can be overcome with switching to a library more optimized for parsing XML.
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Johannes Kulik
- Direction:
- Needs approval
- Assignee:
- Johannes Kulik
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Started
- Milestone target:
- None
- Started by
- Johannes Kulik
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
== oslo.vmware ==
Addressed by: https:/
Add moref helper functions
Addressed by: https:/
Add backend-independent access to cookiejar
https:/
Add serialize_object() helper function
== Nova ==
Addressed by: https:/
vmware: Use cookiejar from oslo.vmware client directly
Addressed by: https:/
vmware tests: Support different moref backend representations
Addressed by: https:/
vmware: OptionValue.value cannot be Boolean
Addressed by: https:/
vmware: Handle empty list attributes on vSphere objects
Addressed by https:/
vmware: Use oslo.vmware's get_moref_value()
== Cinder ==
Addressed by: https:/
vmware: Use cookiejar from oslo.vmware client directly
Addressed by: https:/
vmware tests: Support different moref backend representations
Addressed by: https:/
vmware: Use oslo.vmware's get_moref_value()
== os-brick ==
Addressed by: https:/
vmware: Use cookiejar from oslo.vmware client directly
== glance_store ==
Addressed by: https:/
vmware: Use cookiejar from oslo.vmware client directly
== monasca-agent ==
Addressed by: https:/
vmware: Use oslo.vmware's get_moref_value()
== ceilometer ==
Addressed by: https:/
vmware tests: Support different moref backend representations
Work Items
Work items:
Implement helper functions in oslo.vmware for compatibility layer: DONE
Patch nova’s VMware driver to use helper functions: INPROGRESS
Patch cinder’s VMware driver to use helper functions: INPROGRESS
Patch other projects using oslo.vmware to use helper functions: TODO
Add zeep to global requirements as documented: TODO
Implement Service object using zeep client in oslo.vmware: TODO