* [gentoo-commits] gentoo-x86 commit in app-admin/puppet/files: puppet-0.25.4-rrd.patch
@ 2010-02-28 3:04 Matsuu Takuto (matsuu)
0 siblings, 0 replies; only message in thread
From: Matsuu Takuto (matsuu) @ 2010-02-28 3:04 UTC (permalink / raw
To: gentoo-commits
matsuu 10/02/28 03:04:57
Added: puppet-0.25.4-rrd.patch
Log:
Version bumped. Fixed rrd issue, bug #294304.
(Portage version: 2.1.7.17/cvs/Linux x86_64)
Revision Changes Path
1.1 app-admin/puppet/files/puppet-0.25.4-rrd.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-admin/puppet/files/puppet-0.25.4-rrd.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-admin/puppet/files/puppet-0.25.4-rrd.patch?rev=1.1&content-type=text/plain
Index: puppet-0.25.4-rrd.patch
===================================================================
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-02-28 3:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-28 3:04 [gentoo-commits] gentoo-x86 commit in app-admin/puppet/files: puppet-0.25.4-rrd.patch Matsuu Takuto (matsuu)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox