Sha256: fb8df0b5f9080c011cb518841ab7a37d96f5676b488a500656ae7d4977f96737

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

class TestLab

  class Provisioner

    # OmniBus Provisioner Error Class
    class OmniBusError < ProvisionerError; end

    # OmniBus Provisioner Class
    #
    # @author Zachary Patten <zachary AT jovelabs DOT com>
    class OmniBus

      def initialize(config={}, ui=nil)
        @config = (config || Hash.new)
        @ui     = (ui || TestLab.ui)

        @config[:version]     ||= %(latest)
        @config[:omnibus_url] ||= %(https://www.opscode.com/chef/install.sh)
      end

      # OmniBus Provisioner Container Setup
      #
      # Renders the defined script to a temporary file on the target container
      # and proceeds to execute said script as root via *lxc-attach*.
      #
      # @param [TestLab::Container] container The container which we want to
      #   provision.
      # @return [Boolean] True if successful.
      def setup(container)
        omnibus_template = File.join(TestLab::Provisioner.template_dir, 'chef', 'omnibus.erb')
        container.bootstrap(ZTK::Template.render(omnibus_template, @config))
      end

      # OmniBus Provisioner Container Teardown
      #
      # This is a NO-OP currently.
      #
      # @return [Boolean] True if successful.
      def teardown(container)
        # NOOP

        true
      end

    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
testlab-0.4.1 lib/testlab/provisioners/omnibus.rb
testlab-0.4.0 lib/testlab/provisioners/omnibus.rb