Class: LinuxAdmin::SubscriptionManager
Constant Summary
collapse
- SATELLITE6_SERVER_CERT_PATH =
"pub/katello-ca-consumer-latest.noarch.rpm"
Constants inherited
from LinuxAdmin
VERSION
Instance Method Summary
collapse
method_missing, registration_type
Methods included from Common
#cmd, #run
Instance Method Details
#all_repos(options = nil) ⇒ Object
96
97
98
99
100
101
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 96
def all_repos(options = nil)
cmd = "subscription-manager repos"
output = run!(cmd).output
parse_output(output)
end
|
#available_subscriptions ⇒ Object
76
77
78
79
80
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 76
def available_subscriptions
cmd = "subscription-manager list --all --available"
output = run!(cmd).output
parse_output(output).index_by {|i| i[:pool_id]}
end
|
#disable_repo(repo, options = nil) ⇒ Object
89
90
91
92
93
94
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 89
def disable_repo(repo, options = nil)
cmd = "subscription-manager repos"
params = {"--disable=" => repo}
run!(cmd, :params => params)
end
|
#enable_repo(repo, options = nil) ⇒ Object
82
83
84
85
86
87
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 82
def enable_repo(repo, options = nil)
cmd = "subscription-manager repos"
params = {"--enable=" => repo}
run!(cmd, :params => params)
end
|
#enabled_repos ⇒ Object
103
104
105
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 103
def enabled_repos
all_repos.select { |i| i[:enabled] }.collect { |r| r[:repo_id] }
end
|
#organizations(options) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 26
def organizations(options)
raise ArgumentError, "username and password are required" unless options[:username] && options[:password]
install_server_certificate(options[:server_url], SATELLITE6_SERVER_CERT_PATH) if options[:server_url]
cmd = "subscription-manager orgs"
params = {"--username=" => options[:username], "--password=" => options[:password]}
params.merge!(proxy_params(options))
result = run!(cmd, :params => params)
parse_output(result.output).index_by {|i| i[:name]}
end
|
#refresh ⇒ Object
22
23
24
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 22
def refresh
run!("subscription-manager refresh")
end
|
#register(options) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 40
def register(options)
raise ArgumentError, "username and password are required" unless options[:username] && options[:password]
install_server_certificate(options[:server_url], SATELLITE6_SERVER_CERT_PATH) if options[:server_url]
cmd = "subscription-manager register"
params = {"--username=" => options[:username], "--password=" => options[:password]}
params.merge!(proxy_params(options))
params["--environment="] = options[:environment] if options[:environment]
params["--org="] = options[:org] if options[:server_url] && options[:org]
run!(cmd, :params => params)
end
|
#registered? ⇒ Boolean
18
19
20
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 18
def registered?
run("subscription-manager identity").exit_status == 0
end
|
#run!(cmd, options = {}) ⇒ Object
5
6
7
8
9
10
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 5
def run!(cmd, options = {})
super(cmd, options)
rescue AwesomeSpawn::CommandResultError => err
raise CredentialError.new(err.result) if err.result.error.downcase.include?("invalid username or password")
raise
end
|
#subscribe(options) ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 55
def subscribe(options)
cmd = "subscription-manager attach"
params = proxy_params(options)
if options[:pools].blank?
params.merge!({"--auto" => nil})
else
pools = options[:pools].collect {|pool| ["--pool", pool]}
params = params.to_a + pools
end
run!(cmd, :params => params)
end
|
#subscribed_products ⇒ Object
69
70
71
72
73
74
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 69
def subscribed_products
cmd = "subscription-manager list --installed"
output = run!(cmd).output
parse_output(output).select {|p| p[:status].downcase == "subscribed"}.collect {|p| p[:product_id]}
end
|
#validate_credentials(options) ⇒ Object
14
15
16
|
# File 'lib/linux_admin/registration_system/subscription_manager.rb', line 14
def validate_credentials(options)
!!organizations(options)
end
|