sensu-plugins / sensu-plugins-ssl

This plugin provides native SSL instrumentation for monitoring, including: hostname and chain verification, cert expiry, and Qualys SSL Labs reporting
http://sensu-plugins.io
MIT License
15 stars 47 forks source link

Some Qualsys results can be returned without a grade, causing an exception. #15

Open TheMysteriousX opened 8 years ago

TheMysteriousX commented 8 years ago

This can happen when a domain resolves to multiple addresses, but only some of them are responsive.

My initial thought (and my fix on my own system) was just to compact ssl_grades before sorting it.

Some users might not want errors like that to be handled silently though, so I'm not sure what solution you'd want to implement.

The current behaviour though is just to throw an exception:

Check failed to run: comparison of NilClass with 7 failed, [
"/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-ssl-1.0.0/bin/check-ssl-qualys.rb:120:in `sort_by'",
"/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-ssl-1.0.0/bin/check-ssl-qualys.rb:120:in `sort_by!'",
"/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-ssl-1.0.0/bin/check-ssl-qualys.rb:120:in `lowest_grade'",
"/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-ssl-1.0.0/bin/check-ssl-qualys.rb:124:in `run'",
"/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugin-1.3.0/lib/sensu-plugin/cli.rb:57:in `block in <class:CLI>'"
] 
eheydrick commented 7 years ago

Throwing an exception isn't great. Perhaps we should add an option to discard ungraded results.

majormoses commented 7 years ago

@TheMysteriousX could you put together a pr for this?