Sha256: 0e007e69a15cee89f11750eb027da0add0ab67c5fc8e82ec7858cd769141bff0

Contents?: true

Size: 1.25 KB

Versions: 49

Compression:

Stored size: 1.25 KB

Contents

# encoding: utf-8
# copyright: 2015, Dominik Richter
# license: All rights reserved
# author: Dominik Richter
# author: Christoph Hartmann

require 'train'

module Inspec
  module Backend
    # Create the transport backend with aggregated resources.
    #
    # @param [Hash] config for the transport backend
    # @return [TransportBackend] enriched transport instance
    def self.create(config)
      conf = Train.target_config(config)
      name = Train.validate_backend(conf)
      transport = Train.create(name, conf)
      if transport.nil?
        fail "Can't find transport backend '#{name}'."
      end

      connection = transport.connection
      if connection.nil?
        fail "Can't connect to transport backend '#{name}'."
      end

      cls = Class.new do
        define_method :backend do
          connection
        end
        Inspec::Resource.registry.each do |id, r|
          define_method id.to_sym do |*args|
            r.new(self, id.to_s, *args)
          end
        end
      end

      cls.new

    rescue Train::ClientError => e
      raise "Client error, can't connect to '#{name}' backend: #{e.message}"
    rescue Train::TransportError => e
      raise "Transport error, can't connect to '#{name}' backend: #{e.message}"
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
inspec-1.13.0 lib/inspec/backend.rb
inspec-1.12.0 lib/inspec/backend.rb
inspec-1.11.0 lib/inspec/backend.rb
inspec-1.10.0 lib/inspec/backend.rb
inspec-1.9.0 lib/inspec/backend.rb
inspec-1.8.0 lib/inspec/backend.rb
inspec-1.7.2 lib/inspec/backend.rb
inspec-1.7.1 lib/inspec/backend.rb
inspec-1.7.0 lib/inspec/backend.rb
inspec-1.6.0 lib/inspec/backend.rb
inspec-1.5.0 lib/inspec/backend.rb
inspec-1.4.1 lib/inspec/backend.rb
inspec-1.4.0 lib/inspec/backend.rb
inspec-1.3.0 lib/inspec/backend.rb
inspec-1.2.1 lib/inspec/backend.rb
inspec-1.2.0 lib/inspec/backend.rb
inspec-1.1.0 lib/inspec/backend.rb
inspec-1.0.0 lib/inspec/backend.rb
inspec-1.0.0.beta3 lib/inspec/backend.rb
inspec-1.0.0.beta2 lib/inspec/backend.rb