cleanfb 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cleanfb/version.rb +1 -1
- data/lib/cleanfb.rb +51 -78
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55951c522be14dc9d71fc1da2d68d8e14f425292
|
4
|
+
data.tar.gz: eaf665346feb36f002f5d86e01cd55e74b0350b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b5d5f71254d371151fdc15ace8cbf7deb87eff7bd065a9c2d7ed1c3951359f7fa4b50b17976d925d6dfb79730d3caa6c9568719ad5c13d0782e6cef79f0f57e
|
7
|
+
data.tar.gz: 382cfc26318ef552b7138ac52cbdd26d027b2f3028d4fe6c90178922ce0db51257a4f382776df3c536a0399abb1fe7a3d6e9e1b665a11382f6851c8f15d2145e
|
data/lib/cleanfb/version.rb
CHANGED
data/lib/cleanfb.rb
CHANGED
@@ -8,18 +8,25 @@ module Cleanfb
|
|
8
8
|
|
9
9
|
@force = false
|
10
10
|
@hostname = ""
|
11
|
+
@restore = ""
|
11
12
|
|
12
13
|
def parse_input
|
13
14
|
OptionParser.new do |opts|
|
14
|
-
opts.banner = ""
|
15
|
-
opts.on("-f", "--force", "
|
16
|
-
opts.on("-nNAME", "--name=NAME", "
|
17
|
-
opts.
|
15
|
+
opts.banner = "Usage: cleanfb [options]..."
|
16
|
+
opts.on("-f", "--force", "ignore all prompts") { |f| @force = f }
|
17
|
+
opts.on("-nNAME", "--name=NAME", "hostname to clean") { |n| @hostname = n }
|
18
|
+
opts.on("-rRESTORE", "--restore=FILE", "file to restore") { |r| @restore = r }
|
19
|
+
opts.on_tail("-h", "--help", "display this message") { puts opts; exit }
|
18
20
|
end.parse!
|
19
21
|
end
|
20
22
|
|
21
23
|
def remove
|
22
|
-
|
24
|
+
|
25
|
+
if hostname == ""
|
26
|
+
puts "Hostname required. See cleanfb --help for usage."
|
27
|
+
return
|
28
|
+
end
|
29
|
+
|
23
30
|
unless @force
|
24
31
|
print "Remove #{@hostname}? (y|n): "
|
25
32
|
ans = STDIN.gets.chomp
|
@@ -35,42 +42,14 @@ module Cleanfb
|
|
35
42
|
cmd.each_line { |line| (multi_match = true) if (!line.include? test) }
|
36
43
|
|
37
44
|
if multi_match
|
38
|
-
print "Matched multiple hosts. Remove all? y|n: "
|
45
|
+
print "Matched multiple hosts. Remove all? (y|n): "
|
39
46
|
ans = STDIN.gets.chomp
|
40
47
|
|
41
48
|
return "Ending run" unless (@force || ans =~/^y/)
|
42
49
|
end
|
43
50
|
end
|
44
51
|
|
45
|
-
unless(cmd.nil? || cmd.empty?)
|
46
|
-
cmd.each_line do |line|
|
47
|
-
path = "/opt/puppetlabs/puppet/cache/bucket"
|
48
|
-
sum = line.split(" ")[0]
|
49
|
-
|
50
|
-
start = (sum.scan /\w/).join("/")
|
51
|
-
|
52
|
-
file = line.split(" ")[3].split("/").last
|
53
|
-
name = file.split("_")[0]
|
54
|
-
date = line.split(" ")[1]
|
55
|
-
time = line.split(" ")[2]
|
56
|
-
|
57
|
-
save_dir = "/root/saved_configs/"
|
58
|
-
|
59
|
-
Dir.mkdir(File.join(Dir.home("root"), "saved_configs"), 0700) unless (Dir.exist? save_dir)
|
60
|
-
Dir.mkdir(File.join("#{save_dir}", "#{name}"), 0700) unless (Dir.exist? "#{save_dir}/#{name}/")
|
61
|
-
|
62
|
-
path += "/" + start[0..15] + sum + "/"
|
63
|
-
|
64
|
-
if File.exist? "#{path}/contents"
|
65
|
-
puts "Storing " + path
|
66
|
-
puts "at /root/saved_configs/#{name}/#{date}_#{time}_#{file}"
|
67
|
-
cmd = `mv -f #{path}contents /root/saved_configs/#{name}/#{date}_#{time}_#{file}`
|
68
|
-
cmd = `rm -rf #{path}`
|
69
|
-
else
|
70
|
-
puts "No file #{@hostname} found."
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
52
|
+
(backup cmd) unless (cmd.nil? || cmd.empty?)
|
74
53
|
|
75
54
|
else
|
76
55
|
puts "No file #{@hostname} found."
|
@@ -78,58 +57,52 @@ module Cleanfb
|
|
78
57
|
|
79
58
|
return
|
80
59
|
end
|
81
|
-
|
82
|
-
def
|
83
|
-
|
84
|
-
cmd
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
60
|
+
|
61
|
+
def backup cmd
|
62
|
+
|
63
|
+
cmd.each_line do |line|
|
64
|
+
path = "/opt/puppetlabs/puppet/cache/bucket"
|
65
|
+
sum = line.split(" ")[0]
|
66
|
+
|
67
|
+
start = (sum.scan /\w/).join("/")
|
68
|
+
|
69
|
+
file = line.split(" ")[3].split("/").last
|
70
|
+
name = file.split("_")[0]
|
71
|
+
date = line.split(" ")[1]
|
72
|
+
time = line.split(" ")[2]
|
73
|
+
|
74
|
+
save_dir = "/root/saved_configs/"
|
75
|
+
|
76
|
+
Dir.mkdir(File.join(Dir.home("root"), "saved_configs"), 0700) unless (Dir.exist? save_dir)
|
77
|
+
Dir.mkdir(File.join("#{save_dir}", "#{name}"), 0700) unless (Dir.exist? "#{save_dir}/#{name}/")
|
78
|
+
|
79
|
+
path += "/" + start[0..15] + sum + "/"
|
100
80
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
else
|
109
|
-
puts "No file #{host} found."
|
110
|
-
end
|
81
|
+
if File.exist? "#{path}/contents"
|
82
|
+
puts "Storing " + path
|
83
|
+
puts "at /root/saved_configs/#{name}/#{date}_#{time}_#{file}"
|
84
|
+
cmd = `mv -f #{path}contents /root/saved_configs/#{name}/#{date}_#{time}_#{file}`
|
85
|
+
cmd = `rm -rf #{path}`
|
86
|
+
else
|
87
|
+
puts "No file #{@hostname} found."
|
111
88
|
end
|
112
|
-
else
|
113
|
-
puts "No file #{host} found."
|
114
89
|
end
|
115
|
-
|
116
|
-
return
|
117
90
|
end
|
118
91
|
|
119
92
|
def restore
|
120
93
|
|
121
|
-
|
122
|
-
|
123
|
-
|
94
|
+
host = @restore.scan(/_\w+\.\w+\.?\w+?_/).join("").gsub!("_", "")
|
95
|
+
backup host
|
96
|
+
file = host
|
124
97
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
98
|
+
if File.exist? file
|
99
|
+
puts "puppet filebucket -l backup #{file}"
|
100
|
+
cmd = `puppet filebucket -l backup #{file}`
|
101
|
+
else
|
102
|
+
puts "No file #{@restore} found."
|
103
|
+
end
|
131
104
|
|
132
|
-
|
105
|
+
return
|
133
106
|
end
|
134
107
|
|
135
108
|
end
|