vagrant-registration 1.1.0 → 1.2.0
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/CHANGELOG.md +8 -0
- data/README.md +7 -1
- data/lib/vagrant-registration/action/unregister_on_destroy.rb +3 -3
- data/lib/vagrant-registration/action/unregister_on_halt.rb +3 -3
- data/lib/vagrant-registration/version.rb +1 -1
- data/plugins/guests/redhat/cap/rhn_register.rb +7 -7
- data/plugins/guests/redhat/cap/subscription_manager.rb +28 -9
- data/plugins/guests/redhat/plugin.rb +0 -5
- data/resources/rhn_unregister.py +0 -1
- metadata +14 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a7c34f5e89fbe90dfc0194f6f467d1ef13e11bf
|
4
|
+
data.tar.gz: 4941f9c200a6a8f50fb14fa9c6910b5d3d51ef2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b322d3bf982b1e5a380f53d420be07ad83ea1e6d04ee575402daa27d204f95aa4449fdf2c26d147d9ac38810b987e0ff57a50c500865206fdae92a3bb1a3389
|
7
|
+
data.tar.gz: e9a80d397296c0098a1b1916e7f9351527c1e2e6269404714c015bc89834b3aa55f26bcda6a2779b53d9870fd5a2e59eeeb01aa4d121b4f895316aa6c9721762
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.2.0
|
4
|
+
|
5
|
+
- Fix: `vagrant destroy` not triggering subscription deactivation and removal, issue #57
|
6
|
+
- Fix: Allow auto-attach and force options to be configured
|
7
|
+
- Fix: Remove unnecessary shebang from python script
|
8
|
+
- Support for attaching to specified subscription pool(s), issue #36
|
9
|
+
- Fix: rhn_register upload certificate fails, issue #60
|
10
|
+
|
3
11
|
## 1.1.0
|
4
12
|
|
5
13
|
- Print warning if specifically selected manager is not available
|
data/README.md
CHANGED
@@ -133,7 +133,7 @@ description).
|
|
133
133
|
config.registration.auto_attach = false
|
134
134
|
```
|
135
135
|
|
136
|
-
Note that the `auto_attach` option is set to false when using org/activationkey for registration.
|
136
|
+
Note that the `auto_attach` option is set to false when using org/activationkey for registration or if pools are specified.
|
137
137
|
|
138
138
|
#### subscription-manager Options Reference
|
139
139
|
|
@@ -189,6 +189,12 @@ Note that the `auto_attach` option is set to false when using org/activationkey
|
|
189
189
|
|
190
190
|
# Skip the registration (optional, skip if true, defaults to false)
|
191
191
|
config.registration.skip
|
192
|
+
|
193
|
+
# Attach to specified pool(s) (optional)
|
194
|
+
#
|
195
|
+
# Example:
|
196
|
+
# config.registration.pools = [ 'POOL-ID-1', 'POOL-ID-2' ]
|
197
|
+
config.registration.pools
|
192
198
|
```
|
193
199
|
|
194
200
|
### rhn-register Configuration
|
@@ -14,7 +14,7 @@ module VagrantPlugins
|
|
14
14
|
config = env[:machine].config.registration
|
15
15
|
guest = env[:machine].guest
|
16
16
|
|
17
|
-
if capabilities_provided?(guest) && manager_installed?(guest) && !config.skip
|
17
|
+
if capabilities_provided?(guest) && manager_installed?(guest, env[:ui]) && !config.skip
|
18
18
|
env[:ui].info('Unregistering box with vagrant-registration...')
|
19
19
|
guest.capability(:registration_unregister)
|
20
20
|
end
|
@@ -42,8 +42,8 @@ module VagrantPlugins
|
|
42
42
|
end
|
43
43
|
|
44
44
|
# Check if selected registration manager is installed
|
45
|
-
def manager_installed?(guest)
|
46
|
-
if guest.capability(:registration_manager_installed)
|
45
|
+
def manager_installed?(guest, ui)
|
46
|
+
if guest.capability(:registration_manager_installed, ui)
|
47
47
|
true
|
48
48
|
else
|
49
49
|
@logger.debug('Registration manager not found on guest')
|
@@ -14,7 +14,7 @@ module VagrantPlugins
|
|
14
14
|
config = env[:machine].config.registration
|
15
15
|
guest = env[:machine].guest
|
16
16
|
|
17
|
-
if capabilities_provided?(guest) && manager_installed?(guest) && !config.skip && config.unregister_on_halt
|
17
|
+
if capabilities_provided?(guest) && manager_installed?(guest, env[:ui]) && !config.skip && config.unregister_on_halt
|
18
18
|
env[:ui].info('Unregistering box with vagrant-registration...')
|
19
19
|
guest.capability(:registration_unregister)
|
20
20
|
end
|
@@ -43,8 +43,8 @@ module VagrantPlugins
|
|
43
43
|
end
|
44
44
|
|
45
45
|
# Check if selected registration manager is installed
|
46
|
-
def manager_installed?(guest)
|
47
|
-
if guest.capability(:registration_manager_installed)
|
46
|
+
def manager_installed?(guest, ui)
|
47
|
+
if guest.capability(:registration_manager_installed, ui)
|
48
48
|
true
|
49
49
|
else
|
50
50
|
@logger.debug('Registration manager not found on guest')
|
@@ -4,15 +4,15 @@ module VagrantPlugins
|
|
4
4
|
class RhnRegister
|
5
5
|
# Test that the machine is already registered
|
6
6
|
def self.rhn_register_registered?(machine)
|
7
|
-
true if machine.communicate.
|
7
|
+
true if machine.communicate.sudo('/usr/sbin/rhn_check')
|
8
8
|
rescue
|
9
9
|
false
|
10
10
|
end
|
11
11
|
|
12
12
|
# Test that we have rhn installed
|
13
13
|
def self.rhn_register(machine)
|
14
|
-
machine.communicate.test('/usr/sbin/rhn_check --version'
|
15
|
-
machine.communicate.test('/usr/sbin/rhnreg_ks --version'
|
14
|
+
machine.communicate.test('/usr/sbin/rhn_check --version') &&
|
15
|
+
machine.communicate.test('/usr/sbin/rhnreg_ks --version')
|
16
16
|
end
|
17
17
|
|
18
18
|
# Register the machine using 'rhnreg_ks' command, config is (Open)Struct
|
@@ -82,14 +82,14 @@ module VagrantPlugins
|
|
82
82
|
# Make sure the provided CA certificate file will be configured
|
83
83
|
cert_file_name = File.basename(machine.config.registration.ca_cert)
|
84
84
|
cert_file_content = File.read(machine.config.registration.ca_cert, tmp)
|
85
|
-
machine.communicate.
|
85
|
+
machine.communicate.sudo("echo '#{cert_file_content}' > /usr/share/rhn/#{cert_file_name}")
|
86
86
|
else
|
87
87
|
ui.warn("WARNING: Provided CA certificate file #{machine.config.registration.ca_cert} does not exist, skipping")
|
88
88
|
end
|
89
89
|
end
|
90
90
|
# Make sure the correct CA certificate file is always configured
|
91
91
|
ui.info("Updating CA certificate to /usr/share/rhn/#{cert_file_name}`...")
|
92
|
-
machine.communicate.
|
92
|
+
machine.communicate.sudo("sed -i 's|^sslCACert\s*=.*$|sslCACert=/usr/share/rhn/#{cert_file_name}|g' /etc/sysconfig/rhn/up2date")
|
93
93
|
end
|
94
94
|
|
95
95
|
# Build registration command that skips registration if the system is registered
|
@@ -101,7 +101,7 @@ module VagrantPlugins
|
|
101
101
|
# provided server URL
|
102
102
|
def self.rhn_register_server_url(machine, ui)
|
103
103
|
ui.info("Update server URL to #{machine.config.registration.serverurl}...")
|
104
|
-
machine.communicate.
|
104
|
+
machine.communicate.sudo("sed -i 's|^serverURL=.*$|serverURL=/usr/share/rhn/#{machine.config.registration.serverurl}|' /etc/sysconfig/rhn/up2date")
|
105
105
|
end
|
106
106
|
|
107
107
|
# The absolute path to the resource file
|
@@ -116,7 +116,7 @@ module VagrantPlugins
|
|
116
116
|
|
117
117
|
# Build additional rhreg_ks options based on the plugin configuration
|
118
118
|
def self.configuration_to_options(config)
|
119
|
-
config.force = true
|
119
|
+
config.force = true if config.force.nil?
|
120
120
|
|
121
121
|
options = []
|
122
122
|
options << "--profilename='#{config.name}'" if config.name
|
@@ -4,14 +4,14 @@ module VagrantPlugins
|
|
4
4
|
class SubscriptionManager
|
5
5
|
# Test that the machine is already registered
|
6
6
|
def self.subscription_manager_registered?(machine)
|
7
|
-
false if machine.communicate.
|
7
|
+
false if machine.communicate.sudo("/usr/sbin/subscription-manager list --consumed | grep 'No consumed subscription pools to list'")
|
8
8
|
rescue
|
9
9
|
true
|
10
10
|
end
|
11
11
|
|
12
12
|
# Test that we have subscription-manager installed
|
13
13
|
def self.subscription_manager(machine)
|
14
|
-
machine.communicate.test('/usr/sbin/subscription-manager'
|
14
|
+
machine.communicate.test('/usr/sbin/subscription-manager')
|
15
15
|
end
|
16
16
|
|
17
17
|
# Register the machine using 'register' option, config is (Open)Struct
|
@@ -28,11 +28,13 @@ module VagrantPlugins
|
|
28
28
|
rescue Vagrant::Errors::VagrantError
|
29
29
|
raise Vagrant::Errors::VagrantError.new, error.strip
|
30
30
|
end
|
31
|
+
|
32
|
+
attach_pools(machine, machine.config.registration.pools)
|
31
33
|
end
|
32
34
|
|
33
35
|
# Unregister the machine using 'unregister' option
|
34
36
|
def self.subscription_manager_unregister(machine)
|
35
|
-
machine.communicate.
|
37
|
+
machine.communicate.sudo('subscription-manager unregister || :')
|
36
38
|
end
|
37
39
|
|
38
40
|
# Return required configuration options for subscription-manager
|
@@ -47,7 +49,7 @@ module VagrantPlugins
|
|
47
49
|
def self.subscription_manager_options(machine)
|
48
50
|
[:username, :password, :serverurl, :baseurl, :org, :environment,
|
49
51
|
:name, :auto_attach, :activationkey, :servicelevel, :release,
|
50
|
-
:force, :type, :ca_cert]
|
52
|
+
:force, :type, :ca_cert, :pools]
|
51
53
|
end
|
52
54
|
|
53
55
|
# Return secret options for subscription-manager
|
@@ -67,9 +69,9 @@ module VagrantPlugins
|
|
67
69
|
cert_file_content = File.read(machine.config.registration.ca_cert)
|
68
70
|
cert_file_name = File.basename(machine.config.registration.ca_cert)
|
69
71
|
cert_file_name = "#{cert_file_name}.pem" unless cert_file_name.end_with? '.pem'
|
70
|
-
machine.communicate.
|
72
|
+
machine.communicate.sudo("echo '#{cert_file_content}' > /etc/rhsm/ca/#{cert_file_name}")
|
71
73
|
ui.info('Setting repo_ca_cert option in /etc/rhsm/rhsm.conf...')
|
72
|
-
machine.communicate.
|
74
|
+
machine.communicate.sudo("sed -i 's|^repo_ca_cert\s*=.*|repo_ca_cert = /etc/rhsm/ca/#{cert_file_name}|g' /etc/rhsm/rhsm.conf")
|
73
75
|
else
|
74
76
|
ui.warn("WARNING: Provided CA certificate file #{machine.config.registration.ca_cert} does not exist, skipping")
|
75
77
|
end
|
@@ -82,13 +84,14 @@ module VagrantPlugins
|
|
82
84
|
|
83
85
|
# Build additional subscription-manager options based on plugin configuration
|
84
86
|
def self.configuration_to_options(config)
|
85
|
-
config.force = true
|
87
|
+
config.force = true if config.force.nil?
|
86
88
|
|
87
89
|
# --auto-attach cannot be used in case of org/activationkey registration
|
88
|
-
if
|
90
|
+
# or if pools are specified
|
91
|
+
if (config.org && config.activationkey) || config.pools
|
89
92
|
config.auto_attach = false
|
90
93
|
else
|
91
|
-
config.auto_attach = true
|
94
|
+
config.auto_attach = true if config.auto_attach.nil?
|
92
95
|
end
|
93
96
|
|
94
97
|
options = []
|
@@ -107,6 +110,22 @@ module VagrantPlugins
|
|
107
110
|
options << "--type='#{config.type}'" if config.type
|
108
111
|
options.join(' ')
|
109
112
|
end
|
113
|
+
|
114
|
+
# Attach subscription pools
|
115
|
+
def self.attach_pools(machine, pools)
|
116
|
+
if pools
|
117
|
+
command = "subscription-manager attach #{pools_to_options(pools)}"
|
118
|
+
machine.communicate.sudo(command)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
# Return pools options for subscription-manager
|
123
|
+
def self.pools_to_options(pools)
|
124
|
+
pools = [pools] if pools.kind_of?(String)
|
125
|
+
pools.map do |pool|
|
126
|
+
"--pool=#{pool}"
|
127
|
+
end.join(' ')
|
128
|
+
end
|
110
129
|
end
|
111
130
|
end
|
112
131
|
end
|
@@ -58,11 +58,6 @@ module VagrantPlugins
|
|
58
58
|
Cap::SubscriptionManager
|
59
59
|
end
|
60
60
|
|
61
|
-
guest_capability('redhat', 'subscription_manager_upload_certificate') do
|
62
|
-
require_relative 'cap/subscription_manager'
|
63
|
-
Cap::SubscriptionManager
|
64
|
-
end
|
65
|
-
|
66
61
|
guest_capability('redhat', 'subscription_manager_unregister') do
|
67
62
|
require_relative 'cap/subscription_manager'
|
68
63
|
Cap::SubscriptionManager
|
data/resources/rhn_unregister.py
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-registration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Langdon White
|
@@ -10,20 +10,20 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-01-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: yard
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - '>='
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '0'
|
29
29
|
description: Enables guests to be registered automatically which is especially useful
|
@@ -35,24 +35,24 @@ executables: []
|
|
35
35
|
extensions: []
|
36
36
|
extra_rdoc_files: []
|
37
37
|
files:
|
38
|
-
- CHANGELOG.md
|
39
|
-
- Gemfile
|
40
|
-
- LICENSE.md
|
41
|
-
- README.md
|
42
|
-
- Rakefile
|
43
38
|
- lib/vagrant-registration.rb
|
44
|
-
- lib/vagrant-registration/action.rb
|
45
39
|
- lib/vagrant-registration/action/register.rb
|
46
40
|
- lib/vagrant-registration/action/unregister_on_destroy.rb
|
47
41
|
- lib/vagrant-registration/action/unregister_on_halt.rb
|
42
|
+
- lib/vagrant-registration/version.rb
|
43
|
+
- lib/vagrant-registration/action.rb
|
48
44
|
- lib/vagrant-registration/config.rb
|
49
45
|
- lib/vagrant-registration/plugin.rb
|
50
|
-
- lib/vagrant-registration/version.rb
|
51
46
|
- plugins/guests/redhat/cap/registration.rb
|
52
47
|
- plugins/guests/redhat/cap/rhn_register.rb
|
53
48
|
- plugins/guests/redhat/cap/subscription_manager.rb
|
54
49
|
- plugins/guests/redhat/plugin.rb
|
55
50
|
- resources/rhn_unregister.py
|
51
|
+
- Rakefile
|
52
|
+
- Gemfile
|
53
|
+
- README.md
|
54
|
+
- CHANGELOG.md
|
55
|
+
- LICENSE.md
|
56
56
|
- vagrant-registration.gemspec
|
57
57
|
homepage: https://github.com/projectatomic/adb-vagrant-registration
|
58
58
|
licenses:
|
@@ -64,19 +64,18 @@ require_paths:
|
|
64
64
|
- lib
|
65
65
|
required_ruby_version: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - '>='
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 1.3.6
|
75
75
|
requirements: []
|
76
76
|
rubyforge_project:
|
77
|
-
rubygems_version: 2.
|
77
|
+
rubygems_version: 2.0.14
|
78
78
|
signing_key:
|
79
79
|
specification_version: 4
|
80
80
|
summary: Automatic guest registration for Vagrant
|
81
81
|
test_files: []
|
82
|
-
has_rdoc:
|