class Sensu::Translator::Runner
Public Class Methods
new()
click to toggle source
# File lib/sensu/translator.rb, line 15 def initialize @options = CLI.read end
Public Instance Methods
create_go_output_files!(go_resources)
click to toggle source
# File lib/sensu/translator.rb, line 40 def create_go_output_files!(go_resources) output_dir = @options[:output_dir] Sensu::Settings::CATEGORIES.each do |category| category_dir = File.join(output_dir, category.to_s) FileUtils.mkdir_p(category_dir) end go_resources.each do |go_resource| category = "#{go_resource[:type].downcase}s" file_name = "#{go_resource[:metadata][:name]}.json" output_file = File.join(output_dir, category, file_name) content = Sensu::JSON.dump(go_resource, :pretty => true) File.open(output_file, "w") do |file| file.write(content) end end end
load_v1_settings()
click to toggle source
# File lib/sensu/translator.rb, line 19 def load_v1_settings settings = Sensu::Settings.load(@options) unless settings.errors.empty? puts "Sensu 1.x configuration is invalid!" puts Sensu::JSON.dump({:errors => settings.errors}, :pretty => true) exit 2 end settings.to_hash end
run()
click to toggle source
# File lib/sensu/translator.rb, line 57 def run v1_settings = load_v1_settings go_resources = translate(v1_settings) create_go_output_files!(go_resources) puts "DONE!" end
translate(v1_settings)
click to toggle source
# File lib/sensu/translator.rb, line 29 def translate(v1_settings) go_resources = [] Sensu::Settings::CATEGORIES.each do |category| method_name = "translate_#{category.to_s.chop}" v1_settings[category].each do |name, object| go_resources << send(method_name, object, @options[:namespace], name) end end go_resources.compact end