summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2010-02-28 03:04:56 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2010-02-28 03:04:56 +0000
commit7abd0675708c79e223ba43886dd3a8801fa21df7 (patch)
treed383d01fe761ceea336bfd647e4499e557144f1e /app-admin/puppet/files
parentdev-util/git: Sync live ebuild with latest (bug #305157) (diff)
downloadhistorical-7abd0675708c79e223ba43886dd3a8801fa21df7.tar.gz
historical-7abd0675708c79e223ba43886dd3a8801fa21df7.tar.bz2
historical-7abd0675708c79e223ba43886dd3a8801fa21df7.zip
Version bumped. Fixed rrd issue, bug #294304.
Package-Manager: portage-2.1.7.17/cvs/Linux x86_64
Diffstat (limited to 'app-admin/puppet/files')
-rw-r--r--app-admin/puppet/files/puppet-0.25.4-rrd.patch189
1 files changed, 189 insertions, 0 deletions
diff --git a/app-admin/puppet/files/puppet-0.25.4-rrd.patch b/app-admin/puppet/files/puppet-0.25.4-rrd.patch
new file mode 100644
index 000000000000..ef0de5ad5c00
--- /dev/null
+++ b/app-admin/puppet/files/puppet-0.25.4-rrd.patch
@@ -0,0 +1,189 @@
+diff -Naur puppet-0.25.4.orig//lib/puppet/feature/base.rb puppet-0.25.4//lib/puppet/feature/base.rb
+--- puppet-0.25.4.orig//lib/puppet/feature/base.rb 2010-01-28 12:48:33.000000000 +0900
++++ puppet-0.25.4//lib/puppet/feature/base.rb 2010-02-28 11:36:28.000000000 +0900
+@@ -27,7 +27,7 @@
+ Puppet.features.add(:augeas, :libs => ["augeas"])
+
+ # We have RRD available
+-Puppet.features.add(:rrd, :libs => ["RRDtool"])
++Puppet.features.add(:rrd, :libs => ["RRD"])
+
+ # We have OpenSSL
+ Puppet.features.add(:openssl, :libs => ["openssl"])
+diff -Naur puppet-0.25.4.orig//lib/puppet/reports/rrdgraph.rb puppet-0.25.4//lib/puppet/reports/rrdgraph.rb
+--- puppet-0.25.4.orig//lib/puppet/reports/rrdgraph.rb 2010-01-28 12:48:34.000000000 +0900
++++ puppet-0.25.4//lib/puppet/reports/rrdgraph.rb 2010-02-28 11:35:34.000000000 +0900
+@@ -1,12 +1,13 @@
+ Puppet::Reports.register_report(:rrdgraph) do
+ desc "Graph all available data about hosts using the RRD library. You
+ must have the Ruby RRDtool library installed to use this report, which
+- you can get from `the RubyRRDTool RubyForge page`_. This package may also
+- be available as ``ruby-rrd`` or ``rrdtool-ruby`` in your distribution's package
++ is bundled in RRDtool, which you can get from `the RRDTool homepage`_.
++ This package may also be available as ``librrd-ruby``, ``ruby-rrd`` or
++ ``rrdtool-ruby`` in your distribution's package
+ management system. The library and/or package will both require the binary
+ ``rrdtool`` package from your distribution to be installed.
+
+- .. _the RubyRRDTool RubyForge page: http://rubyforge.org/projects/rubyrrdtool/
++ .. _the RRDTool homepage: http://oss.oetiker.ch/rrdtool/download.en.html
+
+ This report will create, manage, and graph RRD database files for each
+ of the metrics generated during transactions, and it will create a
+diff -Naur puppet-0.25.4.orig//lib/puppet/util/metric.rb puppet-0.25.4//lib/puppet/util/metric.rb
+--- puppet-0.25.4.orig//lib/puppet/util/metric.rb 2010-01-28 12:48:34.000000000 +0900
++++ puppet-0.25.4//lib/puppet/util/metric.rb 2010-02-28 11:35:34.000000000 +0900
+@@ -1,5 +1,6 @@
+ # included so we can test object types
+ require 'puppet'
++require 'RRD'
+
+ # A class for handling metrics. This is currently ridiculously hackish.
+ class Puppet::Util::Metric
+@@ -31,7 +32,6 @@
+
+ start ||= Time.now.to_i - 5
+
+- @rrd = RRDtool.new(self.path)
+ args = []
+
+ values.each { |value|
+@@ -42,14 +42,17 @@
+ args.push "RRA:AVERAGE:0.5:1:300"
+
+ begin
+- @rrd.create( Puppet[:rrdinterval].to_i, start, args)
++ RRD.create(self.path,
++ "--start", start.to_s,
++ "--step", Puppet[:rrdinterval].to_i,
++ *args)
+ rescue => detail
+ raise "Could not create RRD file %s: %s" % [path,detail]
+ end
+ end
+
+ def dump
+- puts @rrd.info
++ puts RRD.info(self.path)
+ end
+
+ def graph(range = nil)
+@@ -84,12 +87,12 @@
+ if range
+ args.push("--start",range[0],"--end",range[1])
+ else
+- args.push("--start", Time.now.to_i - time, "--end", Time.now.to_i)
++ args.push("--start", (Time.now.to_i - time).to_s, "--end", Time.now.to_i.to_s)
+ end
+
+ begin
+- #Puppet.warning "args = #{args}"
+- RRDtool.graph( args )
++ #Puppet.warning "args = #{args.join("|")}"
++ RRD.graph( * args )
+ rescue => detail
+ Puppet.err "Failed to graph %s: %s" % [self.name,detail]
+ end
+@@ -122,7 +125,6 @@
+ self.create(time - 5)
+ end
+
+- @rrd ||= RRDtool.new(self.path)
+
+ # XXX this is not terribly error-resistant
+ args = [time]
+@@ -135,7 +137,9 @@
+ arg = args.join(":")
+ template = temps.join(":")
+ begin
+- @rrd.update( template, [ arg ] )
++ RRD.update(self.path,
++ "--template", template,
++ arg )
+ #system("rrdtool updatev %s '%s'" % [self.path, arg])
+ rescue => detail
+ raise Puppet::Error, "Failed to update %s: %s" % [self.name,detail]
+diff -Naur puppet-0.25.4.orig//spec/unit/util/metric.rb puppet-0.25.4//spec/unit/util/metric.rb
+--- puppet-0.25.4.orig//spec/unit/util/metric.rb 2010-01-28 12:48:34.000000000 +0900
++++ puppet-0.25.4//spec/unit/util/metric.rb 2010-02-28 11:35:34.000000000 +0900
+@@ -7,6 +7,13 @@
+ describe Puppet::Util::Metric do
+ before do
+ @metric = Puppet::Util::Metric.new("foo")
++ #if we don't retrive it before the test the :rrddir test will
++ #fail at after
++ @basedir = @metric.basedir
++ end
++
++ after do
++ FileUtils.rm_rf(@basedir) if File.directory?(@basedir)
+ end
+
+ it "should be aliased to Puppet::Metric" do
+@@ -84,12 +91,46 @@
+ @metric[:foo].should be_nil
+ end
+
+- # LAK: I'm not taking the time to develop these tests right now.
+- # I expect they should actually be extracted into a separate class
+- # anyway.
+- it "should be able to graph metrics using RRDTool"
+-
+- it "should be able to create a new RRDTool database"
+-
+- it "should be able to store metrics into an RRDTool database"
++ it "should be able to graph metrics using RRDTool" do
++ ensure_rrd_folder
++ populate_metric
++ @metric.graph
++ end
++
++ it "should be able to create a new RRDTool database" do
++ ensure_rrd_folder
++ add_random_values_to_metric
++ @metric.create
++ File.exist?(@metric.path).should == true
++ end
++
++ it "should be able to store metrics into an RRDTool database" do
++ ensure_rrd_folder
++ populate_metric
++ File.exist?(@metric.path).should == true
++ end
++
++ def ensure_rrd_folder()
++ #in normal runs puppet does this for us (not sure where)
++ FileUtils.mkdir_p(@basedir) unless File.directory?(@basedir)
++ end
++
++ def populate_metric()
++ time = Time.now.to_i
++ time -= 100 * 1800
++ 200.times {
++ @metric = Puppet::Util::Metric.new("foo")
++ add_random_values_to_metric
++ @metric.store(time)
++ time += 1800
++ }
++ end
++
++ def add_random_values_to_metric()
++ @metric.values.clear
++ random_params = { :data1 => 10, :data2 => 30, :data3 => 100 }
++ random_params.each { | label, maxvalue |
++ @metric.newvalue(label, rand(maxvalue))
++ }
++ end
+ end
+diff -Naur puppet-0.25.4.orig//test/util/metrics.rb puppet-0.25.4//test/util/metrics.rb
+--- puppet-0.25.4.orig//test/util/metrics.rb 2010-01-28 12:48:34.000000000 +0900
++++ puppet-0.25.4//test/util/metrics.rb 2010-02-28 11:35:34.000000000 +0900
+@@ -53,6 +53,8 @@
+ report = Puppet::Transaction::Report.new
+ time = Time.now.to_i
+ start = time
++ #in normal runs puppet does this for us (not sure where)
++ Dir.mkdir(Puppet[:rrddir]) unless File.directory?(Puppet[:rrddir])
+ 10.times {
+ rundata(report, time)
+ time += 300