Sha256: cc1cba5dd5682070012e55af7ce94ea1227959786ceb26bb582cf4e3c284d1ed
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 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? raise "Can't find transport backend '#{name}'." end connection = transport.connection if connection.nil? raise "Can't connect to transport backend '#{name}'." end cls = Class.new do # Ruby internal for printing a nice name for this class def to_s 'Inspec::Backend::Class' end # Ruby internal for pretty-printing a summary for this class def inspect "Inspec::Backend::Class @transport=#{backend.class}" end # Provide a shorthand to retrieve the inspec version from within a profile # # @return [String] inspec version def version Inspec::VERSION end 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
inspec-1.22.0 | lib/inspec/backend.rb |