vanagon 0.15.10 → 0.15.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c881a94010be196e7f3ca83630dcd5992942e05e
4
- data.tar.gz: aa92f93959346079d3860751d901319a5b94c86d
3
+ metadata.gz: dd7f47d8b1278c31171ea168f3fd9c256852fa60
4
+ data.tar.gz: 5d8fe77d2118bcc5d504d63af7579f51ca6a1551
5
5
  SHA512:
6
- metadata.gz: 614fb484ead28a97271a5de18fa03a2772b6026a2af72c64666afbb01fb06d0e866528c0ae3dc623ab2b51ad87e0b3a63bd29807be2b019424143c46785c5397
7
- data.tar.gz: a330ed57d45a948ab45d8949e078f9d9efbefa0a33d1c0b21c8a96993a076b3c5e1487e83def372b66f074b603bc0962de22e4c4ee6232ed4c9ca4a8cef96dcc
6
+ metadata.gz: 39ba4af17ff65f15b90a8c79944e32251986978b3c90102827fb978a9b2aee0ffec071041d7fd44b622b6c237edcc2a698776389c4cddf2049f9104dab8bbccc
7
+ data.tar.gz: 372a532f5eedc4efbd2f33c830c1a3835a91218a737d61c5359f37fd96a3de8cbf78674574972473377304e0c2030c7c259240753b3a9a4b231e29b78ae53acd
@@ -175,7 +175,6 @@ class Vanagon
175
175
  @preremove_actions = []
176
176
  @postremove_actions = []
177
177
  @install_only = false
178
- @service = []
179
178
  end
180
179
 
181
180
  # Adds the given file to the list of files and returns @files.
@@ -163,40 +163,36 @@ class Vanagon
163
163
  #
164
164
  # @param service_file [String] path to the service file relative to the source
165
165
  # @param default_file [String] path to the default file relative to the source
166
- # @param options optional extra parameters
167
- # service_name [String] name of the service
168
- # service_type [String] type of the service (network, application, system, etc)
169
- # link_target [String] executable service file should be linked to
170
- def install_service(service_file, default_file = nil, service_name = @component.name, **options) # rubocop:disable Metrics/AbcSize
171
- init_system = options[:init_system] || @component.platform.servicetype
172
- servicedir = @component.platform.get_service_dir(init_system)
173
-
174
- case init_system
166
+ # @param service_name [String] name of the service
167
+ # @param service_type [String] type of the service (network, application, system, etc)
168
+ # @param link_target [String] executable service file should be linked to
169
+ def install_service(service_file, default_file = nil, service_name = @component.name, service_type: nil, link_target: nil) # rubocop:disable Metrics/AbcSize
170
+ case @component.platform.servicetype
175
171
  when "sysv"
176
- target_service_file = File.join(servicedir, service_name)
172
+ target_service_file = File.join(@component.platform.servicedir, service_name)
177
173
  target_default_file = File.join(@component.platform.defaultdir, service_name)
178
174
  target_mode = '0755'
179
175
  default_mode = '0644'
180
176
  when "systemd"
181
- target_service_file = File.join(servicedir, "#{service_name}.service")
177
+ target_service_file = File.join(@component.platform.servicedir, "#{service_name}.service")
182
178
  target_default_file = File.join(@component.platform.defaultdir, service_name)
183
179
  target_mode = '0644'
184
180
  default_mode = '0644'
185
181
  when "launchd"
186
- target_service_file = File.join(servicedir, "#{service_name}.plist")
182
+ target_service_file = File.join(@component.platform.servicedir, "#{service_name}.plist")
187
183
  target_mode = '0644'
188
184
  default_mode = '0644'
189
185
  when "smf"
190
- target_service_file = File.join(servicedir, options[:service_type].to_s, "#{service_name}.xml")
186
+ target_service_file = File.join(@component.platform.servicedir, service_type.to_s, "#{service_name}.xml")
191
187
  target_default_file = File.join(@component.platform.defaultdir, service_name)
