Paired-with: Jesse Wolfe <[email protected]>
Signed-off-by: Paul Berry <[email protected]>
---
Local-branch: ticket/next/5743
 lib/puppet/report.rb           |   42 -----------------------------
 lib/report_transformer.rb      |   57 ++++++++++++++++++++++++++--------------
 spec/lib/puppet/report_spec.rb |   30 ---------------------
 spec/models/report_spec.rb     |   10 +++----
 4 files changed, 41 insertions(+), 98 deletions(-)

diff --git a/lib/puppet/report.rb b/lib/puppet/report.rb
index 5eab787..31e94ea 100644
--- a/lib/puppet/report.rb
+++ b/lib/puppet/report.rb
@@ -29,24 +29,6 @@ module Puppet #:nodoc:
           "metrics" => metrics.values.map(&:to_hash).inject({},&:merge)
         }
       end
-
-      def configuration_version_from_log_objects
-        logs.each do |log|
-          if log.version and log.source != "Puppet"
-            return log.version.to_s
-          end
-        end
-        nil
-      end
-
-      def configuration_version_from_log_message
-        logs.each do |log|
-          if log.message =~ /^Applying configuration version '(.*)'$/
-            return $1
-          end
-        end
-        nil
-      end
     end
 
     class Event
@@ -149,33 +131,9 @@ module ReportExtensions #:nodoc:
         hash
       end
 
-      def kind
-        @kind || "apply"
-      end
-
       def report_format
         1
       end
-
-      def puppet_version
-        logs.each do |log|
-          if log.version and log.source == "Puppet"
-            return log.version
-          end
-        end
-        "2.6.x"
-      end
-
-      def configuration_version
-        configuration_version_from_resource_statuses || 
configuration_version_from_log_objects || 
configuration_version_from_log_message 
-      end
-
-      def configuration_version_from_resource_statuses
-        resource_statuses.values.each do |resource_status|
-          return resource_status.version.to_s if resource_status.version
-        end
-        nil
-      end
     end
 
     module Resource
diff --git a/lib/report_transformer.rb b/lib/report_transformer.rb
index b326347..80c8270 100644
--- a/lib/report_transformer.rb
+++ b/lib/report_transformer.rb
@@ -31,29 +31,9 @@ class ReportTransformer::ZeroToOne < 
ReportTransformer::ReportTransformation
 
   def self.transform(report)
     report["resource_statuses"] = {}
-    report["kind"] = "apply"
-    report["configuration_version"] = 
configuration_version_from_log_objects(report) || 
configuration_version_from_log_message(report)
     report["puppet_version"] = "0.25.x"
     report
   end
-
-  def self.configuration_version_from_log_objects(report)
-    report["logs"].each do |log|
-      if log["version"] and log["source"] != "Puppet"
-        return log["version"].to_s
-      end
-    end
-    nil
-  end
-
-  def self.configuration_version_from_log_message(report)
-    report["logs"].each do |log|
-      if log["message"] =~ /^Applying configuration version '(.*)'$/
-        return $1
-      end
-    end
-    nil
-  end
 end
 
 class ReportTransformer::OneToTwo < ReportTransformer::ReportTransformation
@@ -67,6 +47,9 @@ class ReportTransformer::OneToTwo < 
ReportTransformer::ReportTransformation
     end
 
     report["status"] = failed_resources?(report) ? 'failed' : 
changed_resources?(report) ? 'changed' : 'unchanged'
+    report["configuration_version"] = 
configuration_version_from_resource_statuses(report) || 
configuration_version_from_log_objects(report) || 
configuration_version_from_log_message(report)
+    report["kind"] = "apply"
+    report["puppet_version"] ||= puppet_version(report) # If it started as a 
v0 report, we've already filled in puppet_version
     report["resource_statuses"].values.each do |resource_status|
       resource_status.delete("version")
     end
@@ -84,4 +67,38 @@ class ReportTransformer::OneToTwo < 
ReportTransformer::ReportTransformation
   def self.changed_resources?(report)
     (report["metrics"] and report["metrics"]["changes"] and 
report["metrics"]["changes"]["total"] or 0) > 0
   end
+
+  def self.puppet_version(report)
+    report["logs"].each do |log|
+      if log["version"] and log["source"] == "Puppet"
+        return log["version"]
+      end
+    end
+    "2.6.x"
+  end
+
+  def self.configuration_version_from_resource_statuses(report)
+    report["resource_statuses"].values.each do |resource_status|
+      return resource_status["version"].to_s if resource_status["version"]
+    end
+    nil
+  end
+
+  def self.configuration_version_from_log_objects(report)
+    report["logs"].each do |log|
+      if log["version"] and log["source"] != "Puppet"
+        return log["version"].to_s
+      end
+    end
+    nil
+  end
+
+  def self.configuration_version_from_log_message(report)
+    report["logs"].each do |log|
+      if log["message"] =~ /^Applying configuration version '(.*)'$/
+        return $1
+      end
+    end
+    nil
+  end
 end
diff --git a/spec/lib/puppet/report_spec.rb b/spec/lib/puppet/report_spec.rb
index ce1b97c..f7c1ab6 100644
--- a/spec/lib/puppet/report_spec.rb
+++ b/spec/lib/puppet/report_spec.rb
@@ -110,18 +110,6 @@ describe Puppet::Transaction::Report do
           }
         }
       end
-
-      describe "#configuration_version_from_log_objects" do
-        it "should return the configuration version" do
-          @report.configuration_version_from_log_objects.should == "1258679330"
-        end
-      end
-
-      describe "#configuration_version_from_log_message" do
-        it "should return the configuration version" do
-          @report.configuration_version_from_log_message.should == "1258679330"
-        end
-      end
     end
 
     describe "for a format 1 report" do
@@ -398,24 +386,6 @@ describe Puppet::Transaction::Report do
           }
         }
       end
-
-      describe "#configuration_version_from_log_objects" do
-        it "should return the configuration version" do
-          @report.configuration_version_from_log_objects.should == "1279826342"
-        end
-      end
-
-      describe "#configuration_version_from_log_message" do
-        it "should return the configuration version" do
-          @report.configuration_version_from_log_message.should == "1279826342"
-        end
-      end
-
-      describe "#configuration_version_from_resource_statuses" do
-        it "should return the configuration version" do
-          @report.configuration_version_from_resource_statuses.should == 
"1279826342"
-        end
-      end
     end
   end
 end
diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb
index 0494883..a2b21f4 100644
--- a/spec/models/report_spec.rb
+++ b/spec/models/report_spec.rb
@@ -233,7 +233,7 @@ HEREDOC
 
     describe ".inspections" do
       it "should include inspect reports" do
-        pending # generate_report uses YAML, which is currently being reworked.
+        pending # This test is using a version 1 inspect report, which should 
never happen.
         @report = generate_report(Time.now, "file", "foo")
         @report.save!
         Report.inspections.should == [...@report]
@@ -395,11 +395,9 @@ HEREDOC
           ['notice', "ensure changed 'stopped' to 'running'", 
'/Stage[main]//Node[default]/Service[mysqld]/ensure', ['class', 'default', 
'mysqld', 'node', 'notice', 'service'], file, 8 ],
         ]
 
-      pending {
-        report.configuration_version.should == '1279826342'
-        report.puppet_version.should == '2.6.0'
-        report.status.should == 'changed'
-      }
+      report.configuration_version.should == '1279826342'
+      report.puppet_version.should == '2.6.0'
+      report.status.should == 'changed'
     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