class ForemanMaintain::RepositoryManager::El
Public Instance Methods
config_manager_options(repo_ids, options)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 38 def config_manager_options(repo_ids, options) repo_ids_string = if repo_ids.is_a?(Array) repo_ids.join(',') else repo_ids end format_shell_args("--#{options}" => repo_ids_string) end
disable_repos(repo_ids)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 6 def disable_repos(repo_ids) execute!("dnf config-manager #{config_manager_options(repo_ids, 'set-disabled')}") end
enable_repos(repo_ids)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 20 def enable_repos(repo_ids) execute!("dnf config-manager #{config_manager_options(repo_ids, 'enable')}") end
enabled_repos()
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 62 def enabled_repos cmd = "#{pkg_manager} repolist enabled -d 6 -e 0 2> /dev/null" repos = execute(cmd) return {} if repos.empty? hash_of_repoids_urls(repos, /Repo-id|Repo-baseurl/) end
hash_of_repoids_urls(repos, regex)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 70 def hash_of_repoids_urls(repos, regex) ids_urls = Hash[*repos.split("\n").grep(regex).map do |entry| entry.split(':', 2).last.strip end] # repolist output includes extra info in the output # # rhel-7-server-rpms/7Server/x86_64 # rhel-server-rhscl-7-rpms/7Server/x86_64 # This trims anything after first '/' to get correct repo label trimmed_hash = {} ids_urls.each do |id, url| trimmed_id = id.split('/').first trimmed_hash[trimmed_id] = url end trimmed_hash end
pkg_manager()
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 58 def pkg_manager package_manager.class.name.split('::').last.downcase end
rhsm_available?()
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 47 def rhsm_available? @rhsm_available ||= find_package('subscription-manager') end
rhsm_disable_repos(repo_ids)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 10 def rhsm_disable_repos(repo_ids) if rhsm_available? execute!(%(subscription-manager repos #{rhsm_options(repo_ids, 'disable')})) else logger.info("subscription-manager is not available.\ Using #{pkg_manager} config manager instead.") disable_repos(repo_ids) end end
rhsm_enable_repos(repo_ids)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 24 def rhsm_enable_repos(repo_ids) if rhsm_available? execute!(%(subscription-manager repos #{rhsm_options(repo_ids, 'enable')})) else logger.info("subscription-manager is not available.\ Using #{pkg_manager} config manager instead.") enable_repos(repo_ids) end end
rhsm_list_repos(list_option = '--list')
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 51 def rhsm_list_repos(list_option = '--list') repos = execute(%(LANG=en_US.utf-8 subscription-manager repos #{list_option} 2>&1)) return {} if repos.empty? hash_of_repoids_urls(repos, /Repo ID|Repo URL/) end
rhsm_options(repo_ids, options)
click to toggle source
# File lib/foreman_maintain/repository_manager/el.rb, line 34 def rhsm_options(repo_ids, options) repo_ids.map { |r| "--#{options}=#{r}" }.join(' ') end