vagrant-registration 0.0.19 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02ece539b9eaead9588826fc467d5a1d27e2b9eb
4
- data.tar.gz: 87dea7bc988b086df4e856c9152f2ad4b22749a9
3
+ metadata.gz: 36a083fba5976bcd3746308acac0b76e47eb753f
4
+ data.tar.gz: 159ddc274e1fe121bb7615ff69db99157b4970b5
5
5
  SHA512:
6
- metadata.gz: 11f0c253144c84aa33f6ea3f21d3779d1749ffb8224ec4d01af8f5de37833a3d4eb7c3289917465ebdd3d42f7cd66a9a05cc435d11dd32a708996ff55c1162c5
7
- data.tar.gz: f7c0ed985dd4e0f764fe0a379247d790a011b84153579f3e815d8c389fb1329f945e6f257f173989ffcb6566ab4fd7b7343b971392a16cdc626ec50f3e155630
6
+ metadata.gz: 68583118bac63262c52bf17b7c56c5c8821d722b10ad5bd8a604984d29fe33b6203d43e1299d9d18f1ce4695a157e1da4275ad73edb9e45a61dcf4ec658a4fe5
7
+ data.tar.gz: 8bb6d909ee3d08d2972b1e648cb8280f8c8b56a4eb3c0701b5d9c5fe8f682f05afbabacd5d94bafd6551596b482443c45daa81d1a16e5822f1a6e05e01089df6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.0
4
+
5
+ - Support providing a CA certificate via `config.registration.ca_cert` option
6
+ - Issue warnings on unsupported configuration options
7
+ - Do not ship tests
8
+
3
9
  ## 0.0.19
4
10
 
5
11
  - Remove extra files from installation
data/Gemfile CHANGED
@@ -1,7 +1,11 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ gemspec
4
+
3
5
  group :development do
4
6
  gem "vagrant", git: "https://github.com/mitchellh/vagrant.git"
7
+ gem "gem-compare"
8
+ gem "rake"
5
9
  end
6
10
 
7
11
  group :plugins do
data/README.md CHANGED
@@ -111,6 +111,10 @@ Note that the `auto_attach` option is set to false when using org/activationkey
111
111
  # Asset Manager, defaults to Customer Portal Subscription Management)
112
112
  config.registration.serverurl
113
113
 
114
+ # A path to a CA certificate, this file would be copied to /etc/rhsm/ca and
115
+ # if the file does not have .pem extension, it will be automatically added
116
+ config.registration.ca_cert
117
+
114
118
  # Give the hostname of the content delivery server to use to receive updates
115
119
  # (required for Satellite 6)
116
120
  config.registration.baseurl
@@ -150,6 +154,21 @@ Note that the `auto_attach` option is set to false when using org/activationkey
150
154
  config.registration.skip
