diff options
author | Matsuu Takuto <matsuu@gentoo.org> | 2010-02-28 03:04:56 +0000 |
---|---|---|
committer | Matsuu Takuto <matsuu@gentoo.org> | 2010-02-28 03:04:56 +0000 |
commit | 3a8ed51f3e9106a5aa94a762e64c8cf94164ae3f (patch) | |
tree | f27add891faec405cfb64b709c93a4a7d5ada793 /app-admin | |
parent | dev-util/git: Sync live ebuild with latest (bug #305157) (diff) | |
download | gentoo-2-3a8ed51f3e9106a5aa94a762e64c8cf94164ae3f.tar.gz gentoo-2-3a8ed51f3e9106a5aa94a762e64c8cf94164ae3f.tar.bz2 gentoo-2-3a8ed51f3e9106a5aa94a762e64c8cf94164ae3f.zip |
Version bumped. Fixed rrd issue, bug #294304.
(Portage version: 2.1.7.17/cvs/Linux x86_64)
Diffstat (limited to 'app-admin')
-rw-r--r-- | app-admin/puppet/ChangeLog | 8 | ||||
-rw-r--r-- | app-admin/puppet/files/puppet-0.25.4-rrd.patch | 189 | ||||
-rw-r--r-- | app-admin/puppet/puppet-0.25.4.ebuild | 122 |
3 files changed, 318 insertions, 1 deletions
diff --git a/app-admin/puppet/ChangeLog b/app-admin/puppet/ChangeLog index 72f116d7d413..4e198434e788 100644 --- a/app-admin/puppet/ChangeLog +++ b/app-admin/puppet/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-admin/puppet # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/puppet/ChangeLog,v 1.51 2010/01/26 15:58:13 matsuu Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/puppet/ChangeLog,v 1.52 2010/02/28 03:04:54 matsuu Exp $ + +*puppet-0.25.4 (28 Feb 2010) + + 28 Feb 2010; MATSUU Takuto <matsuu@gentoo.org> +puppet-0.25.4.ebuild, + +files/puppet-0.25.4-rrd.patch: + Version bumped. Fixed rrd issue, bug #294304. *puppet-0.25.3 (26 Jan 2010) 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 diff --git a/app-admin/puppet/puppet-0.25.4.ebuild b/app-admin/puppet/puppet-0.25.4.ebuild new file mode 100644 index 000000000000..4f1dfbefa884 --- /dev/null +++ b/app-admin/puppet/puppet-0.25.4.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/puppet/puppet-0.25.4.ebuild,v 1.1 2010/02/28 03:04:54 matsuu Exp $ + +EAPI="2" +inherit elisp-common eutils ruby + +DESCRIPTION="A system automation and configuration management software" +HOMEPAGE="http://reductivelabs.com/projects/puppet" +SRC_URI="http://reductivelabs.com/downloads/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +IUSE="augeas emacs ldap rrdtool shadow vim-syntax" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" + +DEPEND="dev-lang/ruby[ssl] + emacs? ( virtual/emacs ) + >=dev-ruby/facter-1.5.0" +RDEPEND="${DEPEND} + >=app-portage/eix-0.18.0 + augeas? ( dev-ruby/ruby-augeas ) + ldap? ( dev-ruby/ruby-ldap ) + rrdtool? ( >=net-analyzer/rrdtool-1.2.23[ruby] ) + shadow? ( dev-ruby/ruby-shadow )" + +USE_RUBY="ruby18" + +SITEFILE="50${PN}-mode-gentoo.el" + +pkg_setup() { + enewgroup puppet + enewuser puppet -1 -1 /var/lib/puppet puppet +} + +src_prepare() { + # Bug #294304 + epatch "${FILESDIR}/${P}-rrd.patch" +} + +src_compile() { + if use emacs ; then + elisp-compile ext/emacs/puppet-mode.el || die "elisp-compile failed" + fi +} + +src_install() { + DESTDIR="${D}" ruby_einstall "$@" || die + DESTDIR="${D}" erubydoc || die + + newinitd "${FILESDIR}"/puppetmaster-0.25.init puppetmaster || die + doconfd conf/gentoo/conf.d/puppetmaster || die + newinitd "${FILESDIR}"/puppet-0.25.init puppet || die + doconfd conf/gentoo/conf.d/puppet || die + + # Initial configuration files + keepdir /etc/puppet/manifests || die + insinto /etc/puppet + doins conf/gentoo/puppet/* || die + doins conf/auth.conf || die + + # Location of log and data files + keepdir /var/run/puppet || die + keepdir /var/log/puppet || die + keepdir /var/lib/puppet/ssl || die + keepdir /var/lib/puppet/files || die + fowners -R puppet:puppet /var/{run,log,lib}/puppet || die + + if use emacs ; then + elisp-install ${PN} ext/emacs/puppet-mode.el* || die "elisp-install failed" + elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die + fi + + if use ldap ; then + insinto /etc/openldap/schema; doins ext/ldap/puppet.schema || die + fi + + if use vim-syntax ; then + insinto /usr/share/vim/vimfiles/syntax; doins ext/vim/syntax/puppet.vim || die + insinto /usr/share/vim/vimfiles/ftdetect; doins ext/vim/ftdetect/puppet.vim || die + fi + + # ext and examples files + for f in $(find ext examples -type f) ; do + docinto "$(dirname ${f})"; dodoc "${f}" || die + done + docinto conf; dodoc conf/namespaceauth.conf || die +} + +pkg_postinst() { + elog + elog "Please, *don't* include the --ask option in EMERGE_EXTRA_OPTS as this could" + elog "cause puppet to hang while installing packages." + elog + elog "Puppet uses eix to get information about currently installed packages," + elog "so please keep the eix metadata cache updated so puppet is able to properly" + elog "handle package installations." + elog + elog "Currently puppet only supports adding and removing services to the default" + elog "runlevel, if you want to add/remove a service from another runlevel you may" + elog "do so using symlinking." + elog + + if [ \ + -f "${ROOT}/etc/puppet/puppetd.conf" -o \ + -f "${ROOT}/etc/puppet/puppetmaster.conf" -o \ + -f "${ROOT}/etc/puppet/puppetca.conf" \ + ] ; then + elog + elog "Please remove deprecated config files." + elog " /etc/puppet/puppetca.conf" + elog " /etc/puppet/puppetd.conf" + elog " /etc/puppet/puppetmasterd.conf" + elog + fi + + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |