class Kitchen::Driver::Gogetkitchen
Gogetkitchen
driver for Kitchen
.
@author Don Draper <donoldfashioned@gmail.com>
Public Instance Methods
choose_provider(provider)
click to toggle source
# File lib/kitchen/driver/gogetkitchen.rb, line 80 def choose_provider(provider) case provider when 'lxd' Gogetit.lxd when 'kvm' # let's call it kvm externally but libvirt internally # because gogetit actually handles libvirtd Gogetit.libvirt end end
create(state)
click to toggle source
# File lib/kitchen/driver/gogetkitchen.rb, line 39 def create(state) provider = choose_provider(config[:provider]) case provider when Gogetit::GogetLibvirt if Gogetit.maas.machine_exists?(instance.name) result = provider.deploy(instance.name, config) else result = provider.create(instance.name, config) end when Gogetit::GogetLXD result = provider.create(instance.name, config) end domain = Gogetit.maas.get_domain state[:hostname] = instance.name + '.' + domain state[:username] = result[:info][:default_user] info 'Waiting for the new domain to be available..' wait_until_available(instance.name) info 'Waiting for SSH..' conn = instance.transport.connection(state) conn.wait_until_ready conn.close end
destroy(state)
click to toggle source
# File lib/kitchen/driver/gogetkitchen.rb, line 67 def destroy(state) provider = choose_provider(config[:provider]) case provider when Gogetit::GogetLibvirt provider.release(instance.name) when Gogetit::GogetLXD provider.destroy(instance.name) end instance.transport.connection(state).close end
wait_until_available(hostname)
click to toggle source
# File lib/kitchen/driver/gogetkitchen.rb, line 91 def wait_until_available(hostname) until Gogetit.maas.domain_name_exists?(hostname) sleep 3 end end