class Tupperware::Base
Public Class Methods
new(options = {}, kitchen_config = Kitchen::Config.new)
click to toggle source
# File lib/tupperware.rb, line 41 def initialize(options = {}, kitchen_config = Kitchen::Config.new) @kitchen_config = kitchen_config @options = options @supported_drivers = {'vagrant' => VagrantVirtualBox} end
Public Instance Methods
check_driver()
click to toggle source
# File lib/tupperware.rb, line 47 def check_driver hash = @kitchen_config.loader.read driver = hash[:driver][:name] unless @supported_drivers.has_key?(driver) puts "#{driver} is not yet supported" exit end return @supported_drivers[driver] end
package()
click to toggle source
# File lib/tupperware.rb, line 77 def package cls = check_driver instance = nil if cls == VagrantVirtualBox if @options[:instance] @kitchen_config.instances.each do |i| if i.name.to_s == @options[:instance] instance = i break end end unless instance puts "#{@options[:instance]} is not a valid kitchen instance" exit 1 end instance_name = instance.name.to_s puts "\n*** Converging #{instance_name} ***\n" instance.converge packager = VagrantVirtualBox.new(@options, @kitchen_config) packager.provision_local_box(instance) packager.halt(instance_name) packager.package(instance_name) instance.destroy vagrant_finish(instance_name) else packager = VagrantVirtualBox.new(@options, @kitchen_config) packager.kitchen_config.instances.each do |i| instance_name = i.name.to_s puts "\n*** Converging #{i.name.to_s} ***\n" i.converge packager.provision_local_box(i) packager.halt(i.name.to_s) packager.package(i.name.to_s) i.destroy vagrant_finish(instance_name) end end end end
vagrant_finish(instance_name)
click to toggle source
# File lib/tupperware.rb, line 57 def vagrant_finish(instance_name) done = <<-DONE Your vagrant box file is named #{instance_name}.box. Import it by running: vagrant box add --name NAME #{instance_name}.box Run the following command for more information on importing vagrant boxes: vagrant box add -h DONE puts done end