check_min_version(name, minimal_version)
click to toggle source
def check_min_version(name, minimal_version)
current_version = package_version(name)
if current_version
return current_version >= version(minimal_version)
end
end
clean_all_packages(options = {})
click to toggle source
def clean_all_packages(options = {})
options.validate_options!(:assumeyes)
yum_options = []
yum_options << '-y' if options[:assumeyes]
execute!("yum #{yum_options.join(' ')} clean all", :interactive => true)
execute!('rm -rf /var/cache/yum')
execute!('rm -rf /var/cache/dnf')
end
downstream_installation?()
click to toggle source
def downstream_installation?
execute?('rpm -q satellite') ||
(execute('rpm -q foreman') =~ /sat.noarch/)
end
execute(command, options = {})
click to toggle source
def execute(command, options = {})
command_runner = Utils::CommandRunner.new(logger, command, options)
execution.puts '' if command_runner.interactive? && respond_to?(:execution)
command_runner.run
command_runner.output
end
execute!(command, options = {})
click to toggle source
def execute!(command, options = {})
command_runner = Utils::CommandRunner.new(logger, command, options)
execution.puts '' if command_runner.interactive? && respond_to?(:execution)
command_runner.run
if command_runner.success?
command_runner.output
else
raise command_runner.execution_error
end
end
execute?(command, input = nil)
click to toggle source
def execute?(command, input = nil)
execute(command, :stdin => input)
$CHILD_STATUS.success?
end
file_exists?(filename)
click to toggle source
def file_exists?(filename)
File.exist?(filename)
end
find_package(name)
click to toggle source
def find_package(name)
result = execute(%Q(rpm -q '#{name}'))
if $CHILD_STATUS.success?
result
end
end
hostname()
click to toggle source
def hostname
execute('hostname -f')
end
package_version(name)
click to toggle source
def package_version(name)
rpm_version(name)
end
packages_action(action, packages, options = {})
click to toggle source
def packages_action(action, packages, options = {})
expected_actions = [:install, :update]
unless expected_actions.include?(action)
raise ArgumentError, "Unexpected action #{action} expected #{expected_actions.inspect}"
end
options.validate_options!(:assumeyes)
yum_options = []
yum_options << '-y' if options[:assumeyes]
execute!("yum #{yum_options.join(' ')} #{action} #{packages.join(' ')}",
:interactive => true)
end
parse_csv(data)
click to toggle source
def parse_csv(data)
parsed_data = CSV.parse(data)
header = parsed_data.first
parsed_data[1..-1].map do |row|
Hash[*header.zip(row).flatten(1)]
end
end
parse_json(json_string)
click to toggle source
def parse_json(json_string)
JSON.parse(json_string)
rescue StandardError
nil
end
rpm_version(name)
click to toggle source
def rpm_version(name)
rpm_version = execute(%Q(rpm -q '#{name}' --queryformat="%{VERSION}"))
if $CHILD_STATUS.success?
version(rpm_version)
end
end
server?()
click to toggle source
def server?
find_package('foreman')
end
shellescape(string)
click to toggle source
def shellescape(string)
Shellwords.escape(string)
end
smart_proxy?()
click to toggle source
def smart_proxy?
!server? && find_package('foreman-proxy')
end
version(value)
click to toggle source
def version(value)
Version.new(value)
end