Sha256: 560ccaa634b770ba4a4f7160019d010f742bce7f3934a5633602ce02cc0ae8b7

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require 'chef_metal'
require 'chef/resource/vagrant_cluster'
require 'chef/provider/vagrant_cluster'
require 'chef/resource/vagrant_box'
require 'chef/provider/vagrant_box'
require 'chef_metal_vagrant/vagrant_provisioner'

module ChefMetalVagrant
  def self.with_vagrant_box(run_context, box_name, vagrant_options = {}, &block)
    if box_name.is_a?(Chef::Resource::VagrantBox)
      new_options = { 'vagrant_options' => { 'vm.box' => box_name.name } }
      new_options['vagrant_options']['vm.box_url'] = box_name.url if box_name.url
    else
      new_options = { 'vagrant_options' => { 'vm.box' => box_name } }
    end

    run_context.chef_metal.add_provisioner_options(new_options, &block)
  end
end

class Chef
  class Recipe
    def with_vagrant_cluster(cluster_path, &block)
      with_provisioner(ChefMetalVagrant::VagrantProvisioner.new(cluster_path), &block)
    end

    def with_vagrant_box(box_name, vagrant_options = {}, &block)
      ChefMetalVagrant.with_vagrant_box(run_context, box_name, vagrant_options, &block)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chef-metal-vagrant-0.3.1 lib/chef_metal_vagrant.rb
chef-metal-vagrant-0.3 lib/chef_metal_vagrant.rb