lib/lbrt/space.rb in lbrt-0.1.6 vs lib/lbrt/space.rb in lbrt-0.1.7

- old
+ new

@@ -82,19 +82,27 @@ def walk_charts(space_name_or_id, space_id, expected, actual) updated = false expected.each do |name_or_id, expected_chart| - actual_chart = actual.delete(name_or_id) + begin + actual_chart = actual.delete(name_or_id) - if not actual_chart and name_or_id.is_a?(Integer) - actual_chart = actual.values.find {|i| i['id'] == name_or_id } - end + if not actual_chart and name_or_id.is_a?(Integer) + actual_chart = actual.values.find {|i| i['id'] == name_or_id } + end - if actual_chart - updated = walk_chart(space_name_or_id, space_id, name_or_id, expected_chart, actual_chart) || updated - else - updated = @driver.create_chart(space_name_or_id, space_id, name_or_id, expected_chart) || updated + if actual_chart + updated = walk_chart(space_name_or_id, space_id, name_or_id, expected_chart, actual_chart) || updated + else + updated = @driver.create_chart(space_name_or_id, space_id, name_or_id, expected_chart) || updated + end + rescue Librato::Client::Error => e + if @options[:ignore_no_metric] and e.cause.response[:body] =~ /no metric/ + log(:warn, e.message, :color => :yellow) + else + raise e + end end end actual.each do |name_or_id, actual_chart| updated = @driver.delete_chart(space_name_or_id, space_id, name_or_id, actual_chart) || updated