Consolidate hypervisor driver implementations
Hypervisor drivers currently expose the same API, but that's pretty much all they have in common, even though they all have to do many of the same things. We should try and get as much code as possible moved into a common superclass. This way, many new features will be much easier to add to all drivers at the same time, and a lot of the differences in behaviour will automatically disappear.
Blueprint information
- Status:
- Complete
- Approver:
- Vish Ishaya
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- Soren Hansen
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- John Garbutt
Related branches
Related bugs
Sprints
Whiteboard
We need a more explicit plan, marking as obsolete for now, the task work is a better opportunity for his work -- johnthetubaguy
This will probably require grabbing John Garbutt and someone off of the RAX public cloud team, but it would be awesome to get this done.
Note from JohnGarbutt: I am happy to help, this sounds like a good idea. I have some code around Live Migration that needs some work in this direction. It is probably worth talking to Johannes Erdfelt, as he had some plans around making actions idempotent, that would be great if they are shared in a base class (if that is at all possible).
Note from Sean Dague: As part of this refactoring effort I'd also like to get the virt drivers to be cleanly dynamically loadable. Right now there are driver reference names in connection.py that make it impossible to add or replace a driver without core changes, as the list of available drivers is a fixed list. I'm happy to help here.
Gerrit topic: https:/
Addressed by: https:/
Define cross-driver standardized vm_mode values