beaker-hostgenerator 2.1.0 → 2.2.1

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.
@@ -29,9 +29,7 @@ module BeakerHostGenerator
29
29
 
30
30
  tokens.each do |token|
31
31
  if is_ostype_token?(token, bhg_version)
32
- if nodeid[ostype] == 1 and ostype != nil
33
- raise "Error: no nodes generated for #{ostype}"
34
- end
32
+ raise "Error: no nodes generated for #{ostype}" if nodeid[ostype] == 1 and !ostype.nil?
35
33
 
36
34
  ostype = token
37
35
  next
@@ -52,7 +50,7 @@ module BeakerHostGenerator
52
50
  # Delegate to the hypervisor
53
51
  hypervisor = BeakerHostGenerator::Hypervisor.create(node_info, options)
54
52
  host_config = hypervisor.generate_node(node_info, host_config, bhg_version)
55
- config['CONFIG'].deeper_merge!(hypervisor.global_config())
53
+ config['CONFIG'].deeper_merge!(hypervisor.global_config)
56
54
 
57
55
  # Merge in any arbitrary key-value host settings. Treat the 'hostname'
58
56
  # setting specially, and don't merge it in as an arbitrary setting.
@@ -61,7 +59,7 @@ module BeakerHostGenerator
61
59
  arbitrary_settings.has_key?('hostname')
62
60
  host_config.merge!(arbitrary_settings)
63
61
 
64
- if PE_USE_WIN32 && ostype =~ /windows/ && node_info['bits'] == "64"
62
+ if PE_USE_WIN32 && ostype =~ /windows/ && node_info['bits'] == '64'
65
63
  host_config['ruby_arch'] = 'x86'
66
64
  host_config['install_32'] = true
67
65
  end
@@ -77,9 +75,7 @@ module BeakerHostGenerator
77
75
  decoded = prepare(options[:global_config])
78
76
  # Support for strings without '{}' was introduced, so just double
79
77
  # check here to ensure that we pass in values surrounded by '{}'.
80
- if !decoded.start_with?('{')
81
- decoded = "{#{decoded}}"
82
- end
78
+ decoded = "{#{decoded}}" unless decoded.start_with?('{')
83
79
  global_config = settings_string_to_map(decoded)
84
80
  config['CONFIG'].deeper_merge!(global_config)
85
81
  end
@@ -87,7 +83,7 @@ module BeakerHostGenerator
87
83
  # Munge non-string scalar values into proper data types
88
84
  unstringify_values!(config)
89
85
 
90
- return config
86
+ config
91
87
  end
92
88
 
93
89
  def get_host_roles(node_info)
@@ -101,22 +97,22 @@ module BeakerHostGenerator
101
97
  roles << role
102
98
  end
103
99
 
104
- return roles
100
+ roles
105
101
  end
106
102
 
107
103
  private
108
104
 
109
105
  def generate_host_roles!(host_config, node_info, options)
110
- if not options[:disable_default_role]
111
- host_config['roles'] = ['agent']
112
- else
113
- host_config['roles'] = []
114
- end
106
+ host_config['roles'] = if options[:disable_default_role]
107
+ []
108
+ else
109
+ ['agent']
110
+ end
115
111
 
116
112
  host_config['roles'].concat get_host_roles(node_info)
117
113
  host_config['roles'].uniq!
118
114
 
119
- if not options[:disable_role_config]
115
+ unless options[:disable_role_config]
120
116
  host_config['roles'].each do |role|
121
117
  host_config.deeper_merge! get_role_config(role)
122
118
  end
@@ -145,12 +141,16 @@ module BeakerHostGenerator
145
141
  # converted to true/false.
146
142
  # The only valid boolean-strings are "true" and "false".
147
143
  def unstringify_value(value)
148
- result = Integer(value) rescue value
144
+ result = begin
145
+ Integer(value)
146
+ rescue StandardError
147
+ value
148
+ end
149
149
  if value == 'true'
150
150
  result = true
151
151
  elsif value == 'false'
152
152
  result = false
153
- elsif value.kind_of?(Array)
153
+ elsif value.is_a?(Array)
154
154
  value.each_with_index do |v, i|