192
188
  target_mode = '0644'
193
189
  default_mode = '0755'
194
190
  when "aix"
195
- @component.service << OpenStruct.new(:name => service_name, :service_command => File.read(service_file).chomp)
191
+ @component.service = OpenStruct.new(:name => service_name, :service_command => File.read(service_file).chomp)
196
192
  # Return here because there is no file to install, just a string read in
197
193
  return
198
194
  when "windows"
199
- @component.service << OpenStruct.new(\
195
+ @component.service = OpenStruct.new(\
200
196
  :bindir_id => "#{service_name.gsub(/[^A-Za-z0-9]/, '').upcase}BINDIR", \
201
197
  :service_file => service_file, \
202
198
  :component_group_id => "#{service_name.gsub(/[^A-Za-z0-9]/, '')}Component"\
@@ -204,13 +200,13 @@ class Vanagon
204
200
  # return here as we are just collecting the name of the service file to put into the harvest filter list.
205
201
  return
206
202
  else
207
- fail "Don't know how to install the #{init_system}. Please teach #install_service how to do this."
203
+ fail "Don't know how to install the #{@component.platform.servicetype}. Please teach #install_service how to do this."
208
204
  end
209
205
 
210
206
  # Install the service and default files
211
- if options[:link_target]
212
- install_file(service_file, options[:link_target], mode: target_mode)
213
- link options[:link_target], target_service_file
207
+ if link_target
208
+ install_file(service_file, link_target, mode: target_mode)
209
+ link link_target, target_service_file
214
210
  else
215
211
  install_file(service_file, target_service_file, mode: target_mode)
216
212
  end
@@ -221,7 +217,7 @@ class Vanagon
221
217
  end
222
218
 
223
219
  # Register the service for use in packaging
224
- @component.service << OpenStruct.new(:name => service_name, :service_file => target_service_file, :type => options[:service_type])
220
+ @component.service = OpenStruct.new(:name => service_name, :service_file => target_service_file, :type => service_type)
225
221
  end
226
222
 
227
223
  # Copies a file from source to target during the install phase of the component
@@ -32,9 +32,6 @@ class Vanagon
32
32
  # Where does a given platform expect to find init scripts/service files?
33
33
  # e.g. /etc/init.d, /usr/lib/systemd/system
34
34
  attr_accessor :servicedir
35
- # Array of OpenStructs containing the servicetype and the corresponding
36
- # servicedir
37
- attr_accessor :servicetypes
38
35
  # Where does a given platform's init system expect to find
39
36
  # something resembling 'defaults' files. Most likely to apply
40
37
  # to Linux systems that use SysV-ish, upstart, or systemd init systems.
@@ -242,7 +239,6 @@ class Vanagon
242
239
  # Our first attempt at defining metadata about a platform
243
240
  @cross_compiled ||= false
244
241
  @valid_operators ||= ['<', '>', '<=', '>=', '=']
245
- @servicetypes = []
246
242
  end
247
243
 
248
244
  def shell # rubocop:disable Lint/DuplicateMethods
@@ -534,33 +530,5 @@ class Vanagon
534
530
  def validate_operator(operator_string)
535
531
  valid_operators.include?(operator_string)
536
532
  end
537
-
538
- # Get all configured service types (added through plat.servicetype)
539
- # @return array of service types, empty array if none have been configured
540
- def get_service_types
541
- if @servicetypes.any?
542
- @servicetypes.flat_map(&:servicetype).compact
543
- elsif @servicetype
544
- [@servicetype]
545
- else
546
- []
547
- end
548
- end
549
-
550
- # Get configured service dir (added through plat.servicedir, or plat.servicetype 'foo', servicedir: 'bar')
551
- # @param servicetype the service type you want the service dir for (optional)
552
- # @raises VanagonError if more than one service dir is found
553
- def get_service_dir(servicetype = '')
554
- if @servicetypes.empty?
555
- return @servicedir
556
- end
557
- servicedir = @servicetypes.select { |s| s.servicetype.include?(servicetype) }.flat_map(&:servicedir).compact
558
-
559
- if servicedir.size > 1
560
- raise Vanagon::Error, "You can only have one service dir for each service type. Found '#{servicedir.join(',')}' for service type #{servicetype}"
561
- end
562
-
563
- servicedir.first
564
- end
565
533
  end
566
534
  end
@@ -9,7 +9,6 @@ require 'vanagon/platform/solaris_10'
9
9
  require 'vanagon/platform/solaris_11'
10
10
  require 'vanagon/platform/windows'
11
11
  require 'securerandom'
12
- require 'ostruct'
13
12
  require 'uri'
14
13
 
15
14
  class Vanagon
@@ -219,11 +218,6 @@ class Vanagon
219
218
  # @param dir [String] Directory where service files live on the platform
220
219
  def servicedir(dir)
221
220
  @platform.servicedir = dir
222
-
223
- # Add to the servicetypes array if we haven't already
224
- if @platform.servicetype && @platform.servicedir && @platform.servicetypes.select { |s| s.servicetype == @platform.servicetype }.empty?
225
- @platform.servicetypes << OpenStruct.new(:servicetype => @platform.servicetype, :servicedir => @platform.servicedir)
226
- end
227
221
  end
228
222
 
229
223
  # Set the directory where default or sysconfig files live for the platform
@@ -236,18 +230,8 @@ class Vanagon
236
230
  # Set the servicetype for the platform so that services can be installed correctly.
237
231
  #
238
232
  # @param type [String] service type for the platform ('sysv' for example)
239
- # @param servicedir [String] service dir for this platform and service type ('/etc/init.d' for example). Optional.
240
- def servicetype(type, servicedir: nil) # rubocop:disable Metrics/AbcSize
241
- if servicedir
242
- @platform.servicetypes << OpenStruct.new(:servicetype => type, :servicedir => servicedir)
243
- else
244
- @platform.servicetype = type
245
- end
246
-
247
- # Add to the servicetypes array if we haven't already
248
- if @platform.servicetype && @platform.servicedir && @platform.servicetypes.select { |s| s.servicetype == @platform.servicetype }.empty?
249
- @platform.servicetypes << OpenStruct.new(:servicetype => @platform.servicetype, :servicedir => @platform.servicedir)
250
- end
233
+ def servicetype(type)
234
+ @platform.servicetype = type
251
235
  end
252
236
 
253
237
  # Set the list of possible host to perform a build on (when not using
@@ -293,14 +293,10 @@ class Vanagon
293
293
  # will return nil
294
294
  #
295
295
  # @param [string] name of service to grab
296
- # @return [@component.service obj] specific service, or array of services
297
- # if there's more than one
296
+ # @return [@component.service obj] specific service
298
297
  def get_service(name)
299
298
  components.each do |component|
300
299
  if component.name == name
301
- if component.service.size == 1
302
- return component.service.first
303
- end
304
300
  return component.service
305
301
  end
306
302
  end
@@ -747,7 +743,11 @@ class Vanagon
747
743
  sum: settings_sha1_uri,
748
744
  sum_type: 'sha1')
749
745
  source.fetch
750
- @settings.merge!(YAML.safe_load(File.read(File.join(working_directory, source.file)), [Symbol]))
746
+ yaml_path = source.file
747
+ if source_type == :http
748
+ yaml_path = File.join(working_directory, source.file)
749
+ end
750
+ @settings.merge!(YAML.safe_load(File.read(yaml_path), [Symbol]))
751
751
  end
752
752
  end
753
753
  end
@@ -2,23 +2,18 @@
2
2
  <%- get_services.each do |service| -%>
3
3
  # switch based on systemd vs systemv
4
4
  #
5
- <%- if service.init_system.nil? || service.init_system.eq?('systemd') -%>
6
- if [ -d '/run/systemd/system' ] ; then
7
- if [ -z "$2" ]; then
8
- systemctl enable <%= service.name %>.service >/dev/null || :
9
- else
10
- systemctl try-restart <%= service.name %>.service >/dev/null || :
11
- fi
5
+ <%- if @platform.servicetype == "systemd" -%>
6
+ if [ -z "$2" ]; then
7
+ systemctl enable <%= service.name %>.service >/dev/null || :
8
+ else
9
+ systemctl try-restart <%= service.name %>.service >/dev/null || :
12
10
  fi
13
- <%- end -%>
14
- <%- if service.init_system.nil? || service.init_system.eq?('sysv') -%>
15
- if [ ! -d '/run/systemd/system' ] ; then
16
- if [ -x "<%= service.service_file %>" ]; then
17
- update-rc.d <%= service.name %> defaults > /dev/null
11
+ <%- elsif @platform.servicetype == "sysv" -%>
12
+ if [ -x "<%= service.service_file %>" ]; then
13
+ update-rc.d <%= service.name %> defaults > /dev/null
18
14
 
19
- if [ -n "$2" ]; then
20
- invoke-rc.d <%= service.name %> condrestart || true
21
- fi
15
+ if [ -n "$2" ]; then
16
+ invoke-rc.d <%= service.name %> condrestart || true
22
17
  fi
23
18
  fi
24
19
  <%- end -%>
@@ -32,17 +27,17 @@ fi
32
27
 
33
28
  # Set up any specific permissions needed...
34
29
  <%- (get_directories + get_configfiles + get_files).select { |pathname| pathname.has_overrides? }.uniq.each do |file_or_directory| -%>
35
- <%= "chmod '#{file_or_directory.mode}' '#{file_or_directory.path}' &>/dev/null ||:" if file_or_directory.mode %>
30
+ <%= "chmod '#{file_or_directory.mode}' '#{file_or_directory.path}'" if file_or_directory.mode %>
36
31
  <%- if file_or_directory.owner -%>
37
32
  if getent passwd '<%= file_or_directory.owner %>' &> /dev/null; then
38
- chown '<%= file_or_directory.owner %>' '<%= file_or_directory.path %>' &>/dev/null ||:
33
+ chown '<%= file_or_directory.owner %>' '<%= file_or_directory.path %>'
39
34
  else
40
35
  echo "Error updating '<%= file_or_directory.path %>': user '<%= file_or_directory.owner %>' does not exist."
41
36
  fi
42
37
  <%- end -%>
43
38
  <%- if file_or_directory.group -%>
44
39
  if getent group '<%= file_or_directory.group %>' &> /dev/null; then
45
- chgrp '<%= file_or_directory.group %>' '<%= file_or_directory.path %>' &>/dev/null ||:
40
+ chgrp '<%= file_or_directory.group %>' '<%= file_or_directory.path %>'
46
41
  else
47
42
  echo "Error updating '<%= file_or_directory.path %>': group '<%= file_or_directory.group %>' does not exist."
48
43
  fi
@@ -13,11 +13,11 @@ fi
13
13
  <%- get_services.each do |service| -%>
14
14
  # switch based on systemd vs systemv
15
15
  #
16
- if [ -d '/run/systemd/system' ] ; then
17
- systemctl daemon-reload >/dev/null 2>&1 || :
18
- else
19
- if [ "$1" = "purge" ] ; then
20
- update-rc.d <%= service.name %> remove > /dev/null
21
- fi
16
+ <%- if @platform.servicetype == "systemd" -%>
17
+ systemctl daemon-reload >/dev/null 2>&1 || :
18
+ <%- elsif @platform.servicetype == "sysv" -%>
19
+ if [ "$1" = "purge" ] ; then
20
+ update-rc.d <%= service.name %> remove > /dev/null
22
21
  fi
22
+ <%- end -%>
23
23
  <%- end -%>
@@ -13,19 +13,15 @@ fi
13
13
  <%- get_services.each do |service| -%>
14
14
  # switch based on systemd vs systemv
15
15
  #
16
- <%- if service.init_system.nil? || service.init_system.eq?('systemd') -%>
17
- if [ -d '/run/systemd/system' ] ; then
18
- if [ "$1" = remove ]; then
19
- systemctl --no-reload disable <%= service.name %>.service > /dev/null 2>&1 || :
20
- systemctl stop <%= service.name %>.service > /dev/null 2>&1 || :
21
- fi
16
+ <%- if @platform.servicetype == "systemd" -%>
17
+ if [ "$1" = remove ]; then
18
+ systemctl --no-reload disable <%= service.name %>.service > /dev/null 2>&1 || :
19
+ systemctl stop <%= service.name %>.service > /dev/null 2>&1 || :
22
20
  fi
23
- <%- end -%>
24
- <%- if service.init_system.nil? || service.init_system.eq?('sysv') -%>
25
- if [ ! -d '/run/systemd/system' ] ; then
26
- if [ -x "<%= service.service_file %>" ] && [ "$1" = remove ]; then
27
- invoke-rc.d <%= service.name %> stop || true
28
- fi
21
+
22
+ <%- elsif @platform.servicetype == "sysv" -%>
23
+ if [ -x "<%= service.service_file %>" ] && [ "$1" = remove ]; then
24
+ invoke-rc.d <%= service.name %> stop || true
29
25
  fi
30
26
  <%- end -%>
31
27
  <%- end -%>
@@ -76,7 +76,7 @@ Requires(post): /bin/touch
76
76
  <%- end -%>
77
77
 
78
78
  <%- if has_services? -%>
79
- <%- if @platform.get_service_types.include?("systemd") -%>
79
+ <%- if @platform.servicetype == "systemd" -%>
80
80
  <%- if @platform.is_sles? -%>
81
81
  BuildRequires: systemd
82
82
  %{?systemd_requires}
@@ -86,7 +86,7 @@ Requires(post): systemd
86
86
  Requires(preun): systemd
87
87
  Requires(postun): systemd
88
88
  <%- end -%>
89
- <%- elsif @platform.get_service_types.include?("sysv") -%>
89
+ <%- elsif @platform.servicetype == "sysv" -%>
90
90
  <%- if @platform.is_sles? -%>
91
91
  Requires: aaa_base
92
92
  <%- elsif @platform.is_linux? -%>
@@ -230,15 +230,15 @@ fi
230
230
  <%- get_services.each do |service| -%>
231
231
  # switch based on systemd vs systemv vs smf vs aix
232
232
  #
233
- <%- if @platform.get_service_types.include?("systemd") -%>
233
+ <%- if @platform.servicetype == "systemd" -%>
234
234
  <%- if @platform.is_sles? -%>
235
235
  %service_add_post <%= service.name %>.service
236
236
  <%- else -%>
237
237
  %systemd_post <%= service.name %>.service
238
238
  <%- end -%>
239
- <%- elsif @platform.get_service_types.include?("sysv") -%>
239
+ <%- elsif @platform.servicetype == "sysv" -%>
240
240
  chkconfig --add <%= service.name %> >/dev/null 2>&1 || :
241
- <%- elsif @platform.get_service_types.include?("aix") -%>
241
+ <%- elsif @platform.servicetype == "aix" -%>
242
242
  if /usr/bin/lssrc -s <%= service.name -%> > /dev/null 2>&1; then
243
243
  /usr/bin/chssys -s <%= service.name -%> -p <%= service.service_command -%> -w 7 -S -n 15 -f 9 > /dev/null 2>&1 || :
244
244
  else
@@ -279,17 +279,17 @@ fi
279
279
  <%- get_services.each do |service| -%>
280
280
  # switch based on systemd vs systemv vs smf vs aix
281
281
  #
282
- <%- if @platform.get_service_types.include?("systemd") -%>
282
+ <%- if @platform.servicetype == "systemd" -%>
283
283
  <%- if @platform.is_sles? -%>
284
284
  %service_del_postun <%= service.name %>.service
285
285
  <%- else -%>
286
286
  %systemd_postun_with_restart <%= service.name %>.service
287
287
  <%- end -%>
288
- <%- elsif @platform.get_service_types.include?("sysv") -%>
288
+ <%- elsif @platform.servicetype == "sysv" -%>
289
289
  if [ "$1" -eq 1 ]; then
290
290
  /sbin/service <%= service.name %> condrestart || :
291
291
  fi
292
- <%- elsif @platform.get_service_types.include?("aix") -%>
292
+ <%- elsif @platform.servicetype == "aix" -%>
293
293
  if [ "$1" -eq 0 ]; then
294
294
  /usr/bin/rmssys -s <%= service.name -%> > /dev/null 2>&1 || :
295
295
  /usr/sbin/rmitab <%= service.name -%> > /dev/null 2>&1 || :
@@ -310,18 +310,18 @@ if [ "$1" -eq 0 ] ; then
310
310
  fi
311
311
 
312
312
  <%- get_services.each do |service| -%>
313
- <%- if @platform.get_service_types.include?("systemd") -%>
313
+ <%- if @platform.servicetype == "systemd" -%>
314
314
  <%- if @platform.is_sles? -%>
315
315
  %service_del_preun <%= service.name %>.service
316
316
  <%- else -%>
317
317
  %systemd_preun <%= service.name %>.service
318
318
  <%- end -%>
319
- <%- elsif @platform.get_service_types.include?("sysv") -%>
319
+ <%- elsif @platform.servicetype == "sysv" -%>
320
320
  if [ "$1" -eq 0 ]; then
321
321
  /sbin/service <%= service.name %> stop >/dev/null 2>&1 || :
322
322
  chkconfig --del <%= service.name %> || :
323
323
  fi
324
- <%- elsif @platform.get_service_types.include?("aix") -%>
324
+ <%- elsif @platform.servicetype == "aix" -%>
325
325
  # stop the service only on a real uninstall, not on upgrades
326
326
  if [ "$1" -eq 0 ] ; then
327
327
  /usr/bin/stopsrc -s <%= service.name -%> > /dev/null 2>&1 || :
@@ -33,16 +33,6 @@ end" }
33
33
  plat._platform
34
34
  }
