inspec/lib/vulcano/backend.rb
Dominik Richter 1e0405bf74 allow for empty config in target_config
Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
2015-09-28 13:03:05 +02:00

44 lines
1.2 KiB
Ruby

# encoding: utf-8
require 'uri'
require 'vulcano/plugins'
module Vulcano
class Backend
# Expose all registered backends
def self.registry
@registry ||= {}
end
# Resolve target configuration in URI-scheme into
# all respective fields and merge with existing configuration.
# e.g. ssh://bob@remote => backend: ssh, user: bob, host: remote
def self.target_config(config = nil)
conf = config.nil? ? {} : config.dup
return conf if conf['target'].to_s.empty?
uri = URI.parse(conf['target'].to_s)
conf['backend'] = conf['backend'] || uri.scheme
conf['host'] = conf['host'] || uri.host
conf['port'] = conf['port'] || uri.port
conf['user'] = conf['user'] || uri.user
conf['password'] = conf['password'] || uri.password
# return the updated config
conf
end
end
def self.backend(version = 1)
if version != 1
fail 'Only backend version 1 is supported!'
end
Vulcano::Plugins::Backend
end
end
require 'vulcano/backend/docker'
require 'vulcano/backend/local'
require 'vulcano/backend/mock'
require 'vulcano/backend/specinfra'
require 'vulcano/backend/ssh'