155
155
  result[i] = unstringify_value(v)
156
156
  end
@@ -24,7 +24,7 @@ module BeakerHostGenerator
24
24
 
25
25
  case node_info['ostype']
26
26
  when /^(almalinux|centos|redhat|rocky)/
27
- base_config['template'] ||= base_config['platform'].gsub(/^el/, $1)
27
+ base_config['template'] ||= base_config['platform'].gsub(/^el/, ::Regexp.last_match(1))
28
28
  when /^fedora/
29
29
  base_config['template'] ||= base_config['platform']
30
30
  when /^ubuntu/
@@ -9,35 +9,78 @@ module BeakerHostGenerator
9
9
 
10
10
  def generate_node(node_info, base_config, bhg_version)
11
11
  base_config['docker_cmd'] = ['/sbin/init']
12
- base_config['image'] = node_info['ostype'].sub(/(\d)/, ':\1')
13
- case node_info['ostype']
12
+
13
+ ostype = node_info['ostype']
14
+
15
+ if (commands = image_commands(ostype))
16
+ base_config['docker_image_commands'] = commands
17
+ end
18
+
19
+ base_config['image'] = image(ostype)
20
+ base_config['image'].prepend('amd64/') if node_info['bits'] == '64' && !base_config['image'].start_with?('quay.io/')
21
+
22
+ base_generate_node(node_info, base_config, bhg_version, :docker)
23
+ end
24
+
25
+ private
26
+
27
+ def image(ostype)
28
+ image = ostype.sub(/(\d)/, ':\1')
29
+
30
+ case ostype
31
+ when /^centos/
32
+ version = ostype.delete_prefix('centos')
33
+ tag = (version.to_i >= 8) ? "stream#{version}" : "centos#{version}"
34
+ image = "quay.io/centos/centos:#{tag}"
14
35
  when /^oracle/
15
- base_config['image'].sub!(/\w+/, 'oraclelinux')
36
+ image.sub!(/\w+/, 'oraclelinux')
16
37
  when /^opensuse/
17
- base_config['image'].sub!(/(\w+)/, '\1/leap')
38
+ image.sub!(/(\w+)/, '\1/leap')
18
39
  when /^ubuntu/
19
- base_config['image'].sub!(/(\d{2})/, '\1.')
40
+ image.sub!(/(\d{2})/, '\1.')
20
41
  when /^rocky/
21
- base_config['image'].sub!(/(\w+)/, 'rockylinux')
42
+ image.sub!(/(\w+)/, 'rockylinux')
22
43
  when /^alma/
23
- base_config['image'].sub!(/(\w+)/, 'almalinux')
44
+ image.sub!(/(\w+)/, 'almalinux')
24
45
  end
25
46
 
26
- if node_info['bits'] == '64'
27
- base_config['image'] = "amd64/#{base_config['image']}"
28
- end
47
+ image
48
+ end
29
49
 
30
- case node_info['ostype']
50
+ def image_commands(ostype)
51
+ case ostype
52
+ when /^(almalinux|centos|rocky)/
53
+ [
54
+ 'cp /bin/true /sbin/agetty',
55
+ el_package_install_command(ostype.delete_prefix(Regexp.last_match(1)).to_i),
56
+ ]
57
+ when /^debian/
58
+ [
59
+ 'cp /bin/true /sbin/agetty',
60
+ 'rm -f /usr/sbin/policy-rc.d',
61
+ 'apt-get update && apt-get install -y cron locales-all net-tools wget gnupg',
62
+ ]
63
+ when /^opensuse/
64
+ [
65
+ 'cp /bin/true /sbin/agetty',
66
+ 'zypper install -y cron iproute2 tar wget which',
67
+ ]
31
68
  when /^ubuntu/
