fluke/devops-service/lib/knife/knife_factory.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

28 lines
757 B
Ruby

require "commands/knife_commands"
class KnifeFactory
@instance = nil
class << self
def init
c = DevopsConfig.config[:knife_config_file]
raise "Option ':knife_config_file' is undefined or is not a Hash({key => config}), please check config.rb file" unless c.is_a?(Hash)
@instance = {}
c.each do |key, config|
@instance[key] = KnifeCommands.new(config)
DevopsLogger.logger.info("Knife #{key} instance has been initialized with config '#{config}'")
end
end
def instance key
res = @instance[key]
raise Devops::Exception::KnifeConfigError.new "Can not find configuration for chef environment '#{key}'" if res.nil?
res
end
def keys
@instance.keys
end
end
end