module BeakerHostGenerator::Hypervisor

Defines an Interface for the implementation of a hypervisor, and provides a static module function ‘create(node_info, options)` for instantiating the appropriate hypervisor implementation.

New hypervisor implementations must define the methods in the Interface class, and add a new element to the ‘builtin_hypervisors` map.

Any number of hypervisors are used by a single Generator during host generation in the ‘BeakerHostGenerator::Generator#generate` method. Whenever a host specifies a specific hypervisor implementation, the Generator will instantiate the appropriate hypervisor via `BeakerHostGenerator::Hypervisor.create`.