35
35
 
36
- let (:dummy_platform_sysv_or_systemd) {
37
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
38
- plat.instance_eval("platform 'debian-8-x86_64' do |plat|
39
- plat.servicetype 'sysv', servicedir: '/etc/init.d'
40
- plat.servicetype 'systemd', servicedir: '/usr/lib/systemd/system'
41
- plat.defaultdir '/etc/default'
42
- end")
43
- plat._platform
44
- }
45
-
46
36
  let (:dummy_platform_smf) {
47
37
  plat = Vanagon::Platform::DSL.new('debian-11-i386')
48
38
  plat.instance_eval("platform 'debian-11-i386' do |plat|
@@ -577,15 +567,15 @@ end" }
577
567
  expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/etc/init.d/service-test', mode: '0755'))
578
568
 
579
569
  # The component should now have a service registered
580
- expect(comp._component.service.flat_map(&:name).compact).to include('service-test')
570
+ expect(comp._component.service.name).to eq('service-test')
581
571
  end
582
572
 
583
573
  it 'reads from a file when the OS is AIX for services' do
584
574
  comp = Vanagon::Component::DSL.new('service-test', {}, dummy_platform_aix)
585
575
  comp.install_service('spec/fixtures/component/mcollective.service', nil, 'mcollective')
586
- expect(comp._component.service.flat_map(&:name).compact).to include('mcollective')
587
- expect(comp._component.service.flat_map(&:service_command).compact.first).to include('/opt/puppetlabs/puppet/bin/ruby')
588
- expect(comp._component.service.flat_map(&:service_command).compact.first).not_to include("\n")
576
+ expect(comp._component.service.name).to eq('mcollective')
577
+ expect(comp._component.service.service_command).to include('/opt/puppetlabs/puppet/bin/ruby')
578
+ expect(comp._component.service.service_command).not_to include("\n")
589
579
  end
590
580
 
591
581
  it 'adds the correct command to the install for the component for systemd platforms' do
@@ -604,34 +594,7 @@ end" }
604
594
  expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/usr/lib/systemd/system/service-test.service', mode: '0644'))
605
595
 
606
596
  # The component should now have a service registered
607
- expect(comp._component.service.flat_map(&:name).compact).to include('service-test')
608
- end
609
-
610
- it 'adds the correct command when installing both systemd and sysv' do
611
- comp = Vanagon::Component::DSL.new('service-test', {}, dummy_platform_sysv_or_systemd)
612
- comp.install_service('component-client.init', 'component-client.sysconfig', init_system: 'sysv')
613
- comp.install_service('component-client.service', 'component-client.sysconfig', init_system: 'systemd')
614
- # Look for servicedir creation and copy - sysv
615
- expect(comp._component.install).to include("install -d '/etc/init.d'")
616
- expect(comp._component.install).to include("cp -p 'component-client.init' '/etc/init.d/service-test'")
617
-
618
- # Look for servicedir creation and copy - systemd
619
- expect(comp._component.install).to include("install -d '/usr/lib/systemd/system'")
620
- expect(comp._component.install).to include("cp -p 'component-client.service' '/usr/lib/systemd/system/service-test.service'")
621
-
622
- # Look for defaultdir creation and copy
623
- expect(comp._component.install).to include("install -d '/etc/default'")
624
- expect(comp._component.install).to include("cp -p 'component-client.sysconfig' '/etc/default/service-test'")
625
-
626
- # Look for files and configfiles - sysv
627
- expect(comp._component.configfiles).to include(Vanagon::Common::Pathname.configfile('/etc/default/service-test'))
628
- expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/etc/init.d/service-test', mode: '0755'))
629
-
630
- # Look for files and configfiles - systemd
631
- expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/usr/lib/systemd/system/service-test.service', mode: '0644'))
632
-
633
- # The component should now have a service registered
634
- expect(comp._component.service.flat_map(&:name).compact).to include('service-test')
597
+ expect(comp._component.service.name).to eq('service-test')
635
598
  end
636
599
 
637
600
  it 'adds the correct command to the install for smf services using a service_type' do
@@ -650,7 +613,7 @@ end" }
650
613
  expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/var/svc/manifest/network/service-test.xml', mode: '0644'))
651
614
 
652
615
  # The component should now have a service registered
653
- expect(comp._component.service.flat_map(&:name).compact).to include('service-test')
616
+ expect(comp._component.service.name).to eq('service-test')
654
617
  end
655
618
 
656
619
  it 'adds the correct command to the install for smf services' do
@@ -669,7 +632,7 @@ end" }
669
632
  expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/var/svc/manifest/service-test.xml', mode: '0644'))
670
633
 
671
634
  # The component should now have a service registered
672
- expect(comp._component.service.flat_map(&:name).compact).to include('service-test')
635
+ expect(comp._component.service.name).to eq('service-test')
673
636
  end
674
637
 
675
638
  it 'installs the file as a link when link_target is specified' do
@@ -690,7 +653,7 @@ end" }
690
653
  expect(comp._component.files).to include(Vanagon::Common::Pathname.file('/etc/init.d/service-test'))
691
654
 
692
655
  # The component should now have a service registered
693
- expect(comp._component.service.flat_map(&:name).compact).to include('service-test')
656
+ expect(comp._component.service.name).to eq('service-test')
694
657
  end
695
658
  end
696
659
 
@@ -1,33 +1,6 @@
1
1
  require 'vanagon/platform'
2
2
 
3
3
  describe "Vanagon::Platform" do
4
- let(:deb_platform_just_servicedir) { "platform 'debian-test-fixture' do |plat|
5
- plat.servicedir '/etc/init.d'
6
- end
7
- "}
8
- let(:deb_platform_just_servicetype) { "platform 'debian-test-fixture' do |plat|
9
- plat.servicetype 'sysv'
10
- end
11
- "}
12
- let(:deb_platform_multi_servicetypes) { "platform 'debian-test-fixture' do |plat|
13
- plat.servicetype 'sysv', servicedir: '/etc/init.d'
14
- plat.servicetype 'systemd', servicedir: '/lib/systemd/system'
15
- end
16
- "}
17
- let(:deb_platform_no_service) { "platform 'debian-test-fixture' do |plat|
18
- end
19
- "}
20
- let(:deb_platform_servicetype) { "platform 'debian-test-fixture' do |plat|
21
- plat.servicetype 'sysv'
22
- plat.servicedir '/etc/init.d'
23
- end
24
- "}
25
- let(:deb_platform_bad_servicedir_block) { "platform 'debian-test-fixture' do |plat|
26
- plat.servicetype 'sysv', servicedir: '/etc/init.d'
27
- plat.servicetype 'sysv', servicedir: '/etc/rc.d'
28
- end
29
- "}
30
-
31
4
  let(:platforms) do
32
5
  [
33
6
  {
@@ -199,57 +172,4 @@ describe "Vanagon::Platform" do
199
172
  end
200
173
  end
201
174
  end
202
-
203
- describe "#get_service_type" do
204
- it "returns plat.servicetype if that's the only thing set" do
205
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
206
- plat.instance_eval(deb_platform_just_servicetype)
207
- expect(plat._platform.get_service_types).to include('sysv')
208
- end
209
-
210
- it "returns from servicetypes if that's set" do
211
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
212
- plat.instance_eval(deb_platform_servicetype)
213
- expect(plat._platform.get_service_types).to include('sysv')
214
- end
215
-
216
- it "returns multiples if there's more than one" do
217
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
218
- plat.instance_eval(deb_platform_multi_servicetypes)
219
- expect(plat._platform.get_service_types).to include('sysv')
220
- expect(plat._platform.get_service_types).to include('systemd')
221
- end
222
-
223
- it "returns an empty array if nothing is set" do
224
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
225
- plat.instance_eval(deb_platform_no_service)
226
- expect(plat._platform.get_service_types.size).to eq(0)
227
- end
228
- end
229
-
230
- describe "#get_service_dir" do
231
- it "returns plat.servicedir if that's the only thing set" do
232
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
233
- plat.instance_eval(deb_platform_just_servicedir)
234
- expect(plat._platform.get_service_dir).to eq('/etc/init.d')
235
- end
236
-
237
- it "returns servicedirs set via servicetype" do
238
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
239
- plat.instance_eval(deb_platform_servicetype)
240
- expect(plat._platform.get_service_dir).to eq('/etc/init.d')
241
- end
242
-
243
- it "returns the servicedir based on servicetype" do
244
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
245
- plat.instance_eval(deb_platform_multi_servicetypes)
246
- expect(plat._platform.get_service_dir('systemd')).to eq('/lib/systemd/system')
247
- end
248
-
249
- it "fails if there are >1 servicedir for a service type" do
250
- plat = Vanagon::Platform::DSL.new('debian-8-x86_64')
251
- plat.instance_eval(deb_platform_bad_servicedir_block)
252
- expect { plat._platform.get_service_dir('sysv') }.to raise_error(Vanagon::Error)
253
- end
254
- end
255
175
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vanagon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.10
4
+ version: 0.15.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-29 00:00:00.000000000 Z
11
+ date: 2018-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: git