diff options
Diffstat (limited to 'vendor/supply_drop/lib/supply_drop/writer')
-rw-r--r-- | vendor/supply_drop/lib/supply_drop/writer/batched.rb | 22 | ||||
-rw-r--r-- | vendor/supply_drop/lib/supply_drop/writer/file.rb | 23 | ||||
-rw-r--r-- | vendor/supply_drop/lib/supply_drop/writer/streaming.rb | 16 |
3 files changed, 61 insertions, 0 deletions
diff --git a/vendor/supply_drop/lib/supply_drop/writer/batched.rb b/vendor/supply_drop/lib/supply_drop/writer/batched.rb new file mode 100644 index 0000000..e5fc826 --- /dev/null +++ b/vendor/supply_drop/lib/supply_drop/writer/batched.rb @@ -0,0 +1,22 @@ +module SupplyDrop + module Writer + class Batched + def initialize(logger) + @outputs = {} + @logger = logger + end + + def collect_output(host, data) + @outputs[host] ||= "" + @outputs[host] << data + end + + def all_output_collected + @outputs.keys.sort.each do |host| + @logger.info "Puppet output for #{host}" + @logger.debug @outputs[host], host + end + end + end + end +end diff --git a/vendor/supply_drop/lib/supply_drop/writer/file.rb b/vendor/supply_drop/lib/supply_drop/writer/file.rb new file mode 100644 index 0000000..61454d8 --- /dev/null +++ b/vendor/supply_drop/lib/supply_drop/writer/file.rb @@ -0,0 +1,23 @@ +module SupplyDrop + module Writer + class File + def initialize(writer, file) + @wrapped_writer = writer + @logger = Capistrano::Logger.new(:output => file) + @logger.level = Capistrano::Logger::TRACE + @file_writer = Batched.new(@logger) + end + + def collect_output(host, data) + @wrapped_writer.collect_output(host, data) + @file_writer.collect_output(host, data) + end + + def all_output_collected + @wrapped_writer.all_output_collected + @file_writer.all_output_collected + @logger.close + end + end + end +end diff --git a/vendor/supply_drop/lib/supply_drop/writer/streaming.rb b/vendor/supply_drop/lib/supply_drop/writer/streaming.rb new file mode 100644 index 0000000..e180ec8 --- /dev/null +++ b/vendor/supply_drop/lib/supply_drop/writer/streaming.rb @@ -0,0 +1,16 @@ +module SupplyDrop + module Writer + class Streaming + def initialize(logger) + @logger = logger + end + + def collect_output(host, data) + @logger.debug data, host + end + + def all_output_collected + end + end + end +end |