Libvirt driver imagebackend refactor

Registered by Matthew Booth on 2016-11-11

This blueprint proposes cleaning up libvirt driver's imagebackend code and it's callers in the driver module. Specifically the intention is to eliminate imagebackend.Image.cache() and replace it with 2 separate methods, create_from_func() and create_from_image(), to be implemented separately by each backend. cache() currently performs several loosely related functions which are assumed by the various callers in the driver module. This has proved to be a source of bugs as they interact in unexpected ways. Consequently, create_from_image() and create_from_func() will be purely for creating disks. The various callers in the driver module will be updated to explicitly call the backend methods they require.

Blueprint information

Status:
Started
Approver:
Matt Riedemann
Priority:
Medium
Drafter:
Matthew Booth
Direction:
Needs approval
Assignee:
Matthew Booth
Definition:
Pending Approval
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
Matt Riedemann on 2016-11-11

Related branches

Sprints

Whiteboard

This is superseding https://blueprints.launchpad.net/nova/+spec/libvirt-instance-storage-ocata which was the continuation of the newton work. At the Ocata summit we said that the focus for Ocata was just the libvirt imagebackend refactor work, not the storage part of that original spec because we're not really sure what we're going to do with that now as there are new ideas about storing the canonical libvirt domain xml in the database instead. -- mriedem 20161111

Looks like the series is happening here:

https://review.openstack.org/#/q/topic:imagebackend-refactor

We're now past the feature freeze for Ocata so I've deferred this to Pike. -- mriedem 20170128

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.