reports:samples:generate rake task now takes environment variable arguments for the number of nodes, statuses, and events, as well as the directory to store the sample reports in.
Paired-with:Matt Robinson Signed-off-by: Max Martin <[email protected]> --- Local-branch: feature/next/6531_report_generator lib/tasks/generate_sample_reports.rake | 29 +++++++++++++++++------------ 1 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/tasks/generate_sample_reports.rake b/lib/tasks/generate_sample_reports.rake index 3d88d1c..067ba3c 100644 --- a/lib/tasks/generate_sample_reports.rake +++ b/lib/tasks/generate_sample_reports.rake @@ -16,7 +16,7 @@ class Puppet::Transaction::Report attr_accessor :host, :time, :logs, :metrics, :resource_statuses, :configuration_version, :report_format, :puppet_version, :kind, :status - def self.generate + def self.generate(options) Puppet::Transaction::Report.new.tap do |report| report.host = DataGenerator.generate_hostname report.time = DataGenerator.generate_time @@ -28,8 +28,8 @@ class Puppet::Transaction::Report report.puppet_version = "2.6.5" report.kind = "apply" - 3.times do - resource_status = DataGenerator.generate_resource_status(report) + options[:num_statuses].times do + resource_status = DataGenerator.generate_resource_status(report, options) report.resource_statuses[resource_status.resource] = resource_status end @@ -58,7 +58,7 @@ class Puppet::Resource::Status :evaluation_time, :change_count, :out_of_sync_count, :tags, :time, :events, :out_of_sync, :changed, :skipped, :failed - def self.generate(report) + def self.generate(report, options) Puppet::Resource::Status.new.tap do |rs| rs.resource_type = "File" rs.title = File.join("/", (1..(rand(5)+2)).map {DataGenerator.generate_word}) @@ -76,7 +76,7 @@ class Puppet::Resource::Status rs.skipped = false rs.failed = rs.change_count > 0 && rand(100) < 10 - 3.times do + options[:num_events].times do event = DataGenerator.generate_resource_event(rs) rs.events << event end @@ -104,16 +104,16 @@ class Puppet::Transaction::Event end module DataGenerator - def self.generate_report - Puppet::Transaction::Report.generate + def self.generate_reports(options) + Puppet::Transaction::Report.generate(options) end def self.generate_resource_event(resource_status) Puppet::Transaction::Event.generate(resource_status) end - def self.generate_resource_status(report) - Puppet::Resource::Status.generate(report) + def self.generate_resource_status(report, options) + Puppet::Resource::Status.generate(report, options) end def self.generate_hostname @@ -170,15 +170,20 @@ end namespace :reports do namespace :samples do - desc "Generate sample YAML reports" + desc "Generate sample YAML reports with in REPORT_DIR with NUM_NODES, NUM_STATUSES, NUM_EVENTS" task :generate do DEFAULT_DIR = 'tmp/sample_reports' report_dir = ENV['REPORT_DIR'] || DEFAULT_DIR + options = { + :num_statuses => ENV['NUM_STATUSES'].to_i || 3, + :num_events => ENV['NUM_EVENTS'].to_i || 3, + } + num_nodes = ENV['NUM_NODES'].to_i || 100 FileUtils.mkdir_p(report_dir) - 100.times do - report = DataGenerator.generate_report + num_nodes.times do + report = DataGenerator.generate_reports(options) File.open("#{report_dir}/#{report.host}.yaml","w") do |f| f.print YAML.dump(report) end -- 1.7.4 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
