Switching oslo.vmware’s backing SOAP library

Registered by Johannes Kulik

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

Related branches

Sprints

Whiteboard

== oslo.vmware ==
Addressed by: https://review.opendev.org/739447
    Add moref helper functions

Addressed by: https://review.opendev.org/740909
    Add backend-independent access to cookiejar

https://review.opendev.org/c/openstack/oslo.vmware/+/786605
    Add serialize_object() helper function

== Nova ==
Addressed by: https://review.opendev.org/c/openstack/nova/+/749682
    vmware: Use cookiejar from oslo.vmware client directly

Addressed by: https://review.opendev.org/c/openstack/nova/+/749488
    vmware tests: Support different moref backend representations

Addressed by: https://review.opendev.org/c/openstack/nova/+/786246
   vmware: OptionValue.value cannot be Boolean

Addressed by: https://review.opendev.org/c/openstack/nova/+/786262
  vmware: Handle empty list attributes on vSphere objects

Addressed by https://review.opendev.org/c/openstack/nova/+/786636
  vmware: Use oslo.vmware's get_moref_value()

== Cinder ==
Addressed by: https://review.opendev.org/c/openstack/cinder/+/775025
  vmware: Use cookiejar from oslo.vmware client directly

Addressed by: https://review.opendev.org/c/openstack/cinder/+/787748
  vmware tests: Support different moref backend representations

Addressed by: https://review.opendev.org/c/openstack/cinder/+/787749
  vmware: Use oslo.vmware's get_moref_value()

== os-brick ==
Addressed by: https://review.opendev.org/c/openstack/os-brick/+/788423
  vmware: Use cookiejar from oslo.vmware client directly

== glance_store ==
Addressed by: https://review.opendev.org/c/openstack/glance_store/+/787715
  vmware: Use cookiejar from oslo.vmware client directly

== monasca-agent ==
Addressed by: https://review.opendev.org/c/openstack/monasca-agent/+/788887
  vmware: Use oslo.vmware's get_moref_value()

== ceilometer ==
Addressed by: https://review.opendev.org/c/openstack/ceilometer/+/788898
  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

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.