ruby-pwsh 0.7.0 → 0.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/lib/puppet/provider/dsc_base_provider/dsc_base_provider.rb +18 -14
- data/lib/pwsh/version.rb +1 -1
- data/metadata.json +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b70b1a0989c8bc3458422b67e0c328084f819067d60455b9504031106a6c78e6
|
4
|
+
data.tar.gz: 44c5f49c82db4a56e76d521e1b90a5434d3bfacd6a5fa242e4e6c5c90878d875
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80207ddfde5794a3e461c769fdb20983bbc0f601cc18c99a57bd6e2f37ee3158ca27efa1a176d1bb600090860f107b059816f6ec5c263bbbd3d6b21bf7cb11df
|
7
|
+
data.tar.gz: 41d7a31a3703e24e5e64944776eeb889ac01f7acd685e867211898e37a0478606e3728747779e1073cc1138619d51f7e9b2c872047a3754ffc38d061d14916d6
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,17 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
|
4
4
|
|
5
|
+
## [0.7.1](https://github.com/puppetlabs/ruby-pwsh/tree/0.7.1) (2021-02-01)
|
6
|
+
|
7
|
+
[Full Changelog](https://github.com/puppetlabs/ruby-pwsh/compare/0.7.0...0.7.1)
|
8
|
+
|
9
|
+
### Fixed
|
10
|
+
|
11
|
+
- \(MAINT\) Correctly canonicalize enumerable values in dsc [\#92](https://github.com/puppetlabs/ruby-pwsh/pull/92) ([michaeltlombardi](https://github.com/michaeltlombardi))
|
12
|
+
- \(MAINT\) Ensure vendored path check works with mix of module builds [\#91](https://github.com/puppetlabs/ruby-pwsh/pull/91) ([michaeltlombardi](https://github.com/michaeltlombardi))
|
13
|
+
- \(GH-84\) Fix empty array parameter check [\#90](https://github.com/puppetlabs/ruby-pwsh/pull/90) ([michaeltlombardi](https://github.com/michaeltlombardi))
|
14
|
+
- \(MAINT\) Minor fixes to CIM instance handling [\#89](https://github.com/puppetlabs/ruby-pwsh/pull/89) ([michaeltlombardi](https://github.com/michaeltlombardi))
|
15
|
+
|
5
16
|
## [0.7.0](https://github.com/puppetlabs/ruby-pwsh/tree/0.7.0) (2021-01-20)
|
6
17
|
|
7
18
|
[Full Changelog](https://github.com/puppetlabs/ruby-pwsh/compare/0.6.3...0.7.0)
|
@@ -61,7 +61,8 @@ class Puppet::Provider::DscBaseProvider
|
|
61
61
|
downcased_result = recursively_downcase(canonicalized)
|
62
62
|
downcased_resource = recursively_downcase(r)
|
63
63
|
downcased_result.each do |key, value|
|
64
|
-
|
64
|
+
is_same = value.is_a?(Enumerable) ? downcased_resource[key].sort == value.sort : downcased_resource[key] == value
|
65
|
+
canonicalized[key] = r[key] unless is_same
|
65
66
|
canonicalized.delete(key) unless downcased_resource.keys.include?(key)
|
66
67
|
end
|
67
68
|
# Cache the actually canonicalized resource separately
|
@@ -358,22 +359,24 @@ class Puppet::Provider::DscBaseProvider
|
|
358
359
|
# Because Puppet adds all of the modules to the LOAD_PATH we can be sure that the appropriate module lives here during an apply;
|
359
360
|
# PROBLEM: This currently uses the downcased name, we need to capture the module name in the metadata I think.
|
360
361
|
# During a Puppet agent run, the code lives in the cache so we can use the file expansion to discover the correct folder.
|
362
|
+
# This handles setting the vendored_modules_path to include the puppet module name; we now add the puppet module name into the
|
363
|
+
# path to allow multiple modules to with shared dsc_resources to be installed side by side
|
364
|
+
# The old vendored_modules_path: puppet_x/dsc_resources
|
365
|
+
# The new vendored_modules_path: puppet_x/<module_name>/dsc_resources
|
361
366
|
root_module_path = $LOAD_PATH.select { |path| path.match?(%r{#{puppetize_name(resource[:dscmeta_module_name])}/lib}) }.first
|
362
367
|
resource[:vendored_modules_path] = if root_module_path.nil?
|
363
|
-
File.expand_path(Pathname.new(__FILE__).dirname + '../../../' +
|
368
|
+
File.expand_path(Pathname.new(__FILE__).dirname + '../../../' + "puppet_x/#{puppetize_name(resource[:dscmeta_module_name])}/dsc_resources") # rubocop:disable Style/StringConcatenation
|
364
369
|
else
|
365
|
-
File.expand_path("#{root_module_path}/puppet_x/dsc_resources")
|
370
|
+
File.expand_path("#{root_module_path}/puppet_x/#{puppetize_name(resource[:dscmeta_module_name])}/dsc_resources")
|
366
371
|
end
|
367
372
|
|
368
|
-
#
|
369
|
-
#
|
370
|
-
# The old vendored_modules_path: puppet_x/dsc_resources
|
371
|
-
# The new vendored_modules_path: puppet_x/<module_name>/dsc_resources
|
373
|
+
# Check for the old vendored_modules_path second - if there is a mix of modules with the old and new pathing,
|
374
|
+
# checking for this first will always work and so the more specific search will never run.
|
372
375
|
unless File.exist? resource[:vendored_modules_path]
|
373
376
|
resource[:vendored_modules_path] = if root_module_path.nil?
|
374
|
-
File.expand_path(Pathname.new(__FILE__).dirname + '../../../' +
|
377
|
+
File.expand_path(Pathname.new(__FILE__).dirname + '../../../' + 'puppet_x/dsc_resources') # rubocop:disable Style/StringConcatenation
|
375
378
|
else
|
376
|
-
File.expand_path("#{root_module_path}/puppet_x
|
379
|
+
File.expand_path("#{root_module_path}/puppet_x/dsc_resources")
|
377
380
|
end
|
378
381
|
end
|
379
382
|
|
@@ -535,8 +538,8 @@ class Puppet::Provider::DscBaseProvider
|
|
535
538
|
'user' => property_hash[:value]['user'],
|
536
539
|
'password' => escape_quotes(property_hash[:value]['password'].unwrap)
|
537
540
|
}
|
538
|
-
instantiated_variables.merge!(variable_name => credential_hash)
|
539
541
|
credentials_block << format_pscredential(variable_name, credential_hash)
|
542
|
+
instantiated_variables.merge!(variable_name => credential_hash)
|
540
543
|
end
|
541
544
|
credentials_block.join("\n")
|
542
545
|
credentials_block == [] ? '' : credentials_block
|
@@ -563,6 +566,7 @@ class Puppet::Provider::DscBaseProvider
|
|
563
566
|
cim_instances_block = []
|
564
567
|
resource[:parameters].each do |_property_name, property_hash|
|
565
568
|
next unless property_hash[:mof_is_embedded]
|
569
|
+
next if property_hash[:mof_type] == 'PSCredential' # Credentials are handled separately
|
566
570
|
|
567
571
|
# strip dsc_ from the beginning of the property name declaration
|
568
572
|
# name = property_name.to_s.gsub(/^dsc_/, '').to_sym
|
@@ -573,10 +577,10 @@ class Puppet::Provider::DscBaseProvider
|
|
573
577
|
unless cim_instance_hashes.count.zero?
|
574
578
|
cim_instance_hashes.each do |instance|
|
575
579
|
variable_name = random_variable_name
|
576
|
-
instantiated_variables.merge!(variable_name => instance)
|
577
580
|
class_name = instance['cim_instance_type']
|
578
581
|
properties = instance.reject { |k, _v| k == 'cim_instance_type' }
|
579
582
|
cim_instances_block << format_ciminstance(variable_name, class_name, properties)
|
583
|
+
instantiated_variables.merge!(variable_name => instance)
|
580
584
|
end
|
581
585
|
end
|
582
586
|
# We have to handle arrays of CIM instances slightly differently
|
@@ -584,14 +588,14 @@ class Puppet::Provider::DscBaseProvider
|
|
584
588
|
class_name = property_hash[:mof_type].gsub('[]', '')
|
585
589
|
property_hash[:value].each do |hash|
|
586
590
|
variable_name = random_variable_name
|
587
|
-
instantiated_variables.merge!(variable_name => hash)
|
588
591
|
cim_instances_block << format_ciminstance(variable_name, class_name, hash)
|
592
|
+
instantiated_variables.merge!(variable_name => hash)
|
589
593
|
end
|
590
594
|
else
|
591
595
|
variable_name = random_variable_name
|
592
|
-
instantiated_variables.merge!(variable_name => property_hash[:value])
|
593
596
|
class_name = property_hash[:mof_type]
|
594
597
|
cim_instances_block << format_ciminstance(variable_name, class_name, property_hash[:value])
|
598
|
+
instantiated_variables.merge!(variable_name => property_hash[:value])
|
595
599
|
end
|
596
600
|
end
|
597
601
|
cim_instances_block == [] ? '' : cim_instances_block.join("\n")
|
@@ -674,7 +678,7 @@ class Puppet::Provider::DscBaseProvider
|
|
674
678
|
params_block = params_block.gsub("'[DateTime]", "[DateTime]'")
|
675
679
|
# HACK: Handle intentionally empty arrays - need to strongly type them because
|
676
680
|
# CIM instances do not do a consistent job of casting an empty array properly.
|
677
|
-
empty_array_parameters = resource[:parameters].select { |_k, v| v[:value].empty? }
|
681
|
+
empty_array_parameters = resource[:parameters].select { |_k, v| v[:value].is_a?(Array) && v[:value].empty? }
|
678
682
|
empty_array_parameters.each do |name, properties|
|
679
683
|
param_block_name = name.to_s.gsub(/^dsc_/, '')
|
680
684
|
params_block = params_block.gsub("#{param_block_name} = @()", "#{param_block_name} = [#{properties[:mof_type]}]@()")
|
data/lib/pwsh/version.rb
CHANGED
data/metadata.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-pwsh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: PowerShell code manager for ruby.
|
14
14
|
email:
|
@@ -54,7 +54,7 @@ metadata:
|
|
54
54
|
homepage_uri: https://github.com/puppetlabs/ruby-pwsh
|
55
55
|
source_code_uri: https://github.com/puppetlabs/ruby-pwsh
|
56
56
|
changelog_uri: https://github.com/puppetlabs/ruby-pwsh
|
57
|
-
post_install_message:
|
57
|
+
post_install_message:
|
58
58
|
rdoc_options: []
|
59
59
|
require_paths:
|
60
60
|
- lib
|
@@ -69,8 +69,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
requirements: []
|
72
|
-
|
73
|
-
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 2.7.6
|
74
|
+
signing_key:
|
74
75
|
specification_version: 4
|
75
76
|
summary: PowerShell code manager for ruby.
|
76
77
|
test_files: []
|