151
155
  ```
152
156
 
157
+ ## Tests
158
+
159
+ Tests currently test the plugin with `subscription-manager` on RHEL 7.1 guest
160
+ and Fedora host. You need an imported RHEL 7.1 Vagrant box named `rhel-7.1`.
161
+
162
+ To run them:
163
+
164
+ ```
165
+ export VAGRANT_REGISTRATION_USERNAME=
166
+ export VAGRANT_REGISTRATION_PASSWORD=
167
+ export VAGRANT_REGISTRATION_ORG=
168
+ export VAGRANT_REGISTRATION_ACTIVATIONKEY=
169
+ ./tests/run.sh
170
+ ```
171
+
153
172
  ## Acknowledgements
154
173
 
155
174
  The project would like to make sure we thank [purpleidea](https://github.com/purpleidea/), [humaton](https://github.com/humaton/), [strzibny](https://github.com/strzibny), [scollier](https://github.com/scollier/), [puzzle](https://github.com/puzzle), [voxik](https://github.com/voxik), [lukaszachy](https://github.com/lukaszachy) and [goern](https://github.com/goern) (in no particular order) for their contributions of ideas, code and testing for this project.
@@ -1,18 +1,14 @@
1
- require "pathname"
2
-
3
- require "vagrant-registration/plugin"
1
+ require 'pathname'
2
+ require 'vagrant-registration/plugin'
4
3
 
5
4
  module VagrantPlugins
6
5
  module Registration
7
- lib_path = Pathname.new(File.expand_path("../vagrant-registration", __FILE__))
8
- autoload :Action, lib_path.join("action")
9
- #autoload :Errors, lib_path.join("errors")
6
+ lib_path = Pathname.new(File.expand_path('../vagrant-registration', __FILE__))
7
+ autoload :Action, lib_path.join('action')
10
8
 
11
9
  # This returns the path to the source of this plugin.
12
- #
13
- # @return [Pathname]
14
10
  def self.source_root
15
- @source_root ||= Pathname.new(File.expand_path("../../", __FILE__))
11
+ @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
16
12
  end
17
13
 
18
14
  # Temporally load the extra capability files for Red Hat
@@ -20,10 +20,10 @@ module VagrantPlugins
20
20
  end
21
21
  end
22
22
 
23
- action_root = Pathname.new(File.expand_path("../action", __FILE__))
24
- autoload :Register, action_root.join("register")
25
- autoload :UnregisterOnHalt, action_root.join("unregister_on_halt")
26
- autoload :UnregisterOnDestroy, action_root.join("unregister_on_destroy")
23
+ action_root = Pathname.new(File.expand_path('../action', __FILE__))
24
+ autoload :Register, action_root.join('register')
25
+ autoload :UnregisterOnHalt, action_root.join('unregister_on_halt')
26
+ autoload :UnregisterOnDestroy, action_root.join('unregister_on_destroy')
27
27
  end
28
28
  end
29
29
  end
@@ -5,9 +5,9 @@ module VagrantPlugins
5
5
  module Action
6
6
  # This registers the guest if the guest plugin supports it
7
7
  class Register
8
- def initialize(app, env)
8
+ def initialize(app, _)
9
9
  @app = app
10
- @logger = Log4r::Logger.new("vagrant_registration::action::register")
10
+ @logger = Log4r::Logger.new('vagrant_registration::action::register')
11
11
  end
12
12
 
13
13
  def call(env)
@@ -19,13 +19,14 @@ module VagrantPlugins
19
19
  guest = env[:machine].guest
20
20
 
21
21
  if should_register?(machine)
22
- env[:ui].info("Registering box with vagrant-registration...")
22
+ env[:ui].info('Registering box with vagrant-registration...')
23
+ check_configuration_options(machine, env[:ui])
23
24
 
24
25
  unless credentials_provided? machine
25
- @logger.debug("Credentials for registration not provided")
26
+ @logger.debug('Credentials for registration not provided')
26
27
 
27
28
  # Offer to register ATM or skip
28
- register_now = env[:ui].ask("Would you like to register the system now (default: yes)? [y|n] ")
29
+ register_now = env[:ui].ask('Would you like to register the system now (default: yes)? [y|n]')
29
30
 
30
31
  if register_now == 'n'
31
32
  config.skip = true
@@ -33,10 +34,10 @@ module VagrantPlugins
33
34
  config = register_on_screen(machine, env[:ui])
34
35
  end
35
36
  end
36
- guest.capability(:registration_register) unless config.skip
37
+ guest.capability(:registration_register, env[:ui]) unless config.skip
37
38
  end
38
39
 
39
- @logger.debug("Registration is skipped due to the configuration") if config.skip
40
+ @logger.debug('Registration is skipped due to the configuration') if config.skip
40
41
  end
41
42
 
42
43
  private
@@ -49,6 +50,31 @@ module VagrantPlugins
49
50
  !machine.guest.capability(:registration_registered?)
50
51
  end
51
52
 
53
+ # Issues warning if an unsupported option is used and displays
54
+ # a list of supported options
55
+ def check_configuration_options(machine, ui)
56
+ manager = machine.guest.capability(:registration_manager).to_s
57
+ available_options = machine.guest.capability(:registration_options)
58
+ options = machine.config.registration.conf.each_pair.map { |pair| pair[0] }
59
+
60
+ if unsupported_options_provided?(manager, available_options, options, ui)
61
+ ui.warn("WARNING: #{manager} supports only the following options:" +
62
+ "\nWARNING: " + available_options.join(', '))
63
+ end
64
+ end
65
+
66
+ # Return true if there are any unsupported options
67
+ def unsupported_options_provided?(manager, available_options, options, ui)
68
+ warned = false
69
+ options.each do |option|
70
+ unless available_options.include? option
71
+ ui.warn("WARNING: #{option} option is not supported for " + manager)
72
+ warned = true
73
+ end
74
+ end
75
+ warned
76
+ end
77
+
52
78
  # Check if registration capabilities are available
53
79
  def capabilities_provided?(guest)
54
80
  if guest.capability?(:registration_register) &&
@@ -56,7 +82,7 @@ module VagrantPlugins
56
82
  guest.capability?(:registration_registered?)
57
83
  true
58
84
  else
59
- @logger.debug("Registration is skipped due to the missing guest capability")
85
+ @logger.debug('Registration is skipped due to the missing guest capability')
60
86
  false
61
87
  end
62
88
  end
@@ -66,7 +92,7 @@ module VagrantPlugins
66
92
  if guest.capability(:registration_manager_installed)
67
93
  true
68
94
  else
69
- @logger.debug("Registration manager not found on guest")
95
+ @logger.debug('Registration manager not found on guest')
70
96
  false
71
97
  end
72
98
  end
@@ -112,7 +138,7 @@ module VagrantPlugins
112
138
  unless machine.config.registration.send(option)
113
139
  echo = !(secrets(machine).include? option)
114
140
  response = ui.ask("#{option}: ", echo: echo)
115
- machine.config.registration.send("#{option.to_s}=".to_sym, response)
141
+ machine.config.registration.send("#{option}=".to_sym, response)
116
142
  end
117
143
  end
118
144
  machine.config.registration
@@ -1,4 +1,4 @@
1
- require "log4r"
1
+ require 'log4r'
2
2
 
3
3
  module VagrantPlugins
4
4
  module Registration
@@ -7,7 +7,7 @@ module VagrantPlugins
7
7
  class UnregisterOnDestroy
8
8
  def initialize(app, env)
9
9
  @app = app
10
- @logger = Log4r::Logger.new("vagrant_registration::action::unregister_on_destroy")
10
+ @logger = Log4r::Logger.new('vagrant_registration::action::unregister_on_destroy')
11
11
  end
12
12
 
13
13
  def call(env)
@@ -15,17 +15,17 @@ module VagrantPlugins
15
15
  guest = env[:machine].guest
16
16
 
17
17
  if capabilities_provided?(guest) && manager_installed?(guest) && !config.skip
18
- env[:ui].info("Unregistering box with vagrant-registration...")
18
+ env[:ui].info('Unregistering box with vagrant-registration...')
19
19
  guest.capability(:registration_unregister)
20
20
  end
21
21
 
22
- @logger.debug("Unregistration is skipped due to the configuration") if config.skip
22
+ @logger.debug('Unregistration is skipped due to the configuration') if config.skip
23
23
  @app.call(env)
24
24
 
25
25
  # Guest might not be available after halting, so log the exception and continue
26
26
  rescue => e
27
27
  @logger.info(e)
28
- @logger.debug("Guest is not available, ignore unregistration")
28
+ @logger.debug('Guest is not available, ignore unregistration')
29
29
  @app.call(env)
30
30
  end
31
31
 
@@ -36,7 +36,7 @@ module VagrantPlugins
36
36
  if guest.capability?(:registration_unregister) && guest.capability?(:registration_manager_installed)
37
37
  true
38
38
  else
39
- @logger.debug("Unregistration is skipped due to the missing guest capability")
39
+ @logger.debug('Unregistration is skipped due to the missing guest capability')
40
40
  false
41
41
  end
42
42
  end
@@ -46,7 +46,7 @@ module VagrantPlugins
46
46
  if guest.capability(:registration_manager_installed)
47
47
  true
48
48
  else
49
- @logger.debug("Registration manager not found on guest")
49
+ @logger.debug('Registration manager not found on guest')
50
50
  false
51
51
  end
52
52
  end
@@ -7,7 +7,7 @@ module VagrantPlugins
7
7
  class UnregisterOnHalt
8
8
  def initialize(app, env)
9
9
  @app = app
10
- @logger = Log4r::Logger.new("vagrant_registration::action::unregister_on_halt")
10
+ @logger = Log4r::Logger.new('vagrant_registration::action::unregister_on_halt')
11
11
  end
12
12
 
13
13
  def call(env)
@@ -15,18 +15,18 @@ module VagrantPlugins
15
15
  guest = env[:machine].guest
16
16
 
17
17
  if capabilities_provided?(guest) && manager_installed?(guest) && !config.skip && config.unregister_on_halt
18
- env[:ui].info("Unregistering box with vagrant-registration...")
18
+ env[:ui].info('Unregistering box with vagrant-registration...')
19
19
  guest.capability(:registration_unregister)
20
20
  end
21
21
 
22
- @logger.debug("Unregistration is skipped due to the configuration") if config.skip
23
- @logger.debug("Unregistration is skipped on halt due to the configuration") if !config.unregister_on_halt
22
+ @logger.debug('Unregistration is skipped due to the configuration') if config.skip
23
+ @logger.debug('Unregistration is skipped on halt due to the configuration') if !config.unregister_on_halt
24
24
  @app.call(env)
25
25
 
26
26
  # Guest might not be available after halting, so log the exception and continue
27
27
  rescue => e
28
28
  @logger.info(e)
29
- @logger.debug("Guest is not available, ignore unregistration")
29
+ @logger.debug('Guest is not available, ignore unregistration')
30
30
  @app.call(env)
31
31
  end
32
32
 
@@ -37,7 +37,7 @@ module VagrantPlugins
37
37
  if guest.capability?(:registration_unregister) && guest.capability?(:registration_manager_installed)
38
38
  true
39
39
  else
40
- @logger.debug("Unregistration is skipped due to the missing guest capability")
40
+ @logger.debug('Unregistration is skipped due to the missing guest capability')
41
41
  false
42
42
  end
43
43
  end
@@ -47,7 +47,7 @@ module VagrantPlugins
47
47
  if guest.capability(:registration_manager_installed)
48
48
  true
49
49
  else
50
- @logger.debug("Registration manager not found on guest")
50
+ @logger.debug('Registration manager not found on guest')
51
51
  false
52
52
  end
53
53
  end
@@ -3,10 +3,12 @@ require "ostruct"
3
3
 
4
4
  module VagrantPlugins
5
5
  module Registration
6
- class Config < Vagrant.plugin("2", :config)
6
+ class Config < Vagrant.plugin('2', :config)
7
+ attr_reader :conf
8
+
7
9
  def initialize(region_specific=false)
8
10
  @conf = UNSET_VALUE
9
- @logger = Log4r::Logger.new("vagrant_registration::config")
11
+ @logger = Log4r::Logger.new('vagrant_registration::config')
10
12
  end
11
13
 
12
14
  def finalize!
@@ -26,16 +28,16 @@ module VagrantPlugins
26
28
 
27
29
  private
28
30
 
29
- # Don't set @conf to OpenStruct in initialize
30
- # to preserve config hierarchy
31
- def get_config
32
- @conf = OpenStruct.new if @conf == UNSET_VALUE
33
- end
31
+ # Don't set @conf to OpenStruct in initialize
32
+ # to preserve config hierarchy
33
+ def get_config
34
+ @conf = OpenStruct.new if @conf == UNSET_VALUE
35
+ end
34
36
 
35
- def adjust_arguments(args)
36
- return '' if args.size < 1
37
- args.map{|a| a.is_a?(String) ? "'#{a}'" : a}.join(',')
38
- end
37
+ def adjust_arguments(args)
38
+ return '' if args.size < 1
39
+ args.map { |a| a.is_a?(String) ? "'#{a}'" : a }.join(',')
40
+ end
39
41
  end
40
42
  end
41
43
  end
@@ -6,13 +6,13 @@ end
6
6
 
7
7
  # This is a sanity check to make sure no one is attempting to install
8
8
  # this into an early Vagrant version.
9
- if Vagrant::VERSION < "1.2.0"
10
- raise "The Vagrant RHEL plugin is only compatible with Vagrant 1.2+"
9
+ if Vagrant::VERSION < '1.2.0'
10
+ fail 'The Vagrant RHEL plugin is only compatible with Vagrant 1.2+.'
11
11
  end
12
12
 
13
13
  module VagrantPlugins
14
14
  module Registration
15
- class Plugin < Vagrant.plugin("2")
15
+ class Plugin < Vagrant.plugin('2')
16
16
  class << self
17
17
  def register(hook)
18
18
  setup_logging
@@ -31,7 +31,7 @@ module VagrantPlugins
31
31
  end
32
32
  end
33
33
 
34
- name "Registration"
34
+ name 'Registration'
35
35
  description <<-DESC
36
36
  This plugin adds register and unregister functionality to Vagrant Guests that
37
37
  support the capability
@@ -64,7 +64,7 @@ module VagrantPlugins
64
64
  # Some constants, such as "true" resolve to booleans, so the
65
65
  # above error checking doesn't catch it. This will check to make
66
66
  # sure that the log level is an integer, as Log4r requires.
67
- level = nil if !level.is_a?(Integer)
67
+ level = nil unless level.is_a?(Integer)
68
68
  # Set the logging level on all "vagrant" namespaced
69
69
  # logs as long as we have a valid level.
70
70
  if level
@@ -1,5 +1,6 @@
1
1
  module VagrantPlugins
2
+ # Registration plugin to auto-register guests on `vagrant up`
2
3
  module Registration
3
- VERSION = "0.0.19"
4
+ VERSION = '1.0.0'
4
5
  end
5
6
  end
@@ -1,6 +1,9 @@
1
1
  module VagrantPlugins
2
2
  module GuestRedHat
3
3
  module Cap
4
+ # Common configuration options for all managers
5
+ DEFAULT_CONFIGURATION_OPTIONS = [:skip, :unregister_on_halt]
6
+
4
7
  # This provides registration capabilities for vagrant-registration
5
8
  #
6
9
  # As we might support more registration options (managers), this
@@ -18,10 +21,10 @@ module VagrantPlugins
18
21
  end
19
22
 
20
23
  # Register the given machine
21
- def self.registration_register(machine)
24
+ def self.registration_register(machine, ui)
22
25
  cap = "#{self.registration_manager(machine).to_s}_register".to_sym
23
26
  if machine.guest.capability?(cap)
24
- machine.guest.capability(cap, machine.config.registration)
27
+ machine.guest.capability(cap, ui)
25
28
  else
26
29
  false
27
30
  end
@@ -62,6 +65,17 @@ module VagrantPlugins
62
65
  end
63
66
  end
64
67
 
68
+ # Return all available options for a given registration manager together
69
+ # with general options available to any.
70
+ def self.registration_options(machine)
71
+ cap = "#{self.registration_manager(machine).to_s}_options".to_sym
72
+ if machine.guest.capability?(cap)
73
+ DEFAULT_CONFIGURATION_OPTIONS + machine.guest.capability(cap)
74
+ else
75
+ DEFAULT_CONFIGURATION_OPTIONS
76
+ end
77
+ end
78
+
65
79
  # Return secret options for the registration manager
66
80
  def self.registration_secrets(machine)
67
81
  cap = "#{self.registration_manager(machine).to_s}_secrets".to_sym
@@ -15,11 +15,28 @@ module VagrantPlugins
15
15
  end
16
16
 
17
17
  # Register the machine using 'register' option, config is (Open)Struct
18
- def self.subscription_manager_register(machine, config)
19
- command = "subscription-manager register #{configuration_to_options(config)}"
18
+ def self.subscription_manager_register(machine, ui)
19
+ subscription_manager_upload_certificate(machine, ui) if machine.config.registration.ca_cert
20
+ command = "subscription-manager register #{configuration_to_options(machine.config.registration)}"
20
21
  machine.communicate.execute("cmd=$(#{command}); if [ \"$?\" != \"0\" ]; then echo $cmd | grep 'This system is already registered' || (echo $cmd 1>&2 && exit 1) ; fi", sudo: true)
21
22
  end
22
23
 
24
+ # Upload provided CA cert to the standard /etc/rhsm/ca path on the guest
25
+ #
26
+ # Since subscription-manager recognizes only .pem files, we rename those
27
+ # files not ending with '.pem' extension.
28
+ def self.subscription_manager_upload_certificate(machine, ui)
29
+ ui.info("Uploading CA certificate from #{machine.config.registration.ca_cert}...")
30
+ if File.exist?(machine.config.registration.ca_cert)
31
+ cert_file_content = File.read(machine.config.registration.ca_cert)
32
+ cert_file_name = File.basename(machine.config.registration.ca_cert)
33
+ cert_file_name = "#{cert_file_name}.pem" unless cert_file_name.end_with? '.pem'
34
+ machine.communicate.execute("echo '#{cert_file_content}' > /etc/rhsm/ca/#{cert_file_name}", sudo: true)
35
+ else
36
+ ui.warn("WARNING: Provided CA certificate file #{machine.config.registration.ca_cert} does not exist, skipping")
37
+ end
38
+ end
39
+
23
40
  # Unregister the machine using 'unregister' option
24
41
  def self.subscription_manager_unregister(machine)
25
42
  machine.communicate.execute("subscription-manager unregister || :", sudo: true)
@@ -30,6 +47,16 @@ module VagrantPlugins
30
47
  [[:username, :password], [:org, :activationkey]]
31
48
  end
32
49
 
50
+ # Return all available options for subscription-manager
51
+ #
52
+ # ca_cert is not part of 'register' command API, but it's needed
53
+ # in conjuntion with serverurl option.
54
+ def self.subscription_manager_options(machine)
55
+ [:username, :password, :serverurl, :baseurl, :org, :environment,
56
+ :name, :auto_attach, :activationkey, :servicelevel, :release,
57
+ :force, :type, :ca_cert]
58
+ end
59
+
33
60
  # Return secret options for subscription-manager
34
61
  def self.subscription_manager_secrets(machine)
35
62
  [:password]
@@ -1,70 +1,85 @@
1
- require "vagrant"
1
+ require 'vagrant'
2
2
 
3
3
  module VagrantPlugins
4
4
  module GuestRedHat
5
- class Plugin < Vagrant.plugin("2")
6
- guest_capability("redhat", "registration_registered?") do
7
- require_relative "cap/registration"
5
+ class Plugin < Vagrant.plugin('2')
6
+ guest_capability('redhat', 'registration_registered?') do
7
+ require_relative 'cap/registration'
8
8
  Cap::Registration
9
9
  end
10
10
 
11
- guest_capability("redhat", "registration_register") do
12
- require_relative "cap/registration"
11
+ guest_capability('redhat', 'registration_register') do
12
+ require_relative 'cap/registration'
13
13
  Cap::Registration
14
14
  end
15
15
 
16
- guest_capability("redhat", "registration_unregister") do
17
- require_relative "cap/registration"
16
+ guest_capability('redhat', 'registration_unregister') do
17
+ require_relative 'cap/registration'
18
18
  Cap::Registration
19
19
  end
20
20
 
21
- guest_capability("redhat", "registration_manager_installed") do
22
- require_relative "cap/registration"
21
+ guest_capability('redhat', 'registration_manager_installed') do
22
+ require_relative 'cap/registration'
23
23
  Cap::Registration
24
24
  end
25
25
 
26
- guest_capability("redhat", "registration_credentials") do
27
- require_relative "cap/registration"
26
+ guest_capability('redhat', 'registration_credentials') do
27
+ require_relative 'cap/registration'
28
28
  Cap::Registration
29
29
  end
30
30
 
31
- guest_capability("redhat", "registration_secrets") do
32
- require_relative "cap/registration"
31
+ guest_capability('redhat', 'registration_options') do
32
+ require_relative 'cap/registration'
33
33
  Cap::Registration
34
34
  end
35
35
 
36
- guest_capability("redhat", "registration_manager") do
37
- require_relative "cap/registration"
36
+ guest_capability('redhat', 'registration_secrets') do
37
+ require_relative 'cap/registration'
38
38
  Cap::Registration
39
39
  end
40
40
 
41
- guest_capability("redhat", "subscription_manager") do
42
- require_relative "cap/subscription_manager"
41
+ guest_capability('redhat', 'registration_manager') do
42
+ require_relative 'cap/registration'
43
+ Cap::Registration
44
+ end
45
+
46
+ guest_capability('redhat', 'subscription_manager') do
47
+ require_relative 'cap/subscription_manager'
43
48
  Cap::SubscriptionManager
44
49
  end
45
50
 
46
- guest_capability("redhat", "subscription_manager_registered?") do
47
- require_relative "cap/subscription_manager"
51
+ guest_capability('redhat', 'subscription_manager_registered?') do
52
+ require_relative 'cap/subscription_manager'
48
53
  Cap::SubscriptionManager
49
54
  end
50
55
 
51
- guest_capability("redhat", "subscription_manager_register") do
52
- require_relative "cap/subscription_manager"
56
+ guest_capability('redhat', 'subscription_manager_register') do
57
+ require_relative 'cap/subscription_manager'
53
58
  Cap::SubscriptionManager
54
59
  end
55
60
 
56
- guest_capability("redhat", "subscription_manager_unregister") do
61
+ guest_capability('redhat', 'subscription_manager_upload_certificate') do
57
62
  require_relative "cap/subscription_manager"
58
63
  Cap::SubscriptionManager
59
64
  end
60
65
 
61
- guest_capability("redhat", "subscription_manager_credentials") do
62
- require_relative "cap/subscription_manager"
66
+ guest_capability('redhat', 'subscription_manager_unregister') do
67
+ require_relative 'cap/subscription_manager'
63
68
  Cap::SubscriptionManager
64
69
  end
65
70
 
66
- guest_capability("redhat", "subscription_manager_secrets") do
67
- require_relative "cap/subscription_manager"
71
+ guest_capability('redhat', 'subscription_manager_credentials') do
72
+ require_relative 'cap/subscription_manager'
73
+ Cap::SubscriptionManager
74
+ end
75
+
76
+ guest_capability('redhat', 'subscription_manager_options') do
77
+ require_relative 'cap/subscription_manager'
78
+ Cap::SubscriptionManager
79
+ end
80
+
81
+ guest_capability('redhat', 'subscription_manager_secrets') do
82
+ require_relative 'cap/subscription_manager'
68
83
  Cap::SubscriptionManager
69
84
  end
70
85
  end
@@ -1,29 +1,28 @@
1
- $:.unshift File.expand_path("../lib", __FILE__)
2
- require "vagrant-registration/version"
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
+ require 'vagrant-registration/version'
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.name = "vagrant-registration"
5
+ s.name = 'vagrant-registration'
6
6
  s.version = VagrantPlugins::Registration::VERSION
7
7
  s.platform = Gem::Platform::RUBY
8
- s.license = "GPL-2.0"
9
- s.authors = ["Langdon White", "Josef Strzibny", "et al"]
10
- s.email = ["langdon@fedoraproject.org", "strzibny@strzibny.name"]
11
- s.summary = "Automatic guest registration for Vagrant"
12
- s.description = "Enables guests to be registered automatically which is especially useful for RHEL or SLES guests."
13
- s.homepage = "https://github.com/projectatomic/adb-vagrant-registration"
14
- s.required_rubygems_version = ">= 1.3.6"
8
+ s.license = 'GPL-2.0'
9
+ s.authors = ['Langdon White', 'Josef Strzibny', 'et al']
10
+ s.email = ['langdon@fedoraproject.org', 'strzibny@strzibny.name']
11
+ s.summary = 'Automatic guest registration for Vagrant'
12
+ s.description = 'Enables guests to be registered automatically which is especially useful for RHEL or SLES guests.'
13
+ s.homepage = 'https://github.com/projectatomic/adb-vagrant-registration'
14
+ s.required_rubygems_version = '>= 1.3.6'
15
15
 
16
16
  # Note that the entire gitignore(5) syntax is not supported, specifically
17
- # the "!" syntax, but it should mostly work correctly.
17
+ # the '!' syntax, but it should mostly work correctly.
18
18
  root_path = File.dirname(__FILE__)
19
19
  all_files = Dir.chdir(root_path) {
20
- Dir.glob("lib/**/{*,.*}") +
21
- Dir.glob("plugins/**/{*,.*}") +
22
- Dir.glob("tests/**/{*,.*}") +
20
+ Dir.glob('lib/**/{*,.*}') +
21
+ Dir.glob('plugins/**/{*,.*}') +
23
22
  ['Rakefile', 'Gemfile', 'README.md', 'CHANGELOG.md', 'LICENSE.md', 'vagrant-registration.gemspec']
24
23
  }
25
- all_files.reject! { |file| [".", ".."].include?(File.basename(file)) }
26
- gitignore_path = File.join(root_path, ".gitignore")
24
+ all_files.reject! { |file| ['.', '..'].include?(File.basename(file)) }
25
+ gitignore_path = File.join(root_path, '.gitignore')
27
26
  gitignore = File.readlines(gitignore_path)
28
27
  gitignore.map! { |line| line.chomp.strip }
29
28
  gitignore.reject! { |line| line.empty? || line =~ /^(#|!)/ }
@@ -42,7 +41,7 @@ Gem::Specification.new do |s|
42
41
  #
43
42
  gitignore.any? do |ignore|
44
43
  File.fnmatch(ignore, file, File::FNM_PATHNAME) ||
45
- File.fnmatch(ignore, File.basename(file), File::FNM_PATHNAME)
44
+ File.fnmatch(ignore, File.basename(file), File::FNM_PATHNAME)
46
45
  end
47
46
  end
48
47
 
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: 0.0.19
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Langdon White
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-09-08 00:00:00.000000000 Z
13
+ date: 2015-11-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard
@@ -51,10 +51,6 @@ files:
51
51
  - plugins/guests/redhat/cap/registration.rb
52
52
  - plugins/guests/redhat/cap/subscription_manager.rb
53
53
  - plugins/guests/redhat/plugin.rb
54
- - tests/helpers.sh
55
- - tests/run.sh
56
- - tests/vagrantfiles/Vagrantfile.rhel_multi_machine
57
- - tests/vagrantfiles/Vagrantfile.rhel_wrong_credentials
58
54
  - vagrant-registration.gemspec
59
55
  homepage: https://github.com/projectatomic/adb-vagrant-registration
60
56
  licenses:
data/tests/helpers.sh DELETED
@@ -1,128 +0,0 @@
1
- # Set up test environment
2
- function setup_tests() {
3
- check_credentials
4
- install_dependencies
5
-
6
- # Test results that should be printed at the end
7
- TEST_RESULTS=''
8
- FAILED=0
9
- SUCCEDED=0
10
- EXIT_CODE=0
11
- }
12
-
13
- # Print test results
14
- function print_results() {
15
- if [ "$TEST_RESULTS" != "" ]; then
16
- printf "\n$TEST_RESULTS\n"
17
- fi
18
- printf "\n$SUCCEDED succeded, $FAILED failed.\n"
19
- exit $EXIT_CODE
20
- }
21
-
22
- # Clean up before each test
23
- function clean_up() {
24
- # Clean up Vagrant metadata
25
- rm -rf $DIR/.vagrant
26
- }
27
-
28
- # Check that we have credentials to run the test suite
29
- function check_credentials() {
30
- if [ "$VAGRANT_REGISTRATION_USERNAME" = "" ] || [ "$VAGRANT_REGISTRATION_PASSWORD" = "" ]; then
31
- echo "VAGRANT_REGISTRATION_USERNAME and VAGRANT_REGISTRATION_PASSWORD needs to be provided."
32
- exit 1
33
- fi
34
- if [ "$VAGRANT_REGISTRATION_ORG" = "" ] || [ "$VAGRANT_REGISTRATION_ACTIVATIONKEY" = "" ]; then
35
- echo "VAGRANT_REGISTRATION_ORG and VAGRANT_REGISTRATION_ACTIVATIONKEY needs to be provided."
36
- exit 1
37
- fi
38
- }
39
-
40
- # Install vagrant and vagrant-registration
41
- function install_dependencies() {
42
- # Install Vagrant if it's not present
43
- PLUGIN_INSTALLED=$(vagrant --help)
44
- if [ $? -ne 0 ]; then
45
- sudo yum install vagrant-libvirt -y
46
- fi
47
-
48
- # Uninstall vagrant-registration if installed
49
- # TODO: Uninstall RPM package if needed
50
- PLUGIN_INSTALLED=$(vagrant plugin list | grep vagrant-registration)
51
- if [ -z "$PLUGIN_INSTALLED" ]; then
52
- vagrant plugin uninstall vagrant-registration
53
- fi
54
-
55
- # Install vagrant-registration from current sources
56
- rm -rf pkg
57
- rake build
58
- vagrant plugin install pkg/vagrant-registration*.gem
59
- }
60
-
61
- # Test that command succeded
62
- #
63
- # Usage:
64
- #
65
- # test_success TEST_NAME COMMAND_TO_RUN
66
- #
67
- # Example:
68
- #
69
- # test_success "ls won't fail" "ls -all"
70
- function test_success() {
71
- eval $2 >&1 >/dev/null
72
- if [ $? -ne 0 ]; then
73
- printf "F"
74
- FAILED=$((FAILED + 1))
75
- EXIT_CODE=1
76
- TEST_RESULTS="$TEST_RESULTS\nTest '$1' failed with command:"
77
- TEST_RESULTS="$TEST_RESULTS\n $2"
78
- else
79
- SUCCEDED=$((SUCCEDED + 1))
80
- printf '.'
81
- fi
82
- }
83
-
84
- # Test that command failed
85
- #
86
- # Usage:
87
- #
88
- # test_failure TEST_NAME COMMAND_TO_RUN
89
- #
90
- # Example:
91
- #
92
- # test_failure "this should fail" "echoo"
93
- function test_failure() {
94
- eval $2 >&1 >/dev/null
95
- if [ $? -ne 0 ]; then
96
- SUCCEDED=$((SUCCEDED + 1))
97
- printf '.'
98
- else
99
- printf "F"
100
- FAILED=$((FAILED + 1))
101
- EXIT_CODE=1
102
- TEST_RESULTS="$TEST_RESULTS\nTest '$1' dit not fail with command:"
103
- TEST_RESULTS="$TEST_RESULTS\n $2"
104
- fi
105
- }
106
-
107
- # Test that command produced an expected output
108
- #
109
- # Usage:
110
- #
111
- # test_output TEST_NAME COMMAND_TO_RUN EXPECTED_OUTPUT
112
- #
113
- # Example:
114
- #
115
- # test_output "echo abc outputs abc" "echo 'abc'" "abc"
116
- function test_output() {
117
- eval $2 >&1| grep "$3" >/dev/null
118
- if [ $? -ne 0 ]; then
119
- printf "F"
120
- FAILED=$((FAILED + 1))
121
- EXIT_CODE=1
122
- TEST_RESULTS="$TEST_RESULTS\nTest '$1' failed with command:"
123
- TEST_RESULTS="$TEST_RESULTS\n $2 | grep '$3'"
124
- else
125
- SUCCEDED=$((SUCCEDED + 1))
126
- printf '.'
127
- fi
128
- }
data/tests/run.sh DELETED
@@ -1,59 +0,0 @@
1
- #!/bin/bash
2
-
3
- # This tests test vagrant-registration plugin running on Fedora
4
- # with libvirt. If you do not have Vagrant installed or if you
5
- # have vagrant-libvirt package on your system, Vagrant will be
6
- # installed or vagrant-libvirt removed respectively. In that case
7
- # you need sudo to run the tests. If you do not run Fedora, make
8
- # sure you have Vagrant installed (any provider should do if you
9
- # add RHEL box called 'rhel-7').
10
- #
11
- # IMPORTANT: Tests need valid credentials to actually test
12
- # registration. This can be provided in form of environment
13
- # variables.
14
- #
15
- # NOTE: This will install a development version of
16
- # vagrant-registration on your system.
17
- #
18
- # == subscription-manager
19
- #
20
- # For testing subscription-manager on RHEL export
21
- # VAGRANT_REGISTRATION_USERNAME with VAGRANT_REGISTRATION_PASSWORD
22
- # for username/password registration and VAGRANT_REGISTRATION_ORG
23
- # with VAGRANT_REGISTRATION_ACTIVATIONKEY for org/activationkey one.
24
- #
25
-
26
- DIR=$(dirname $(readlink -f "$0"))
27
-
28
- # Import test helpers
29
- . $DIR/helpers.sh
30
-
31
- setup_tests
32
-
33
- # Test correct username/password and org/activationkey credentials in a multi-machine setup
34
- clean_up
35
- export VAGRANT_VAGRANTFILE=$DIR/vagrantfiles/Vagrantfile.rhel_multi_machine
36
-
37
- test_success 'vagrant up on RHEL multi_machine setup' 'vagrant up rhel1-valid-credentials'
38
-
39
- test_output 'first machine is registered with given username/password' \
40
- 'vagrant ssh rhel1-valid-credentials -c '\''sudo subscription-manager register'\''' \
41
- 'This system is already registered.'
42
-
43
- test_success 'vagrant halt on RHEL multi_machine setup' 'vagrant halt rhel1-valid-credentials'
44
- test_success 'vagrant halt on RHEL multi_machine setup' 'vagrant destroy'
45
- test_success 'vagrant up on RHEL multi_machine setup' 'vagrant up rhel2-valid-credentials'
46
-
47
- test_output 'second machine is registered with given org/activationkey' \
48
- 'vagrant ssh rhel2-valid-credentials -c '\''sudo subscription-manager register'\''' \
49
- 'This system is already registered.'
50
-
51
- test_success 'vagrant halt on RHEL multi_machine setup' 'vagrant destroy'
52
-
53
- # Test wrong credentials
54
- clean_up
55
- export VAGRANT_VAGRANTFILE=$DIR/vagrantfiles/Vagrantfile.rhel_wrong_credentials
56
- test_failure 'vagrant up on RHEL with wrong credentials should fail' 'vagrant up'
57
- test_success 'vagrant destroy on RHEL with wrong credentials' 'vagrant destroy'
58
-
59
- print_results
@@ -1,19 +0,0 @@
1
- # Spin 3 RHEL machines that will be registered
2
-
3
- ENV['VAGRANT_DEFAULT_PROVIDER'] ||= 'libvirt'
4
- ENV['VAGRANT_REGISTRATION_RHEL_BOX'] ||= 'rhel-7.0'
5
-
6
- Vagrant.configure('2') do |config|
7
- config.vm.box = ENV['VAGRANT_REGISTRATION_RHEL_BOX']
8
-
9
- config.vm.define "rhel1-valid-credentials" do |c|
10
- c.registration.username = ENV['VAGRANT_REGISTRATION_USERNAME']
11
- c.registration.password = ENV['VAGRANT_REGISTRATION_PASSWORD']
12
- end
13
-
14
- config.vm.define "rhel2-valid-credentials" do |c|
15
- c.registration.org = ENV['VAGRANT_REGISTRATION_ORG']
16
- c.registration.activationkey = ENV['VAGRANT_REGISTRATION_ACTIVATIONKEY']
17
- end
18
-
19
- end
@@ -1,14 +0,0 @@
1
- # Spin 1 RHEL machine with wrong credentials
2
-
3
- ENV['VAGRANT_DEFAULT_PROVIDER'] ||= 'libvirt'
4
- ENV['VAGRANT_REGISTRATION_RHEL_BOX'] ||= 'rhel-7.0'
5
-
6
- Vagrant.configure('2') do |config|
7
- config.vm.box = ENV['VAGRANT_REGISTRATION_RHEL_BOX']
8
-
9
- config.vm.define "rhel1-wrong-credentials" do |c|
10
- c.registration.username = 'wrong_username'
11
- c.registration.password = 'wrong_password'
12
- end
13
-
14
- end