Sha256: 1a1a60b48f80d73873e52b2ba197c369145b7634536930b2ddf48b509a9ead02

Contents?: true

Size: 1.3 KB

Versions: 4

Compression:

Stored size: 1.3 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/provisioner/vagrant_provisioner'

module ChefMetal
  def self.with_vagrant_cluster(cluster_path, &block)
    with_provisioner(ChefMetal::Provisioner::VagrantProvisioner.new(cluster_path), &block)
  end

  def self.with_vagrant_box(box_name, provisioner_options = nil, &block)
    if box_name.is_a?(Chef::Resource::VagrantBox)
      provisioner_options ||= box_name.provisioner_options || {}
      provisioner_options['vagrant_options'] ||= {}
      provisioner_options['vagrant_options']['vm.box'] = box_name.name
      provisioner_options['vagrant_options']['vm.box_url'] = box_name.url if box_name.url
    else
      provisioner_options ||= {}
      provisioner_options['vagrant_options'] ||= {}
      provisioner_options['vagrant_options']['vm.box'] = box_name
    end

    with_provisioner_options(provisioner_options, &block)
  end
end

class Chef
  class Recipe
    def with_vagrant_cluster(cluster_path, &block)
      ChefMetal.with_vagrant_cluster(cluster_path, &block)
    end

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
chef-metal-0.5 lib/chef_metal/vagrant.rb
chef-metal-0.4 lib/chef_metal/vagrant.rb
chef-metal-0.3.1 lib/chef_metal/vagrant.rb
chef-metal-0.3 lib/chef_metal/vagrant.rb