Sha256: a3fbd4bd66cd76a7f30fde64c81001e31d11a3eef76f735128930068a4c58004

Contents?: true

Size: 1.19 KB

Versions: 8

Compression:

Stored size: 1.19 KB

Contents

module Berkshelf
  module Vagrant
    module Action
      # @author Jamie Winsor <jamie@vialstudios.com>
      class Upload
        attr_reader :berksfile

        def initialize(app, env)
          @app       = app
          @berksfile = Berksfile.from_file(env[:vm].config.berkshelf.berksfile_path)
        end

        def call(env)
          if Berkshelf::Vagrant.chef_client?(env[:vm].config)
            upload(env)
          end

          @app.call(env)
        rescue BerkshelfError => e
          raise VagrantWrapperError.new(e)
        end

        private

          def upload(env)
            Berkshelf::Vagrant.provisioners(:chef_client, env[:vm].config).each do |provisioner|
              Berkshelf.formatter.msg "uploading cookbooks to '#{provisioner.config.chef_server_url}'"
              berksfile.upload(
                server_url: provisioner.config.chef_server_url,
                client_name: Berkshelf::Config.instance.chef.node_name,
                client_key: Berkshelf::Config.instance.chef.client_key,
                ssl: {
                  verify: Berkshelf::Config.instance.ssl.verify
                }
              )
            end
          end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
berkshelf-1.1.6 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.5 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.4 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.3 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.2 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.1 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.0 lib/berkshelf/vagrant/action/upload.rb
berkshelf-1.1.0.rc1 lib/berkshelf/vagrant/action/upload.rb