logicminds/virt — comment on commit 987010cdb42141fe58c7f8faf0d3e264f46f952d
File:  line 0
By logicminds:

you are correct in that the code repeats itself. However, I believe this is because the class names make it confusing since they are the same.
Essentially we are just creating the hypervisor specific classes inside the subclass.

Lets rename KVM/Volume --> Kvmvolume so that

Volume.new(options) becomes Kvmvolume.new(options)

We would not want to add Kvmvolume.new in the base guest class as its too specific and assumes we are using kvm. So we must override the function and create a KVM specific volume from within the KVM guest class and leave the base guest class blank.

Its unfortunate that the subclasses of Interface, Host, Volume, Guest have the same class name as the super class.