From ca2e537b3bc24697b65206c63c6b66c71fe88151 Mon Sep 17 00:00:00 2001 From: Lukas Audzevicius Date: Thu, 15 Sep 2022 11:12:26 +0100 Subject: [PATCH 1/3] Hardening manifests Prior to this commit some commands in our manifest classes would not be up to our code standards. This commit aims to sanitise our code according to our teams best practices. --- manifests/adopt.pp | 4 ++-- manifests/adoptium.pp | 4 +++- manifests/config.pp | 20 ++++++++++++++------ manifests/download.pp | 10 +++++----- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/manifests/adopt.pp b/manifests/adopt.pp index 4f0b4a01..b5e5c8b5 100644 --- a/manifests/adopt.pp +++ b/manifests/adopt.pp @@ -253,10 +253,10 @@ case $_package_type { 'tar.gz' : { - $install_command = "tar -zxf ${destination} -C ${_basedir}" + $install_command = ['tar', '-zxf', $destination, '-C', $_basedir] } default : { - $install_command = "tar -zxf ${destination} -C ${_basedir}" + $install_command = ['tar', '-zxf', $destination, '-C', $_basedir] } } diff --git a/manifests/adoptium.pp b/manifests/adoptium.pp index a302d1d0..6f87e602 100644 --- a/manifests/adoptium.pp +++ b/manifests/adoptium.pp @@ -163,9 +163,11 @@ } } + $install_adoptium = ['tar', '-zxf', $destination, '-C', $_basedir] + exec { "Install Adoptium Temurin java ${version_major} ${version_minor} ${version_patch} ${version_build}" : path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin', - command => "tar -zxf ${destination} -C ${_basedir}", + command => $install_adoptium, creates => $creates_path, require => $install_requires, } diff --git a/manifests/config.pp b/manifests/config.pp index fd67fea3..5d3c9f6b 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -3,10 +3,13 @@ case $facts['os']['family'] { 'Debian': { if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef { + $command_debian = ['update-java-alternatives', '--set', $java::use_java_alternative, $java::jre_flag] + $unless_debian = ["test /etc/alternatives/java -ef '${java::use_java_alternative_path}'"] + exec { 'update-java-alternatives': path => '/usr/bin:/usr/sbin:/bin:/sbin', - command => "update-java-alternatives --set ${java::use_java_alternative} ${java::jre_flag}", - unless => "test /etc/alternatives/java -ef '${java::use_java_alternative_path}'", + command => $command_debian, + unless => $unless_debian, } } if $java::use_java_home != undef { @@ -22,18 +25,23 @@ # The standard packages install alternatives, custom packages do not # For the stanard packages java::params needs these added. if $java::use_java_package_name != $java::default_package_name { + $command_redhat = ['alternatives', '--install', '/usr/bin/java', 'java', $java::use_java_alternative_path, '20000'] + $unless_redhat = ["alternatives --display java | grep -q ${java::use_java_alternative_path}"] + exec { 'create-java-alternatives': path => '/usr/bin:/usr/sbin:/bin:/sbin', - command => "alternatives --install /usr/bin/java java ${$java::use_java_alternative_path} 20000" , - unless => "alternatives --display java | grep -q ${$java::use_java_alternative_path}", + command => $command_redhat, + unless => $unless_redhat, before => Exec['update-java-alternatives'], } } + $command_default = ['alternatives', '--set', 'java', $java::use_java_alternative_path] + $unless_default = ["test /etc/alternatives/java -ef '${java::use_java_alternative_path}'"] exec { 'update-java-alternatives': path => '/usr/bin:/usr/sbin', - command => "alternatives --set java ${$java::use_java_alternative_path}" , - unless => "test /etc/alternatives/java -ef '${java::use_java_alternative_path}'", + command => $command_default, + unless => $unless_default, } } if $java::use_java_home != undef { diff --git a/manifests/download.pp b/manifests/download.pp index 56324950..63636c64 100644 --- a/manifests/download.pp +++ b/manifests/download.pp @@ -237,19 +237,19 @@ case $_package_type { 'bin' : { - $install_command = "sh ${destination}" + $install_command = ['sh', $destination] } 'rpmbin' : { - $install_command = "sh ${destination} -x; rpm --force -iv sun*.rpm; rpm --force -iv ${java_se}*.rpm" + $install_command = ['sh', $destination, '-x;', 'rpm', '--force', '-iv', 'sun*.rpm;', 'rpm', '--force', '-iv', "${java_se}*.rpm"] } 'rpm' : { - $install_command = "rpm --force -iv ${destination}" + $install_command = ['rpm', '--force', '-iv', $destination] } 'tar.gz' : { - $install_command = "tar -zxf ${destination} -C ${_basedir}" + $install_command = ['tar', '-zxf', $destination, '-C', $_basedir] } default : { - $install_command = "rpm -iv ${destination}" + $install_command = ['rpm', '-iv', $destination] } } From b87962447791e62ba28a1bec477c81e5ac178687 Mon Sep 17 00:00:00 2001 From: Lukas Audzevicius Date: Tue, 20 Sep 2022 11:01:28 +0100 Subject: [PATCH 2/3] Fix unit test cases Prior to this commit, multiple unit test cases would fail due to them expecting commands to be run as a single String instead of arrays of commands. This commit aims to fix those test cases by ensuring they mimic the structure of the commands being run on the test cases themselves. --- spec/classes/java_spec.rb | 6 ++--- spec/defines/adopt_spec.rb | 42 +++++++++++++++++------------------ spec/defines/adoptium_spec.rb | 12 +++++----- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/spec/classes/java_spec.rb b/spec/classes/java_spec.rb index d0019a43..eb49f88c 100644 --- a/spec/classes/java_spec.rb +++ b/spec/classes/java_spec.rb @@ -36,8 +36,8 @@ let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } } it { is_expected.to contain_package('java').with_name('jre') } - it { is_expected.to contain_exec('create-java-alternatives').with_command('alternatives --install /usr/bin/java java /usr/java/jre1.7.0_67/bin/java 20000') } - it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') } + it { is_expected.to contain_exec('create-java-alternatives').with_command(['alternatives', '--install', '/usr/bin/java', 'java', '/usr/java/jre1.7.0_67/bin/java', '20000']) } + it { is_expected.to contain_exec('update-java-alternatives').with_command(['alternatives', '--set', 'java', '/usr/java/jre1.7.0_67/bin/java']) } end context 'when select passed value for CentOS 5.3' do @@ -173,7 +173,7 @@ it { is_expected.to contain_package('java').with_name('custom_jdk') } it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/opt/custom_jdk') } - it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-custom_jdk --jre') } + it { is_expected.to contain_exec('update-java-alternatives').with_command(['update-java-alternatives', '--set', 'java-custom_jdk', '--jre']) } end context 'with missing parameters' do let(:params) do diff --git a/spec/defines/adopt_spec.rb b/spec/defines/adopt_spec.rb index 03fe3238..6cc959da 100644 --- a/spec/defines/adopt_spec.rb +++ b/spec/defines/adopt_spec.rb @@ -34,7 +34,7 @@ let(:title) { 'jdk8' } it { is_expected.to contain_archive('/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command(['tar', '-zxf', '/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') } end @@ -43,7 +43,7 @@ let(:title) { 'jdk9' } it { is_expected.to contain_archive('/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').with_command(['tar', '-zxf', '/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz]') } end @@ -52,7 +52,7 @@ let(:title) { 'jdk10' } it { is_expected.to contain_archive('/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').with_command(['tar', '-zxf', '/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz]') } end @@ -61,7 +61,7 @@ let(:title) { 'jdk11' } it { is_expected.to contain_archive('/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').with_command(['tar', '-zxf', '/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz]') } end @@ -70,7 +70,7 @@ let(:title) { 'jdk12' } it { is_expected.to contain_archive('/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').with_command(['tar', '-zxf', '/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz]') } end @@ -79,7 +79,7 @@ let(:title) { 'jre8' } it { is_expected.to contain_archive('/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').with_command(['tar', '-zxf', '/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz]') } end @@ -88,7 +88,7 @@ let(:title) { 'jre9' } it { is_expected.to contain_archive('/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').with_command(['tar', '-zxf', '/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz]') } end @@ -97,7 +97,7 @@ let(:title) { 'jre11' } it { is_expected.to contain_archive('/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').with_command(['tar', '-zxf', '/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz]') } end @@ -106,7 +106,7 @@ let(:title) { 'jre11' } it { is_expected.to contain_archive('/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').with_command(['tar', '-zxf', '/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz]') } end @@ -115,7 +115,7 @@ let(:title) { 'jre12' } it { is_expected.to contain_archive('/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').with_command(['tar', '-zxf', '/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz]') } end @@ -158,7 +158,7 @@ let(:title) { 'jdk8' } it { is_expected.to contain_archive('/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command(['tar', '-zxf', '/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') } end context 'when manage_basedir is set to true' do @@ -185,7 +185,7 @@ let(:title) { 'jdk8' } it { is_expected.to contain_archive('/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').with_command(['tar', '-zxf', '/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') } end @@ -194,7 +194,7 @@ let(:title) { 'jdk9' } it { is_expected.to contain_archive('/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').with_command(['tar', '-zxf', '/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz]') } end @@ -203,7 +203,7 @@ let(:title) { 'jdk10' } it { is_expected.to contain_archive('/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').with_command(['tar', '-zxf', '/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz]') } end @@ -212,7 +212,7 @@ let(:title) { 'jdk11' } it { is_expected.to contain_archive('/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').with_command(['tar', '-zxf', '/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz]') } end @@ -221,7 +221,7 @@ let(:title) { 'jdk12' } it { is_expected.to contain_archive('/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').with_command(['tar', '-zxf', '/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jdk 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz]') } end @@ -230,7 +230,7 @@ let(:title) { 'jre8' } it { is_expected.to contain_archive('/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').with_command('tar -zxf /tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').with_command(['tar', '-zxf', '/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 8 8u202 b08').that_requires('Archive[/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz]') } end @@ -239,7 +239,7 @@ let(:title) { 'jre9' } it { is_expected.to contain_archive('/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').with_command('tar -zxf /tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').with_command(['tar', '-zxf', '/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 9 9.0.4 11').that_requires('Archive[/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz]') } end @@ -248,7 +248,7 @@ let(:title) { 'jre11' } it { is_expected.to contain_archive('/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').with_command('tar -zxf /tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').with_command(['tar', '-zxf', '/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 10 10.0.2 13').that_requires('Archive[/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz]') } end @@ -257,7 +257,7 @@ let(:title) { 'jre11' } it { is_expected.to contain_archive('/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').with_command('tar -zxf /tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').with_command(['tar', '-zxf', '/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 11 11.0.2 9').that_requires('Archive[/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz]') } end @@ -266,7 +266,7 @@ let(:title) { 'jre12' } it { is_expected.to contain_archive('/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz') } - it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').with_command('tar -zxf /tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').with_command(['tar', '-zxf', '/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install AdoptOpenJDK java jre 12 12.0.1 12').that_requires('Archive[/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz]') } end diff --git a/spec/defines/adoptium_spec.rb b/spec/defines/adoptium_spec.rb index 1c4cbe07..f9f82a1e 100644 --- a/spec/defines/adoptium_spec.rb +++ b/spec/defines/adoptium_spec.rb @@ -56,7 +56,7 @@ let(:title) { 'jdk16' } it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') } - it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command(['tar', '-zxf', '/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') } end @@ -75,7 +75,7 @@ let(:title) { 'jdk17' } it { is_expected.to contain_archive('/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz') } - it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').with_command('tar -zxf /tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').with_command(['tar', '-zxf', '/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').that_requires('Archive[/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz]') } end @@ -121,7 +121,7 @@ let(:title) { 'jdk16' } it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') } - it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/java') } + it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command(['tar', '-zxf', '/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz', '-C', '/usr/java']) } it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') } end context 'when manage_basedir is set to true' do @@ -159,7 +159,7 @@ let(:title) { 'jdk16' } it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') } - it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command(['tar', '-zxf', '/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') } end @@ -177,7 +177,7 @@ let(:title) { 'jdk17' } it { is_expected.to contain_archive('/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz') } - it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').with_command('tar -zxf /tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').with_command(['tar', '-zxf', '/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').that_requires('Archive[/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz]') } end @@ -223,7 +223,7 @@ let(:title) { 'jdk16' } it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') } - it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command(['tar', '-zxf', '/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz', '-C', '/usr/lib/jvm']) } it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') } end context 'when manage_basedir is set to true' do From 74ea1de22955349598ab01bc530e87d7c754506f Mon Sep 17 00:00:00 2001 From: Lukas Audzevicius Date: Tue, 4 Oct 2022 11:32:45 +0100 Subject: [PATCH 3/3] Community suggestions applied Prior to this commit, a community member had some suggestions to further improve the code This commit aims to implement those suggestions after careful evaluation and testing. --- manifests/adopt.pp | 9 +-------- manifests/config.pp | 8 ++++---- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/manifests/adopt.pp b/manifests/adopt.pp index b5e5c8b5..fde321b8 100644 --- a/manifests/adopt.pp +++ b/manifests/adopt.pp @@ -251,14 +251,7 @@ $destination = "${destination_dir}${package_name}" notice ("Destination is ${destination}") - case $_package_type { - 'tar.gz' : { - $install_command = ['tar', '-zxf', $destination, '-C', $_basedir] - } - default : { - $install_command = ['tar', '-zxf', $destination, '-C', $_basedir] - } - } + $install_command = ['tar', '-zxf', $destination, '-C', $_basedir] case $ensure { 'present' : { diff --git a/manifests/config.pp b/manifests/config.pp index 5d3c9f6b..c94aa6ef 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -4,7 +4,7 @@ 'Debian': { if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef { $command_debian = ['update-java-alternatives', '--set', $java::use_java_alternative, $java::jre_flag] - $unless_debian = ["test /etc/alternatives/java -ef '${java::use_java_alternative_path}'"] + $unless_debian = [['test', '/etc/alternatives/java', '-ef', $java::use_java_alternative_path]] exec { 'update-java-alternatives': path => '/usr/bin:/usr/sbin:/bin:/sbin', @@ -26,17 +26,17 @@ # For the stanard packages java::params needs these added. if $java::use_java_package_name != $java::default_package_name { $command_redhat = ['alternatives', '--install', '/usr/bin/java', 'java', $java::use_java_alternative_path, '20000'] - $unless_redhat = ["alternatives --display java | grep -q ${java::use_java_alternative_path}"] + $unless_redhat = "alternatives --display java | grep -q ${java::use_java_alternative_path}" exec { 'create-java-alternatives': path => '/usr/bin:/usr/sbin:/bin:/sbin', command => $command_redhat, - unless => $unless_redhat, + unless => shell_escape($unless_redhat), before => Exec['update-java-alternatives'], } } $command_default = ['alternatives', '--set', 'java', $java::use_java_alternative_path] - $unless_default = ["test /etc/alternatives/java -ef '${java::use_java_alternative_path}'"] + $unless_default = [['test', '/etc/alternatives/java', '-ef', $java::use_java_alternative_path]] exec { 'update-java-alternatives': path => '/usr/bin:/usr/sbin',