Skip to content

Commit 30161b2

Browse files
committed
add parameter $manage_nodejs_package
Defaults to true. This allows for using this module without managing the nodejs package. The use case for this is where you want to use the npm package provider in this module, but otherwise have no need for directly installing nodejs. This patch allows for expressing that use case in your puppet code.
1 parent a311c5d commit 30161b2

File tree

4 files changed

+253
-5
lines changed

4 files changed

+253
-5
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,10 @@ applied before the local installation of npm packages using `nodejs::npm`.
380380
Path to cmd.exe on Windows. Defaults to C:\Windows\system32\cmd.exe. You may
381381
need to change this parameter for certain versions of Windows Server.
382382

383+
#### `manage_nodejs_package`
384+
385+
Whether to manage the nodejs and nodejs-dev packages. Defaults to `true`.
386+
383387
#### `manage_package_repo`
384388

385389
Whether to manage an external repository and use it as the source of the

manifests/init.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# == Class: nodejs: See README.md for documentation.
22
class nodejs (
33
$cmd_exe_path = $nodejs::params::cmd_exe_path,
4+
Boolean $manage_nodejs_package = true,
45
Boolean $manage_package_repo = $nodejs::params::manage_package_repo,
56
$nodejs_debug_package_ensure = $nodejs::params::nodejs_debug_package_ensure,
67
Optional[String] $nodejs_debug_package_name = $nodejs::params::nodejs_debug_package_name,

manifests/install.pp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
}
99

