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