diff options
| -rw-r--r-- | app/models/compliance_check_set.rb | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb index bd8123b25..062c5f4a4 100644 --- a/app/models/compliance_check_set.rb +++ b/app/models/compliance_check_set.rb @@ -19,15 +19,28 @@ class ComplianceCheckSet < ActiveRecord::Base end def update_status - compliance_check_resources.each do |resource| + statuses = compliance_check_resources.map do |resource| case resource.status - when 'OK' - update(status: 'successful') when 'ERROR' update(status: 'failed') + return when 'WARNING' update(status: 'warning') + return + else + resource.status end end + + if all_statuses_are_ok(statuses) + update(status: 'successful') + end + end + + private + + def all_statuses_are_ok(statuses) + uniform_statuses = statuses.uniq + uniform_statuses.length == 1 && uniform_statuses.first == 'OK' end end |