1010
# npm is a Gentoo USE flag
11-
if $facts['os']['name'] == 'Gentoo' {
11+
if $facts['os']['name'] == 'Gentoo' and $nodejs::manage_nodejs_package {
1212
package_use { $nodejs::nodejs_package_name:
1313
ensure => present,
1414
target => 'nodejs-flags',
@@ -20,13 +20,15 @@
2020
Package { provider => $nodejs::package_provider }
2121

2222
# nodejs
23-
package { $nodejs::nodejs_package_name:
24-
ensure => $nodejs::nodejs_package_ensure,
25-
tag => 'nodesource_repo',
23+
if $nodejs::manage_nodejs_package {
24+
package { $nodejs::nodejs_package_name:
25+
ensure => $nodejs::nodejs_package_ensure,
26+
tag => 'nodesource_repo',
27+
}
2628
}
2729

2830
# nodejs-development
29-
if $nodejs::nodejs_dev_package_name {
31+
if $nodejs::manage_nodejs_package and $nodejs::nodejs_dev_package_name {
3032
package { $nodejs::nodejs_dev_package_name:
3133
ensure => $nodejs::nodejs_dev_package_ensure,
3234
tag => 'nodesource_repo',

spec/classes/nodejs_spec.rb

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,27 @@
5555
}
5656
end
5757

58+
context 'and manage_nodejs_package set to true' do
59+
let :params do
60+
default_params.merge!(manage_nodejs_package: true)
61+
end
62+
63+
it 'the nodejs package resource should be present' do
64+
is_expected.to contain_package('nodejs')
65+
end
66+
end
67+
68+
context 'and manage_nodejs_package set to false' do
69+
let :params do
70+
default_params.merge!(manage_nodejs_package: false)
71+
end
72+
73+
it 'the nodejs and dev package resources should not be present' do
74+
is_expected.not_to contain_package('nodejs')
75+
is_expected.not_to contain_package(native_debian_devel_package)
76+
end
77+
end
78+
5879
context 'and repo_class set to ::nodejs::repo::nodesource' do
5980
let :params do
6081
default_params.merge!(repo_class: 'nodejs::repo::nodesource')
@@ -333,6 +354,27 @@
333354
}
334355
end
335356

357+
context 'and manage_nodejs_package set to true' do
358+
let :params do
359+
default_params.merge!(manage_nodejs_package: true)
360+
end
361+
362+
it 'the nodejs package resource should be present' do
363+
is_expected.to contain_package('nodejs')
364+
end
365+
end
366+
367+
context 'and manage_nodejs_package set to false' do
368+
let :params do
369+
default_params.merge!(manage_nodejs_package: false)
370+
end
371+
372+
it 'the nodejs and dev package resources should not be present' do
373+
is_expected.not_to contain_package('nodejs')
374+
is_expected.not_to contain_package('nodejs-devel')
375+
end
376+
end
377+
336378
context 'and repo_class set to ::nodejs::repo::nodesource' do
337379
let :params do
338380
default_params.merge!(repo_class: 'nodejs::repo::nodesource')
@@ -668,6 +710,32 @@
668710
end
669711
end
670712

713+
# manage_nodejs_package
714+
context 'and manage_nodejs_package set to true' do
715+
let :params do
716+
{
717+
manage_nodejs_package: true
718+
}
719+
end
720+
721+
it 'the nodejs package resource should be present' do
722+
is_expected.to contain_package('nodejs')
723+
end
724+
end
725+
726+
context 'and manage_nodejs_package set to false' do
727+
let :params do
728+
{
729+
manage_nodejs_package: false
730+
}
731+
end
732+
733+
it 'the nodejs and dev package resources should not be present' do
734+
is_expected.not_to contain_package('nodejs')
735+
is_expected.not_to contain_package('nodejs-devel')
736+
end
737+
end
738+
671739
# nodejs_package_ensure
672740
context 'with nodejs_package_ensure set to present' do
673741
let :params do
@@ -729,6 +797,31 @@
729797
}
730798
end
731799

800+
# manage_nodejs_package
801+
context 'and manage_nodejs_package set to true' do
802+
let :params do
803+
{
804+
manage_nodejs_package: true
805+
}
806+
end
807+
808+
it 'the nodejs package resource should be present' do
809+
is_expected.to contain_package('nodejs')
810+
end
811+
end
812+
813+
context 'and manage_nodejs_package set to false' do
814+
let :params do
815+
{
816+
manage_nodejs_package: false
817+
}
818+
end
819+
820+
it 'the nodejs package resource should not be present' do
821+
is_expected.not_to contain_package('nodejs')
822+
end
823+
end
824+
732825
# nodejs_package_ensure
733826
context 'with nodejs_package_ensure set to present' do
734827
let :params do
@@ -765,6 +858,32 @@
765858
}
766859
end
767860

861+
# manage_nodejs_package
862+
context 'and manage_nodejs_package set to true' do
863+
let :params do
864+
{
865+
manage_nodejs_package: true
866+
}
867+
end
868+
869+
it 'the nodejs package resource should be present' do
870+
is_expected.to contain_package('www/node')
871+
end
872+
end
873+
874+
context 'and manage_nodejs_package set to false' do
875+
let :params do
876+
{
877+
manage_nodejs_package: false
878+
}
879+
end
880+
881+
it 'the nodejs and dev package resources should not be present' do
882+
is_expected.not_to contain_package('www/node')
883+
is_expected.not_to contain_package('www/node-devel')
884+
end
885+
end
886+
768887
# nodejs_dev_package_ensure
769888
context 'with nodejs_dev_package_ensure set to present' do
770889
let :params do
@@ -851,6 +970,31 @@
851970
}
852971
end
853972

973+
# manage_nodejs_package
974+
context 'and manage_nodejs_package set to true' do
975+
let :params do
976+
{
977+
manage_nodejs_package: true
978+
}
979+
end
980+
981+
it 'the nodejs package resource should be present' do
982+
is_expected.to contain_package('node')
983+
end
984+
end
985+
986+
context 'and manage_nodejs_package set to false' do
987+
let :params do
988+
{
989+
manage_nodejs_package: false
990+
}
991+
end
992+
993+
it 'the nodejs package resource should not be present' do
994+
is_expected.not_to contain_package('node')
995+
end
996+
end
997+
854998
# nodejs_package_ensure
855999
context 'with nodejs_package_ensure set to present' do
8561000
let :params do
@@ -887,6 +1031,32 @@
8871031
}
8881032
end
8891033

1034+
# manage_nodejs_package
1035+
context 'and manage_nodejs_package set to true' do
1036+
let :params do
1037+
{
1038+
manage_nodejs_package: true
1039+
}
1040+
end
1041+
1042+
it 'the nodejs package resource should be present' do
1043+
is_expected.to contain_package('nodejs')
1044+
end
1045+
end
1046+
1047+
context 'and manage_nodejs_package set to false' do
1048+
let :params do
1049+
{
1050+
manage_nodejs_package: false
1051+
}
1052+
end
1053+
1054+
it 'the nodejs and dev package resources should not be present' do
1055+
is_expected.not_to contain_package('nodejs')
1056+
is_expected.not_to contain_package('nodejs-devel')
1057+
end
1058+
end
1059+
8901060
# nodejs_dev_package_ensure
8911061
context 'with nodejs_dev_package_ensure set to present' do
8921062
let :params do
@@ -994,6 +1164,31 @@
9941164
}
9951165
end
9961166

