From 1dbe781abbd8e07ce289d7009c4982c27d9287fd Mon Sep 17 00:00:00 2001 From: fe80 Date: Mon, 20 Jun 2022 14:22:03 +0200 Subject: [PATCH 1/2] add global_config_entries parameter --- data/common.yaml | 7 +++++++ hiera.yaml | 12 ++++++++++++ manifests/init.pp | 5 +++++ spec/classes/nodejs_spec.rb | 16 ++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 data/common.yaml create mode 100644 hiera.yaml diff --git a/data/common.yaml b/data/common.yaml new file mode 100644 index 00000000..d537dc8a --- /dev/null +++ b/data/common.yaml @@ -0,0 +1,7 @@ +--- +nodejs::global_config_entries: {} + +lookup_options: + nodejs::global_config_entries: + merge: + strategy: deep diff --git a/hiera.yaml b/hiera.yaml new file mode 100644 index 00000000..1688d2a1 --- /dev/null +++ b/hiera.yaml @@ -0,0 +1,12 @@ +--- +version: 5 +defaults: + datadir: 'data' + data_hash: 'yaml_data' +hierarchy: + - name: 'Major Version' + path: '%{facts.os.name}-%{facts.os.release.major}.yaml' + - name: 'Distribution Name' + path: '%{facts.os.name}.yaml' + - name: 'common' + path: 'common.yaml' diff --git a/manifests/init.pp b/manifests/init.pp index 1e361474..f44026e1 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,4 +1,6 @@ # == Class: nodejs: See README.md for documentation. +# +# @param global_config_entries Create resources with nodejs::npm::global_config_entry class nodejs ( $cmd_exe_path = $nodejs::params::cmd_exe_path, Boolean $manage_nodejs_package = true, @@ -26,6 +28,7 @@ $repo_url_suffix = $nodejs::params::repo_url_suffix, Array $use_flags = $nodejs::params::use_flags, Optional[String] $package_provider = $nodejs::params::package_provider, + Hash $global_config_entries, ) inherits nodejs::params { if $manage_package_repo and !$repo_class { fail("${module_name}: The manage_package_repo parameter was set to true but no repo_class was provided.") @@ -39,4 +42,6 @@ Class[$repo_class] -> Class['nodejs::install'] } + + create_resources('nodejs::npm::global_config_entry', $global_config_entries) } diff --git a/spec/classes/nodejs_spec.rb b/spec/classes/nodejs_spec.rb index 95b3b462..0b252b45 100644 --- a/spec/classes/nodejs_spec.rb +++ b/spec/classes/nodejs_spec.rb @@ -309,6 +309,22 @@ is_expected.not_to contain_package('npm') end end + + context 'with global_config_entries' do + let :params do + { + global_config_entries: { + 'proxy' => { 'value' => 'https://proxy.com' } + } + } + end + + it do + is_expected.to contain_nodejs__npm__global_config_entry('proxy').with( + value: 'https://proxy.com' + ) + end + end end end From e5e1054f70358b1988fdc16e9aedb21c9a080a39 Mon Sep 17 00:00:00 2001 From: fe80 Date: Mon, 20 Jun 2022 15:27:52 +0200 Subject: [PATCH 2/2] review --- manifests/init.pp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index f44026e1..38be7b13 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -28,7 +28,7 @@ $repo_url_suffix = $nodejs::params::repo_url_suffix, Array $use_flags = $nodejs::params::use_flags, Optional[String] $package_provider = $nodejs::params::package_provider, - Hash $global_config_entries, + Hash[String[1], Hash, 0] $global_config_entries = {}, ) inherits nodejs::params { if $manage_package_repo and !$repo_class { fail("${module_name}: The manage_package_repo parameter was set to true but no repo_class was provided.") @@ -43,5 +43,9 @@ -> Class['nodejs::install'] } - create_resources('nodejs::npm::global_config_entry', $global_config_entries) + $global_config_entries.each |$setting, $params| { + nodejs::npm::global_config_entry { $setting: + * => $params, + } + } }