[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, master, updated. debian/0.24.6-1-356-g5718585

James Turnbull james at lovedthanlost.net
Fri Jan 23 14:20:47 UTC 2009


The following commit has been merged in the master branch:
commit d02f95cb608e1ee5d90ac06405e354cbc0000706
Author: mh <duritong at cronopios.org>
Date:   Thu Jul 3 12:08:46 2008 +0200

    Fixed #1394 - Added stored configuration clearing script to /ext

diff --git a/CHANGELOG b/CHANGELOG
index 4282f0e..454f314 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,6 @@
 0.24.x
+    Fixed #1394 - Added stored configuration clearing script to /ext
+    
     Fixed #1442 - replaced use of Facter for report titling with certname
 
     Fixed $1456 - add proxy configuration capability to yum repo
diff --git a/ext/puppetstoredconfigclean.rb b/ext/puppetstoredconfigclean.rb
new file mode 100644
index 0000000..f286df2
--- /dev/null
+++ b/ext/puppetstoredconfigclean.rb
@@ -0,0 +1,87 @@
+#!/usr/bin/env ruby
+
+# Script to clean up stored configs for (a) given host(s)
+#
+# Credits:
+# Script was taken from http://reductivelabs.com/trac/puppet/attachment/wiki/UsingStoredConfiguration/kill_node_in_storedconfigs_db.rb
+# which haven been initially posted by James Turnbull
+# duritong adapted and improved the script a bit.
+
+require 'getoptlong'
+config = '/etc/puppet/puppet.conf'
+
+def printusage(error_code)
+	puts "Usage: #{$0} [ list of hostnames as stored in hosts table ]"
+	puts "\n Options:"
+	puts "--config <puppet config file>"
+	exit(error_code)
+end
+
+opts = GetoptLong.new(
+        [ "--config",     "-c",   GetoptLong::REQUIRED_ARGUMENT ],	
+        [ "--help",        "-h",   GetoptLong::NO_ARGUMENT ],
+        [ "--usage",       "-u",   GetoptLong::NO_ARGUMENT ],
+        [ "--version",     "-v",   GetoptLong::NO_ARGUMENT ]
+)
+
+begin
+	opts.each do |opt, arg|
+    	case opt
+        	when "--config"
+				config = arg
+
+            when "--help"
+            	printusage(0)
+
+            when "--usage"
+            	printusage(0)
+
+            when "--version"
+        		puts "%s" % Puppet.version
+				exit
+		end
+	end
+rescue GetoptLong::InvalidOption => detail
+    $stderr.puts "Try '#{$0} --help'"
+    exit(1)
+end
+
+printusage(1) unless ARGV.size > 0
+
+require 'puppet/rails'
+Puppet[:config] = config
+Puppet.parse_config
+pm_conf = Puppet.settings.instance_variable_get(:@values)[:puppetmasterd]
+
+adapter = pm_conf[:dbadapter]
+args = {:adapter => adapter, :log_level => pm_conf[:rails_loglevel]}
+
+case adapter
+  when "sqlite3":
+    args[:dbfile] = pm_conf[:dblocation]
+  when "mysql", "postgresql":
+    args[:host]     = pm_conf[:dbserver] unless pm_conf[:dbserver].to_s.empty?
+    args[:username] = pm_conf[:dbuser] unless pm_conf[:dbuser].to_s.empty?
+    args[:password] = pm_conf[:dbpassword] unless pm_conf[:dbpassword].to_s.empty?
+    args[:database] = pm_conf[:dbname] unless pm_conf[:dbname].to_s.empty?
+    socket          = pm_conf[:dbsocket]
+    args[:socket]   = socket unless socket.to_s.empty?
+  else
+    raise ArgumentError, "Invalid db adapter %s" % adapter
+end
+
+args[:database] = "puppet" unless not args[:database].to_s.empty?
+
+ActiveRecord::Base.establish_connection(args)
+
+ARGV.each { |hostname|
+    if @host = Puppet::Rails::Host.find_by_name(hostname.strip)
+        print "Killing #{hostname}..."
+        $stdout.flush
+        @host.destroy
+        puts "done."
+    else
+        puts "Can't find host #{hostname}."
+    end
+}
+exit 0

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list