1167+
# manage_nodejs_package
1168+
context 'and manage_nodejs_package set to true' do
1169+
let :params do
1170+
{
1171+
manage_nodejs_package: true
1172+
}
1173+
end
1174+
1175+
it 'the nodejs package resource should be present' do
1176+
is_expected.to contain_package('nodejs')
1177+
end
1178+
end
1179+
1180+
context 'and manage_nodejs_package set to false' do
1181+
let :params do
1182+
{
1183+
manage_nodejs_package: false
1184+
}
1185+
end
1186+
1187+
it 'the nodejs package resource should not be present' do
1188+
is_expected.not_to contain_package('nodejs')
1189+
end
1190+
end
1191+
9971192
# nodejs_package_ensure
9981193
context 'with nodejs_package_ensure set to present' do
9991194
let :params do
@@ -1055,6 +1250,31 @@
10551250
}
10561251
end
10571252

1253+
# manage_nodejs_package
1254+
context 'and manage_nodejs_package set to true' do
1255+
let :params do
1256+
{
1257+
manage_nodejs_package: true
1258+
}
1259+
end
1260+
1261+
it 'the nodejs package resource should be present' do
1262+
is_expected.to contain_package('net-libs/nodejs')
1263+
end
1264+
end
1265+
1266+
context 'and manage_nodejs_package set to false' do
1267+
let :params do
1268+
{
1269+
manage_nodejs_package: false
1270+
}
1271+
end
1272+
1273+
it 'the nodejs package resource should not be present' do
1274+
is_expected.not_to contain_package('net-libs/nodejs')
1275+
end
1276+
end
1277+
10581278
# nodejs_package_ensure
10591279
context 'with nodejs_package_ensure set to present' do
10601280
let :params do
@@ -1121,6 +1341,27 @@
11211341
}
11221342
end
11231343

1344+
context 'and manage_nodejs_package set to true' do
1345+
let :params do
1346+
default_params.merge!(manage_nodejs_package: true)
1347+
end
1348+
1349+
it 'the nodejs package resource should be present' do
1350+
is_expected.to contain_package('nodejs')
1351+
end
1352+
end
1353+
1354+
context 'and manage_nodejs_package set to false' do
1355+
let :params do
1356+
default_params.merge!(manage_nodejs_package: false)
1357+
end
1358+
1359+
it 'the nodejs and dev package resources should not be present' do
1360+
is_expected.not_to contain_package('nodejs')
1361+
is_expected.not_to contain_package('nodejs-devel')
1362+
end
1363+
end
1364+
11241365
context 'and repo_class set to ::nodejs::repo::nodesource' do
11251366
let :params do
11261367
default_params.merge!(repo_class: 'nodejs::repo::nodesource')

0 commit comments

Comments
 (0)