32
- base_config['docker_image_commands'] = [
69
+ [
33
70
  'cp /bin/true /sbin/agetty',
34
71
  'apt-get install -y net-tools wget locales iproute2 gnupg',
35
72
  'locale-gen en_US.UTF-8',
36
73
  'echo LANG=en_US.UTF-8 > /etc/default/locale',
37
74
  ]
38
75
  end
76
+ end
39
77
 
40
- return base_generate_node(node_info, base_config, bhg_version, :docker)
78
+ def el_package_install_command(version)
79
+ if version >= 8
80
+ 'dnf install -y crontabs initscripts iproute openssl wget which glibc-langpack-en hostname'
81
+ else
82
+ 'yum intall -y crontabs initscripts iproute openssl wget which sysvinit-tools tar ss'
83
+ end
41
84
  end
42
85
  end
43
86
  end
@@ -11,14 +11,14 @@ module BeakerHostGenerator
11
11
  # ostype is ubuntu2204, debian10, rocky9
12
12
  os, version = node_info['ostype'].split(/(\D+)/).reject!(&:empty?)
13
13
  base_config['image'] = case os
14
- when 'ubuntu'
15
- "#{os}-#{version[0, 2]}.#{version[2, 2]}"
16
- when 'centos'
17
- version.to_i == 7 ? "#{os}-#{version}" : "#{os}-stream-#{version}"
18
- else
19
- "#{os}-#{version}"
20
- end
21
- return base_generate_node(node_info, base_config, bhg_version, :hcloud)
14
+ when 'ubuntu'
15
+ "#{os}-#{version[0, 2]}.#{version[2, 2]}"
16
+ when 'centos'
17
+ (version.to_i == 7) ? "#{os}-#{version}" : "#{os}-stream-#{version}"
18
+ else
19
+ "#{os}-#{version}"
20
+ end
21
+ base_generate_node(node_info, base_config, bhg_version, :hcloud)
22
22
  end
23
23
  end
24
24
  end
@@ -7,7 +7,7 @@ module BeakerHostGenerator::Hypervisor
7
7
  include BeakerHostGenerator::Data
8
8
 
9
9
  def generate_node(node_info, base_config, bhg_version)
10
- return base_generate_node(node_info, base_config, bhg_version, :general)
10
+ base_generate_node(node_info, base_config, bhg_version, :general)
11
11
  end
12
12
  end
13
13
  end
@@ -8,18 +8,18 @@ module BeakerHostGenerator
8
8
  include BeakerHostGenerator::Data
9
9
 
10
10
  def generate_node(node_info, base_config, bhg_version)
11
- if node_info['ostype'] =~ /^centos/
12
- base_config['box'] = node_info['ostype'].sub(/(\d)/, '/\1')
13
- elsif node_info['ostype'] =~ /^fedora/
14
- base_config['box'] = node_info['ostype'].sub(/(\d)/, '/\1') + '-cloud-base'
15
- else
16
- base_config['box'] = "generic/#{node_info['ostype']}"
17
- end
11
+ base_config['box'] = if node_info['ostype'] =~ /^centos/
12
+ node_info['ostype'].sub(/(\d)/, '/\1')
13
+ elsif node_info['ostype'] =~ /^fedora/
14
+ node_info['ostype'].sub(/(\d)/, '/\1') + '-cloud-base'
15
+ else
16
+ "generic/#{node_info['ostype']}"
17
+ end
18
18
 
19
19
  # We don't use this by default
20
20
  base_config['synced_folder'] = 'disabled'
21
21
 
22
- return base_generate_node(node_info, base_config, bhg_version, :vagrant)
22
+ base_generate_node(node_info, base_config, bhg_version, :vagrant)
23
23
  end
24
24
  end
25
25
  end
@@ -18,24 +18,23 @@ module BeakerHostGenerator
18
18
  base_config = base_generate_node(node_info, base_config, bhg_version, :vmpooler)
19
19
 
20
20
  case node_info['ostype']
21
- when /^(almalinux|centos|redhat|rocky)/
22
- base_config['template'] ||= base_config['platform'].gsub(/^el/, $1)
23
- when /^fedora/
21
+ when /^(almalinux|centos|oracle|redhat|rocky|scientific)/
22
+ base_config['template'] ||= base_config['platform'].gsub(/^el/, ::Regexp.last_match(1))
23
+ when /^fedora/, /^opensuse/, /^panos/
24
24
  base_config['template'] ||= base_config['platform']
25
- when /^ubuntu/
25
+ when /^(debian|ubuntu)/
26
+ os = Regexp.last_match(1)
26
27
  arch = case node_info['bits']
27
28
  when '64'
28
29
  'x86_64'
29
30
  when '32'
30
31
  'i386'
31
- else
32
- nil
33
32
  end
34
33
 
35
- base_config['template'] ||= "#{node_info['ostype'].sub('ubuntu', 'ubuntu-')}-#{arch}" if arch
34
+ base_config['template'] ||= "#{node_info['ostype'].sub(os, "#{os}-")}-#{arch}" if arch
36
35
  end
37
36
 
38
- return base_config
37
+ base_config
39
38
  end
40
39
  end
41
40
  end
@@ -37,7 +37,7 @@ module BeakerHostGenerator
37
37
  #
38
38
  # @returns [Hash{String=>Hypervisor::Interface}] A map of hypervisor names
39
39
  # and their implementations.
40
- def self.builtin_hypervisors()
40
+ def self.builtin_hypervisors
41
41
  {
42
42
  'vmpooler' => BeakerHostGenerator::Hypervisor::Vmpooler,
43
43
  'vagrant' => BeakerHostGenerator::Hypervisor::Vagrant,
@@ -60,7 +60,7 @@ module BeakerHostGenerator
60
60
  # This will only be called if the hypervisor is used for a node, in which
61
61
  # case the returned map will be merged in with global configuration from
62
62
  # other hypervisors.
63
- def global_config()
63
+ def global_config
64
64
  {}
65
65
  end
66
66
 
@@ -84,7 +84,7 @@ module BeakerHostGenerator
84
84
  #
85
85
  # @param [Integer] bhg_version The version of OS info to use when building
86
86
  # up the node definition.
87
- def generate_node(node_info, base_config, bhg_version)
87
+ def generate_node(_node_info, _base_config, _bhg_version)
88
88
  raise "Method 'generate_node' not implemented!"
89
89
  end
90
90
 
@@ -98,7 +98,7 @@ module BeakerHostGenerator
98
98
 
99
99
  base_config['hypervisor'] = @name
100
100
 
101
- return base_config
101
+ base_config
102
102
  end
103
103
  end
104
104
  end
@@ -1,6 +1,7 @@
1
1
  require 'beaker-hostgenerator/data'
2
2
  require 'beaker-hostgenerator/exceptions'
3
3
  require 'cgi'
4
+ require 'strscan'
4
5
 
5
6
  module BeakerHostGenerator
6
7
  # Functions for parsing the raw user input host layout string and turning
@@ -62,7 +63,7 @@ module BeakerHostGenerator
62
63
  # * agent
63
64
  # * database
64
65
  #
65
- NODE_REGEX = /\A(?<bits>[A-Z0-9]+|\d+)((?<arbitrary_roles>([[:lower:]_]*|\,)*)\.)?(?<roles>[uacldfm]*)(?<host_settings>\{[[:print:]]*\})?\Z/
66
+ NODE_REGEX = /\A(?<bits>[A-Z0-9]+|\d+)((?<arbitrary_roles>([[:lower:]_]*|,)*)\.)?(?<roles>[uacldfm]*)(?<host_settings>\{[[:print:]]*\})?\Z/
66
67
 
67
68
  module_function
68
69
 
@@ -137,13 +138,7 @@ module BeakerHostGenerator
137
138
  # @param [Integer] bhg_version The version of OS info to use when testing
138
139
  # for whether the token represent an OS platform.
139
140
  def is_ostype_token?(token, bhg_version)
140
- BeakerHostGenerator::Data.get_platforms(bhg_version).each do |platform|
141
- ostype = platform.split('-')[0]
142
- if ostype == token
143
- return true
144
- end
145
- end
146
- return false
141
+ BeakerHostGenerator::Data.get_platforms(bhg_version).any? { |platform| platform.split('-')[0] == token }
147
142
  end
148
143
 
149
144
  # Converts a string token that represents a node (and not an OS type) into
@@ -168,28 +163,20 @@ module BeakerHostGenerator
168
163
  node_info = NODE_REGEX.match(token)
169
164
 
170
165
  if node_info
171
- node_info = Hash[node_info.names.zip(node_info.captures)]
166
+ node_info = node_info.names.zip(node_info.captures).to_h
172
167
  else
173
168
  raise BeakerHostGenerator::Exceptions::InvalidNodeSpecError.new,
174
169
  "Invalid node_info token: #{token}"
175
170
  end
171
+ node_info['arbitrary_roles'] = if node_info['arbitrary_roles']
172
+ node_info['arbitrary_roles'].split(',') || ''
173
+ else
174
+ # Default to empty list to avoid having to check for nil elsewhere
175
+ []
176
+ end
177
+ node_info['host_settings'] = node_info['host_settings'] ? settings_string_to_map(node_info['host_settings']) : {}
176
178
 
177
- if node_info['arbitrary_roles']
178
- node_info['arbitrary_roles'] =
179
- node_info['arbitrary_roles'].split(',') || ''
180
- else
181
- # Default to empty list to avoid having to check for nil elsewhere
182
- node_info['arbitrary_roles'] = []
183
- end
184
-
185
- if node_info['host_settings']
186
- node_info['host_settings'] =
187
- settings_string_to_map(node_info['host_settings'])
188
- else
189
- node_info['host_settings'] = {}
190
- end
191
-
192
- return node_info
179
+ node_info
193
180
  end
194
181
 
195
182
  # Transforms the arbitrary host settings map from a string representation
@@ -228,7 +215,7 @@ module BeakerHostGenerator
228
215
 
229
216
  break if blob.nil?
230
217
 
231
- if stringscan.pos() == 1
218
+ if stringscan.pos == 1
232
219
  object = {}
233
220
  object_depth.push(object)
234
221
  next
@@ -251,7 +238,7 @@ module BeakerHostGenerator
251
238
  next
252
239
  end
253
240
 
254
- if blob == ']' or blob == '}'
241
+ if [']', '}'].include?(blob)
255
242
  object_depth.pop
256
243
  current_depth = current_depth.pred
257
244
  next
@@ -263,11 +250,11 @@ module BeakerHostGenerator
263
250
  if blob[-2] == '='
264
251
  raise Beaker::HostGenerator::Exceptions::InvalidNodeSpecError unless blob.end_with?('{', '[')
265
252
 
266
- if blob[-1] == '{'
267
- current_object[blob[0..-3]] = {}
268
- else
269
- current_object[blob[0..-3]] = []
270
- end
253
+ current_object[blob[0..-3]] = if blob[-1] == '{'
254
+ {}
255
+ else
256
+ []
257
+ end
271
258
  object_depth.push(current_object[blob[0..-3]])
272
259
  current_depth = current_depth.next
273
260
  next
@@ -288,9 +275,7 @@ module BeakerHostGenerator
288
275
  next
289
276
  end
290
277
 
291
- if blob == ','
292
- next
293
- end
278
+ next if blob == ','
294
279
 
295
280
  if blob[-1] == ','
296
281
  if current_type == Hash
@@ -308,18 +293,18 @@ module BeakerHostGenerator
308
293
  end
309
294
  end
310
295
 
311
- if blob[-1] == ']'
312
- current_object.push(blob[0..-2])
313
- object_depth.pop
314
- current_depth = current_depth.pred
315
- next
316
- end
296
+ next unless blob[-1] == ']'
297
+
298
+ current_object.push(blob[0..-2])
299
+ object_depth.pop
300
+ current_depth = current_depth.pred
301
+ next
317
302
  end
318
303
 
319
304
  object
320
305
  rescue Exception
321
306
  raise BeakerHostGenerator::Exceptions::InvalidNodeSpecError,
322
- "Malformed host settings: #{host_settings}"
307
+ "Malformed host settings: #{host_settings}"
323
308
  end
324
309
  end
325
310
  end
@@ -11,10 +11,9 @@ module BeakerHostGenerator
11
11
  }
12
12
 
13
13
  CM_CONFIG = { 'main' => {
14
- 'dns_alt_names' => 'puppet',
15
- 'environmentpath' => '/etc/puppetlabs/puppet/environments',
16
- },
17
- }
14
+ 'dns_alt_names' => 'puppet',
15
+ 'environmentpath' => '/etc/puppetlabs/puppet/environments',
16
+ } }
18
17
 
