Class: Cleanfb::Clean
- Inherits:
-
Object
- Object
- Cleanfb::Clean
- Defined in:
- lib/cleanfb.rb
Instance Method Summary collapse
-
#remove ⇒ Object
Method to remove ALL files backed up on the Puppet masters filebucket from a specified agent.
Instance Method Details
#remove ⇒ Object
Method to remove ALL files backed up on the Puppet masters filebucket from a specified agent.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/cleanfb.rb', line 11 def remove() # return if no args return "Please supply a file" if ARGV[0].nil? || ARGV[0].empty? # return the help output if requested if ((ARGV.include? "-h") or (ARGV.include? "--help")) return "Remove backups of an agent from the Puppet master's filebucket.\n\n/ Usage: cleanfb <client>\n\n options: -h or --help | help and information\n/ -y | defaults all input to yes\n" end arg = ARGV[0] # set ans to yes automatically if -y option if !ARGV.nil? and (ARGV.include? "-y") and ARGV.length > 1 ans = "y" arg = ARGV[1] if (ARGV.index("-y") == 0) # else prompt for answer else print "Remove #{arg} ? y|n: " ans = STDIN.gets.chomp end # if yes, retrieve the files and remove them if ans == "y" || ans == "yes" cmd = `puppet filebucket list -l|grep -i #{arg}` unless cmd.nil? || cmd.empty? cmd.each_line do |line| path = "/opt/puppetlabs/puppet/cache/bucket" sum = line.split(" ")[0] start = (sum.scan /\w/).join("/") path += "/" + start[0..15] + sum + "/" puts "Removing " + path cmd = `rm #{path}/path #{path}/contents` end else puts "No file #{arg} found." end end return end |