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.