kitchen-dsc 0.8.0 → 0.8.1

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: d72d58d0319e21aff93818d1ef18619e54ed76ec
4
- data.tar.gz: 732c13ad0c646ccd2f446e4f953f1821a7690774
3
+ metadata.gz: db8e9466934c88648b2716777580c81c8ac81f81
4
+ data.tar.gz: f9fdb9ac31e4ca3a375d76f9703aefec4091efeb
5
5
  SHA512:
6
- metadata.gz: 3d5f65251c7829f715229a83328ee07ffe7bad6eaec69021cd293c6cbfe16ed73522ff76185e2cf52cc7e576785c2cc4363b4b24e0c9ca7f639d9ac949cce213
7
- data.tar.gz: 7b7a308187d63be5a59e838d2592b7cb4371c338c398188d84ee6eda9a30c80b0eccc26265ff4c99303573c76d323bc142bb748f6d7581702ab90de095112717
6
+ metadata.gz: 4cd11a166f9c02099d9616e97b310c9be11b458687465f7bb42d379f2fe5964e19c148bdc2de1264c086417a0ea1d72ea118a0f73372d78bcc5dff3586edafe6
7
+ data.tar.gz: 04071da119ed739ef0cc4dffba8cc374102447b5fdaee609039074db00a4a51b7e0ebf87623a7642aa046162a871e4cd63be30b41a6671fe348bb9b95b44c618
data/README.md CHANGED
@@ -62,6 +62,13 @@ You will see a delay in the return of the run details due to an difference in ho
62
62
  * Requires WMF 5
63
63
  * Takes a string (for one module) or an array (for multiple) to install from the gallery
64
64
 
65
+ * gallery_name
66
+ * Custom PowerShell gallery name to install modules from.
67
+ * If there is no package source with this name registered on the machine, then gallery_uri must be configured as well.
68
+
69
+ * gallery_uri
70
+ * URI for a custom PowerShell gallery feed.
71
+
65
72
  ### Specific to repository style testing
66
73
  * modules_path
67
74
  * Defaults to 'modules'.
data/kitchen-dsc.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.name = 'kitchen-dsc'
8
8
  s.version = Kitchen::Dsc::VERSION
9
9
  s.authors = ['Steven Murawski']
10
- s.email = ['steven.murawski@gmail.com']
10
+ s.email = ['smurawski@chef.io']
11
11
  s.homepage = 'https://github.com/test-kitchen/kitchen-dsc'
12
12
  s.summary = 'PowerShell DSC provisioner for test-kitchen'
13
13
  candidates = Dir.glob('lib/**/*') + ['README.md', 'kitchen-dsc.gemspec']
@@ -26,16 +26,16 @@ DSC Provisioner for Test Kitchen
26
26
  TBD
27
27
 
28
28
  EOF
29
- s.add_dependency "test-kitchen", "~> 1.4"
29
+ s.add_dependency 'test-kitchen', '~> 1.4'
30
30
 
31
- s.add_development_dependency "countloc", "~> 0.4"
32
- s.add_development_dependency "rake"
33
- s.add_development_dependency "rspec", "~> 3.2"
34
- s.add_development_dependency "simplecov", "~> 0.9"
31
+ s.add_development_dependency 'countloc', '~> 0.4'
32
+ s.add_development_dependency 'rake'
33
+ s.add_development_dependency 'rspec', '~> 3.2'
34
+ s.add_development_dependency 'simplecov', '~> 0.9'
35
35
 
36
36
  # style and complexity libraries are tightly version pinned as newer releases
37
37
  # may introduce new and undesireable style choices which would be immediately
38
38
  # enforced in CI
39
- s.add_development_dependency "finstyle", "1.4.0"
40
- s.add_development_dependency "cane", "2.6.2"
39
+ s.add_development_dependency 'finstyle', '1.4.0'
40
+ s.add_development_dependency 'cane', '2.6.2'
41
41
  end
@@ -13,7 +13,6 @@ require 'kitchen/provisioner/base'
13
13
  require 'kitchen/util'
14
14
 
15
15
  module Kitchen
16
-
17
16
  module Provisioner
18
17
  class Dsc < Base
19
18
  kitchen_provisioner_api_version 2
@@ -31,6 +30,9 @@ module Kitchen
31
30
  default_config :configuration_data_variable, 'ConfigurationData'
32
31
  default_config :configuration_data
33
32
 
33
+ default_config :nuget_force_bootstrap, true
34
+ default_config :gallery_uri
35
+ default_config :gallery_name
34
36
  default_config :modules_from_gallery
35
37
 
36
38
  default_config :dsc_local_configuration_manager_version, 'wmf4'
@@ -61,13 +63,10 @@ module Kitchen
61
63
  configuration_mode: (resolve_lcm_setting 'configuration_mode', 'ApplyAndAutoCorrect'),
62
64
  debug_mode: (resolve_lcm_setting 'debug_mode', 'All'),
63
65
  reboot_if_needed: (resolve_lcm_setting 'reboot_if_needed', false),
64
- refresh_mode: (resolve_lcm_setting 'refresh_mode' , 'PUSH')
66
+ refresh_mode: (resolve_lcm_setting 'refresh_mode', 'PUSH')
65
67
  }
66
68
  end
67
69
 
68
-
69
- # Disable line length check, it is all embedded script.
70
- # rubocop:disable Metrics/LineLength
71
70
  def install_command