19
18
  ROLE_CONFIG = {
20
19
  'compile_master' => CM_CONFIG,
@@ -7,7 +7,7 @@ module BeakerHostGenerator
7
7
  module Utils
8
8
  module_function
9
9
 
10
- def pe_dir(version, family = nil)
10
+ def pe_dir(version, _family = nil)
11
11
  BeakerHostGenerator::Data.pe_dir(version)
12
12
  end
13
13
 
@@ -15,7 +15,7 @@ module BeakerHostGenerator
15
15
  vmpooler_hypervisor = BeakerHostGenerator::Hypervisor::Vmpooler.new
16
16
  config = {}
17
17
  config.deeper_merge! BeakerHostGenerator::Data.BASE_CONFIG
18
- config['CONFIG'].deeper_merge! vmpooler_hypervisor.global_config()
18
+ config['CONFIG'].deeper_merge! vmpooler_hypervisor.global_config
19
19
 
20
20
  hosts.each do |host|
21
21
  config['HOSTS'][host.node_name] = {
@@ -25,12 +25,10 @@ module BeakerHostGenerator
25
25
  }
26
26
  end
27
27
 
28
- File.open(path, 'w') do |file|
29
- file.write(config.to_yaml)
30
- end
28
+ File.write(path, config.to_yaml)
31
29
  end
32
30
 
33
- def get_platforms(hypervisor_type = 'vmpooler', bhg_version = 0)
31
+ def get_platforms(_hypervisor_type = 'vmpooler', bhg_version = 0)
34
32
  BeakerHostGenerator::Data.get_platforms(bhg_version)
35
33
  end
36
34
 
@@ -1,5 +1,5 @@
1
1
  module BeakerHostGenerator
2
2
  module Version
3
- STRING = '2.1.0'
3
+ STRING = '2.2.1'
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
1
  # Load libraries.
2
2
 
3
3
  module BeakerHostGenerator
4
- require 'beaker-hostgenerator/cli'
5
- require 'beaker-hostgenerator/data'
6
- require 'beaker-hostgenerator/generator'
4
+ require 'beaker-hostgenerator/cli'
5
+ require 'beaker-hostgenerator/data'
6
+ require 'beaker-hostgenerator/generator'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-hostgenerator
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Branan Purvine-Riley
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-05-02 00:00:00.000000000 Z
14
+ date: 2023-07-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: fakefs
@@ -37,16 +37,16 @@ dependencies:
37
37
  name: minitest
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">="
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '0'
42
+ version: '5.18'
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '0'
49
+ version: '5.18'
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: pry
52
52
  requirement: !ruby/object:Gem::Requirement
@@ -93,44 +93,16 @@ dependencies:
93
93
  name: rspec-its
94
94
  requirement: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: '0'
99
- type: :development
100
- prerelease: false
101
- version_requirements: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- version: '0'
106
- - !ruby/object:Gem::Dependency
107
- name: thin
108
- requirement: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: '0'
113
- type: :development
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '0'
120
- - !ruby/object:Gem::Dependency
121
- name: yard
122
- requirement: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - ">="
96
+ - - "~>"
125
97
  - !ruby/object:Gem::Version
126
- version: '0'
98
+ version: '1.3'
127
99
  type: :development
128
100
  prerelease: false
129
101
  version_requirements: !ruby/object:Gem::Requirement
130
102
  requirements:
131
- - - ">="
103
+ - - "~>"
132
104
  - !ruby/object:Gem::Version
133
- version: '0'
105
+ version: '1.3'
134
106
  - !ruby/object:Gem::Dependency
135
107
  name: deep_merge
136
108
  requirement: !ruby/object:Gem::Requirement
@@ -193,7 +165,7 @@ files:
193
165
  - lib/beaker-hostgenerator/version.rb
194
166
  homepage: https://github.com/puppetlabs/beaker-hostgenerator
195
167
  licenses:
196
- - Apache2
168
+ - Apache-2.0
197
169
  metadata: {}
198
170
  post_install_message:
199
171
  rdoc_options: []