Paired-with: Jesse Wolfe <[email protected]>
Signed-off-by: Paul Berry <[email protected]>
---
Local-branch: ticket/next/5743
 ...10106002514_add_skipped_to_resource_statuses.rb |    9 +++++++++
 db/schema.rb                                       |    3 ++-
 lib/puppet/report.rb                               |    5 +++--
 lib/report_transformer.rb                          |    1 +
 spec/lib/puppet/report_spec.rb                     |    9 +++++++++
 spec/lib/report_transformer_spec.rb                |    7 +++++++
 6 files changed, 31 insertions(+), 3 deletions(-)
 create mode 100644 
db/migrate/20110106002514_add_skipped_to_resource_statuses.rb

diff --git a/db/migrate/20110106002514_add_skipped_to_resource_statuses.rb 
b/db/migrate/20110106002514_add_skipped_to_resource_statuses.rb
new file mode 100644
index 0000000..5131f09
--- /dev/null
+++ b/db/migrate/20110106002514_add_skipped_to_resource_statuses.rb
@@ -0,0 +1,9 @@
+class AddSkippedToResourceStatuses < ActiveRecord::Migration
+  def self.up
+    add_column :resource_statuses, :skipped, :boolean
+  end
+
+  def self.down
+    remove_column :resource_statuses, :skipped
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 8e0f2a6..67b40f7 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -9,7 +9,7 @@
 #
 # It's strongly recommended to check this file into your version control 
system.
 
-ActiveRecord::Schema.define(:version => 20110105234202) do
+ActiveRecord::Schema.define(:version => 20110106002514) do
 
   create_table "assignments", :force => true do |t|
     t.integer  "node_id"
@@ -152,6 +152,7 @@ ActiveRecord::Schema.define(:version => 20110105234202) do
     t.integer  "change_count"
     t.boolean  "out_of_sync"
     t.integer  "out_of_sync_count"
+    t.boolean  "skipped"
   end
 
   add_index "resource_statuses", ["report_id"], :name => 
"index_resource_statuses_on_report_id"
diff --git a/lib/puppet/report.rb b/lib/puppet/report.rb
index 5ca7932..2182168 100644
--- a/lib/puppet/report.rb
+++ b/lib/puppet/report.rb
@@ -88,7 +88,7 @@ module Puppet #:nodoc:
     class Status
       attr_reader :evaluation_time, :resource, :tags,
       :file, :events, :time, :line, :changed, :change_count,
-      :out_of_sync
+      :out_of_sync, :skipped
 
       def to_hash
         {
@@ -99,7 +99,8 @@ module Puppet #:nodoc:
           "time" => time,
           "change_count" => change_count || 0,
           "out_of_sync" => out_of_sync,
-          "events" => events.map(&:to_hash)
+          "events" => events.map(&:to_hash),
+          "skipped" => skipped
         }
       end
     end
diff --git a/lib/report_transformer.rb b/lib/report_transformer.rb
index 72c5d17..3c535f2 100644
--- a/lib/report_transformer.rb
+++ b/lib/report_transformer.rb
@@ -70,6 +70,7 @@ class ReportTransformer::OneToTwo < 
ReportTransformer::ReportTransformation
     report["resource_statuses"].each do |key, resource_status|
       key =~ /^(.+?)\[(.+)\]$/
       resource_status["resource_type"], resource_status["title"] = $1, $2
+      resource_status["skipped"] ||= false # ensure that we represent 
falsehood as "false", not "nil"
       resource_status["out_of_sync_count"] = resource_status["change_count"]
       resource_status["events"].each do |event|
         event["audited"] = event["status"] == "audit"
diff --git a/spec/lib/puppet/report_spec.rb b/spec/lib/puppet/report_spec.rb
index ccb98ff..21996d6 100644
--- a/spec/lib/puppet/report_spec.rb
+++ b/spec/lib/puppet/report_spec.rb
@@ -207,6 +207,7 @@ describe Puppet::Transaction::Report do
         resource_statuses = hash["resource_statuses"]
         resource_statuses.should == {
           "Schedule[monthly]" => {
+            "skipped"            => nil,
             "line"               => nil,
             "change_count"       => 0,
             "time"               => Time.parse("2010-07-22 12:19:47.260865 
-07:00"),
@@ -221,6 +222,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Filebucket[puppet]" => {
+            "skipped"            => nil,
             "line"               => nil,
             "change_count"       => 0,
             "time"               => Time.parse("2010-07-22 12:19:47.365218 
-07:00"),
@@ -235,6 +237,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Service[mysqld]" => {
+            "skipped"            => nil,
             "line"               => 8,
             "change_count"       => 1,
             "time"               => Time.parse("2010-07-22 12:19:47.367360 
-07:00"),
@@ -260,6 +263,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Schedule[never]" => {
+            "skipped"            => nil,
             "line"               => nil,
             "change_count"       => 0,
             "time"               => Time.parse("2010-07-22 12:19:47.365927 
-07:00"),
@@ -274,6 +278,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Schedule[weekly]" => {
+            "skipped"            => nil,
             "line"               => nil,
             "change_count"       => 0,
             "time"               => Time.parse("2010-07-22 12:19:47.364377 
-07:00"),
@@ -288,6 +293,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Exec[/bin/true]" => {
+            "skipped"            => nil,
             "line"               => 9,
             "change_count"       => 1,
             "time"               => Time.parse("2010-07-22 12:19:47.262652 
-07:00"),
@@ -312,6 +318,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Schedule[puppet]" => {
+            "skipped"            => nil,
             "line"               => nil,
             "change_count"       => 0,
             "time"               => Time.parse("2010-07-22 12:19:48.923135 
-07:00"),
@@ -326,6 +333,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Schedule[daily]" => {
+            "skipped"         => nil,
             "line"            => nil,
             "change_count"    => 0,
             "time"            => Time.parse("2010-07-22 12:19:47.366606 
-07:00"),
@@ -340,6 +348,7 @@ describe Puppet::Transaction::Report do
             "version"            => 1279826342
           },
           "Schedule[hourly]" => {
+            "skipped"         => nil,
             "line"            => nil,
             "change_count"    => 0,
             "time"            => Time.parse("2010-07-22 12:19:47.261846 
-07:00"),
diff --git a/spec/lib/report_transformer_spec.rb 
b/spec/lib/report_transformer_spec.rb
index fd036a0..01d5c3e 100644
--- a/spec/lib/report_transformer_spec.rb
+++ b/spec/lib/report_transformer_spec.rb
@@ -215,5 +215,12 @@ describe ReportTransformer do
       report["metrics"].should == {}
       report["status"].should == 'failed'
     end
+
+    it "should set skipped to false on any resources that weren't skipped" do
+      report = ReportTransformer::OneToTwo.apply(@report)
+      report["resource_statuses"].values.each do |resource_status|
+        resource_status["skipped"].should == false
+      end
+    end
   end
 end
-- 
1.7.2

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to