Sha256: 065d2c34d267ee838f22a130cbe41f6ac2309c885512c5420c427d1d5cc55eee

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

require 'log4r'
require_relative "mixin_machine_index"

module VagrantPlugins
  module Skytap
    module Action
      # Stores some provider-specific data in Vagrant's global machine index.
      class StoreExtraData
        include MixinMachineIndex
        attr_reader :env

        def initialize(app, env)
          @app = app
          @env = env
          @logger = Log4r::Logger.new("vagrant_skytap::action::store_extra_data")
        end

        def call(env)
          entry = machine_index_entry
          unless entry.extra_data.has_key?('vm_id')
            entry.extra_data.merge!(provider_extra_data)
            entry = machine_index.set(entry)
          end
          machine_index.release(entry)

          @app.call(env)
        end

        def provider_extra_data
          {
            'vm_id' => env[:machine].id
          }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vagrant-skytap-0.2.3 lib/vagrant-skytap/action/store_extra_data.rb