72
71
  lcm_config = lcm_settings
73
72
  case config[:dsc_local_configuration_manager_version]
@@ -142,14 +141,34 @@ module Kitchen
142
141
 
143
142
  def powershell_modules
144
143
  Array(config[:modules_from_gallery]).map do |powershell_module|
145
- "install-module '#{powershell_module}' -force | out-null"
144
+ info("Installing #{powershell_module} from #{psmodule_repository_name}.")
145
+ "install-module '#{powershell_module}' -Repository #{psmodule_repository_name} -force | out-null"
146
146
  end
147
147
  end
148
148
 
149
+ def nuget_force_bootstrap
150
+ return unless config[:nuget_force_bootstrap]
151
+ info('Bootstrapping the nuget package provider for PowerShell PackageManagement.')
152
+ 'install-packageprovider nuget -force -forcebootstrap | out-null'
153
+ end
154
+
155
+ def psmodule_repository_name
156
+ return 'PSGallery' if config[:gallery_name].nil? && config[:gallery_uri].nil?
157
+ return 'testing' if config[:gallery_name].nil?
158
+ config[:gallery_name]
159
+ end
160
+
161
+ def register_psmodule_repository
162
+ return if config[:gallery_uri].nil?
163
+ info("Registering a new PowerShellGet Repository - #{psmodule_repository_name}")
164
+ "register-packagesource -providername PowerShellGet -name '#{psmodule_repository_name}' -location '#{config[:gallery_uri]}' -force -trusted"
165
+ end
166
+
149
167
  def install_module_script
150
168
  return if config[:modules_from_gallery].nil?
151
- script = <<-EOH
152
- install-packageprovider nuget -force -forcebootstrap | out-null
169
+ <<-EOH
170
+ #{nuget_force_bootstrap}
171
+ #{register_psmodule_repository}
153
172
  #{powershell_modules.join("\n")}
154
173
  EOH
155
174
  end
@@ -179,8 +198,6 @@ module Kitchen
179
198
  prepare_configuration_script
180
199
  end
181
200
 
182
- # Disable line length check, it is all logging and embedded script.
183
- # rubocop:disable Metrics/LineLength
184
201
  def prepare_command
185
202
  info('Moving DSC Resources onto PSModulePath')
186
203
  info("Generating the MOF script for the configuration #{config[:configuration_name]}")
@@ -259,7 +276,7 @@ module Kitchen
259
276
  def list_files(path)
260
277
  base_directory_content = Dir.glob(File.join(path, '*'))
261
278
  nested_directory_content = Dir.glob(File.join(path, '*/**/*'))
262
- all_directory_content =([base_directory_content, nested_directory_content]).flatten
279
+ all_directory_content = [base_directory_content, nested_directory_content].flatten
263
280
 
264
281
  ignore_files = ['Gemfile', 'Gemfile.lock', 'README.md', 'LICENSE.txt']
265
282
  all_directory_content.reject do |f|
@@ -290,10 +307,10 @@ module Kitchen
290
307
  sandbox_module_path = File.join(sandbox_path, 'modules')
291
308
 
292
309
  if Dir.exist?(module_path)
293
- debug("Moving #{module_path} to #{sandbox_module_path}")
294
- FileUtils.cp_r(module_path, sandbox_module_path)
310
+ debug("Moving #{module_path} to #{sandbox_module_path}")
311
+ FileUtils.cp_r(module_path, sandbox_module_path)
295
312
  else
296
- debug("The modules path #{module_path} was not found. Not moving to #{sandbox_module_path}.")
313
+ debug("The modules path #{module_path} was not found. Not moving to #{sandbox_module_path}.")
297
314
  end
298
315
  end
299
316
 
@@ -302,19 +319,19 @@ module Kitchen
302
319
  end
303
320
 
304
321
  def pad(depth = 0)
305
- " " * depth
322
+ ' ' * depth
306
323
  end
307
324
 
308
325
  def ps_hash(obj, depth = 0)
309
326
  if obj.is_a?(Hash)
310
- obj.map { |k, v|
311
- %{#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)}}
312
- }.join(";\n").insert(0, "@{\n").insert(-1, "\n#{pad(depth)}}")
327
+ obj.map do |k, v|
328
+ %(#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)})
329
+ end.join(";\n").insert(0, "@{\n").insert(-1, "\n#{pad(depth)}}")
313
330
  elsif obj.is_a?(Array)
314
- array_string = obj.map { |v| ps_hash(v, depth+4)}.join(",")
331
+ array_string = obj.map { |v| ps_hash(v, depth + 4) }.join(',')
315
332
  "#{pad(depth)}@(\n#{array_string}\n)"
316
333
  else
317
- %{"#{obj}"}
334
+ %("#{obj}")
318
335
  end
319
336
  end
320
337
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kitchen
4
4
  module Dsc
5
- VERSION = '0.8.0'
5
+ VERSION = '0.8.1'.freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-dsc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Murawski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-31 00:00:00.000000000 Z
11
+ date: 2016-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -118,7 +118,7 @@ description: |+
118
118
  TBD
119
119
 
120
120
  email:
121
- - steven.murawski@gmail.com
121
+ - smurawski@chef.io
122
122
  executables: []
123
123
  extensions: []
124
124
  extra_rdoc_files: []