Class: ForemanMaintain::Utils::Backup
Instance Attribute Summary collapse
Instance Method Summary
collapse
#check_min_version, #clean_all_packages, #create_lv_snapshot, #directory_empty?, #downstream_installation?, #execute, #execute!, #execute?, #execute_with_status, #file_exists?, #find_dir_containing_file, #find_package, #find_symlinks, #format_shell_args, #get_lv_info, #get_lv_path, #hostname, included, #package_version, #packages_action, #parse_csv, #parse_json, #rpm_version, #server?, #service_exists?, #shellescape, #smart_proxy?, #systemd_installed?, #version
#check, #detector, #feature, #find_all_scenarios, #find_checks, #find_procedures, #find_scenarios, #procedure
#logger
Constructor Details
#initialize(backup_dir) ⇒ Backup
Returns a new instance of Backup.
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/foreman_maintain/utils/backup.rb', line 14
def initialize(backup_dir)
@backup_dir = backup_dir
@standard_files = ['config_files.tar.gz']
@katello_online_files = ['mongo_dump', 'candlepin.dump', 'foreman.dump']
@katello_offline_files = ['mongo_data.tar.gz', 'pgsql_data.tar.gz']
@foreman_online_files = ['foreman.dump']
@foreman_offline_files = ['pgsql_data.tar.gz']
@fpc_online_files = ['mongo_dump']
@fpc_offline_files = ['mongo_data.tar.gz']
end
|
Instance Attribute Details
#foreman_offline_files ⇒ Object
Returns the value of attribute foreman_offline_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def foreman_offline_files
@foreman_offline_files
end
|
#foreman_online_files ⇒ Object
Returns the value of attribute foreman_online_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def foreman_online_files
@foreman_online_files
end
|
#fpc_offline_files ⇒ Object
Returns the value of attribute fpc_offline_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def fpc_offline_files
@fpc_offline_files
end
|
#fpc_online_files ⇒ Object
Returns the value of attribute fpc_online_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def fpc_online_files
@fpc_online_files
end
|
#katello_offline_files ⇒ Object
Returns the value of attribute katello_offline_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def katello_offline_files
@katello_offline_files
end
|
#katello_online_files ⇒ Object
Returns the value of attribute katello_online_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def katello_online_files
@katello_online_files
end
|
#standard_files ⇒ Object
Returns the value of attribute standard_files.
10
11
12
|
# File 'lib/foreman_maintain/utils/backup.rb', line 10
def standard_files
@standard_files
end
|
Instance Method Details
#check_backup ⇒ Object
58
59
60
61
62
63
64
65
66
|
# File 'lib/foreman_maintain/utils/backup.rb', line 58
def check_backup
if feature(:instance).foreman_proxy_with_content?
valid_fpc_backup?
elsif feature(:katello)
valid_katello_backup?
else
valid_foreman_backup?
end
end
|
#file_map ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/foreman_maintain/utils/backup.rb', line 26
def file_map
@file_map ||= {
:mongo_data => map_file(@backup_dir, 'mongo_data.tar.gz'),
:pgsql_data => map_file(@backup_dir, 'pgsql_data.tar.gz'),
:pulp_data => map_file(@backup_dir, 'pulp_data.tar'),
:foreman_dump => map_file(@backup_dir, 'foreman.dump'),
:candlepin_dump => map_file(@backup_dir, 'candlepin.dump'),
:mongo_dump => map_file(@backup_dir, 'mongo_dump'),
:config_files => map_file(@backup_dir, 'config_files.tar.gz'),
:pg_globals => map_file(@backup_dir, 'pg_globals.dump'),
:metadata => map_file(@backup_dir, 'metadata.yml')
}
end
|
#foreman_logical_backup? ⇒ Boolean
158
159
160
161
162
163
164
165
166
|
# File 'lib/foreman_maintain/utils/backup.rb', line 158
def foreman_logical_backup?
file_map[:pgsql_data][:present] &&
file_map[:foreman_dump][:present] &&
!(
file_map[:candlepin_dump][:present] ||
file_map[:mongo_data][:present] ||
file_map[:mongo_dump][:present]
)
end
|
#foreman_online_backup? ⇒ Boolean
148
149
150
151
152
153
154
155
156
|
# File 'lib/foreman_maintain/utils/backup.rb', line 148
def foreman_online_backup?
file_map[:foreman_dump][:present] &&
!(
file_map[:candlepin_dump][:present] ||
file_map[:pgsql_data][:present] ||
file_map[:mongo_data][:present] ||
file_map[:mongo_dump][:present]
)
end
|
#foreman_standard_backup? ⇒ Boolean
138
139
140
141
142
143
144
145
146
|
# File 'lib/foreman_maintain/utils/backup.rb', line 138
def foreman_standard_backup?
file_map[:pgsql_data][:present] &&
!(
file_map[:candlepin_dump][:present] ||
file_map[:foreman_dump][:present] ||
file_map[:mongo_data][:present] ||
file_map[:mongo_dump][:present]
)
end
|
#fpc_logical_backup? ⇒ Boolean
128
129
130
131
132
133
134
135
136
|
# File 'lib/foreman_maintain/utils/backup.rb', line 128
def fpc_logical_backup?
file_map[:mongo_dump][:present] &&
file_map[:mongo_data][:present] &&
!(
file_map[:pgsql_data][:present] ||
file_map[:candlepin_dump][:present] ||
file_map[:foreman_dump][:present]
)
end
|
#fpc_online_backup? ⇒ Boolean
118
119
120
121
122
123
124
125
126
|
# File 'lib/foreman_maintain/utils/backup.rb', line 118
def fpc_online_backup?
file_map[:mongo_dump][:present] &&
!(
file_map[:mongo_data][:present] ||
file_map[:pgsql_data][:present] ||
file_map[:candlepin_dump][:present] ||
file_map[:foreman_dump][:present]
)
end
|
#fpc_standard_backup? ⇒ Boolean
108
109
110
111
112
113
114
115
116
|
# File 'lib/foreman_maintain/utils/backup.rb', line 108
def fpc_standard_backup?
file_map[:mongo_data][:present] &&
!(
file_map[:pgsql_data][:present] ||
file_map[:candlepin_dump][:present] ||
file_map[:foreman_dump][:present] ||
file_map[:mongo_dump][:present]
)
end
|
#katello_logical_backup? ⇒ Boolean
100
101
102
103
104
105
106
|
# File 'lib/foreman_maintain/utils/backup.rb', line 100
def katello_logical_backup?
file_map[:mongo_dump][:present] &&
file_map[:mongo_data][:present] &&
file_map[:pgsql_data][:present] &&
file_map[:candlepin_dump][:present] &&
file_map[:foreman_dump][:present]
end
|
#katello_online_backup? ⇒ Boolean
90
91
92
93
94
95
96
97
98
|
# File 'lib/foreman_maintain/utils/backup.rb', line 90
def katello_online_backup?
file_map[:candlepin_dump][:present] &&
file_map[:foreman_dump][:present] &&
file_map[:mongo_dump][:present] &&
!(
file_map[:mongo_data][:present] ||
file_map[:pgsql_data][:present]
)
end
|
#katello_standard_backup? ⇒ Boolean
80
81
82
83
84
85
86
87
88
|
# File 'lib/foreman_maintain/utils/backup.rb', line 80
def katello_standard_backup?
file_map[:mongo_data][:present] &&
file_map[:pgsql_data][:present] &&
!(
file_map[:candlepin_dump][:present] ||
file_map[:foreman_dump][:present] ||
file_map[:mongo_dump][:present]
)
end
|
#map_file(backup_dir, filename) ⇒ Object
40
41
42
43
44
45
46
47
|
# File 'lib/foreman_maintain/utils/backup.rb', line 40
def map_file(backup_dir, filename)
file_path = File.join(backup_dir, filename)
present = File.exist?(file_path)
{
:present => present,
:path => file_path
}
end
|
186
187
188
189
190
191
192
|
# File 'lib/foreman_maintain/utils/backup.rb', line 186
def metadata
if file_map[:metadata][:present]
YAML.load_file(file_map[:metadata][:path])
else
{}
end
end
|
#present_files ⇒ Object
49
50
51
52
|
# File 'lib/foreman_maintain/utils/backup.rb', line 49
def present_files
present_files = file_map.select { |_k, v| v[:present] }
present_files.values.map { |f| File.basename(f[:path]) }
end
|
#pulp_tar_split? ⇒ Boolean
194
195
196
|
# File 'lib/foreman_maintain/utils/backup.rb', line 194
def pulp_tar_split?
File.exist?(File.join(@backup_dir, 'pulp_data.part0002'))
end
|
#sql_dump_files_exist? ⇒ Boolean
204
205
206
207
|
# File 'lib/foreman_maintain/utils/backup.rb', line 204
def sql_dump_files_exist?
file_map[:foreman_dump][:present] ||
file_map[:candlepin_dump][:present]
end
|
#tar_backups_exist? ⇒ Boolean
198
199
200
201
202
|
# File 'lib/foreman_maintain/utils/backup.rb', line 198
def tar_backups_exist?
file_map[:mongo_data][:present] ||
file_map[:pulp_data][:present] ||
file_map[:pgsql_data][:present]
end
|
#valid_backup? ⇒ Boolean
54
55
56
|
# File 'lib/foreman_maintain/utils/backup.rb', line 54
def valid_backup?
file_map[:config_files][:present] && check_backup
end
|
#valid_foreman_backup? ⇒ Boolean
76
77
78
|
# File 'lib/foreman_maintain/utils/backup.rb', line 76
def valid_foreman_backup?
foreman_standard_backup? || foreman_online_backup? || foreman_logical_backup?
end
|
#valid_fpc_backup? ⇒ Boolean
68
69
70
|
# File 'lib/foreman_maintain/utils/backup.rb', line 68
def valid_fpc_backup?
fpc_online_backup? || fpc_standard_backup? || fpc_logical_backup?
end
|
#valid_katello_backup? ⇒ Boolean
72
73
74
|
# File 'lib/foreman_maintain/utils/backup.rb', line 72
def valid_katello_backup?
katello_online_backup? || katello_standard_backup? || katello_logical_backup?
end
|
#validate_hostname? ⇒ Boolean
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
# File 'lib/foreman_maintain/utils/backup.rb', line 168
def validate_hostname?
config_tarball = file_map[:config_files][:path]
config_files = tarball_file_list(config_tarball)
if config_files.include?('etc/httpd/conf/httpd.conf')
tar_cmd = "tar zxf #{config_tarball} etc/httpd/conf/httpd.conf " \
"--to-stdout | grep ServerName | awk {'print $2'} | tr -d '\"'"
backup_hostname = execute(tar_cmd).chomp
backup_hostname == hostname
else
true
end
end
|