Advertisement
Guest User

Untitled

a guest
Aug 11th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'json'
  3. require 'csv'
  4.  
  5. unless ARGV.first
  6. puts "Usage: HAMMER_USER=admin HAMMER_PASSWORD=changeme rex_outputs.rb JOB_INVOCATION_ID"
  7. exit 1
  8. else
  9. @job_invocation_id = ARGV.first
  10. end
  11.  
  12. @hammer_user = ENV['HAMMER_USER'] || 'admin'
  13. @hammer_password = ENV['HAMMER_PASSWORD'] || 'changeme'
  14.  
  15. def hammer(args)
  16. command = "hammer -u #{@hammer_user} -p #{@hammer_password} #{args}"
  17. `#{command}`
  18. end
  19.  
  20. def hammer_yaml(args)
  21. data = hammer("--output json #{args}")
  22. if $?.success?
  23. JSON.parse(data)
  24. else
  25. puts data
  26. exit 2
  27. end
  28. end
  29.  
  30. data = hammer_yaml("job-invocation info --id #{@job_invocation_id}")
  31. hosts = data['Hosts'].lines.map { |l| l[/\S+$/] }.compact
  32. out = CSV.generate do |csv|
  33. hosts.each do |host|
  34. csv << [host, hammer("job-invocation output --id #{@job_invocation_id} --host #{host}")]
  35. end
  36. end
  37. puts out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement