From 756959eb1cac3ebe86ff4f917b691de590aecd84 Mon Sep 17 00:00:00 2001 From: mbakerbp Date: Wed, 21 Jun 2017 08:56:55 +0800 Subject: [PATCH 1/4] Untested code --- manifests/oracle.pp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/manifests/oracle.pp b/manifests/oracle.pp index e3aa912a..5cd27f87 100644 --- a/manifests/oracle.pp +++ b/manifests/oracle.pp @@ -167,6 +167,9 @@ $package_type = 'rpm' } } + 'Debian' : { + $package_type = 'tar.gz' + } default : { fail ("unsupported platform ${$facts['os']['name']}") } } @@ -205,6 +208,9 @@ 'rpm' : { $package_name = "${java_se}-${release_major}-${os}-${arch}.rpm" } + 'tar.gz' : { + $package_name = "${java_se}-${release_major}-${os}-${arch}.tar.gz" + } default : { $package_name = "${java_se}-${release_major}-${os}-${arch}.rpm" } @@ -235,6 +241,9 @@ 'rpm' : { $install_command = "rpm --force -iv ${destination}" } + 'tar.gz' : { + $install_command = "tar -zxf ${destination} -C /usr/lib/jvm" + } default : { $install_command = "rpm -iv ${destination}" } @@ -260,6 +269,14 @@ creates => $creates_path, require => Archive[$destination] } + case $facts['os']['family'] { + 'Debian' : { + file{'/usr/lib/jvm': + ensure => directory, + before => Exec["Install Oracle java_se ${java_se} ${version}"] + } + } + } } default : { fail ("unsupported platform ${$facts['kernel']}") From e6c2c6c3f6969983e8bbd512a1591495caa4a7ea Mon Sep 17 00:00:00 2001 From: mbakerbp Date: Wed, 21 Jun 2017 09:07:27 +0800 Subject: [PATCH 2/4] Trnaslate amd64 --- manifests/oracle.pp | 1 + 1 file changed, 1 insertion(+) diff --git a/manifests/oracle.pp b/manifests/oracle.pp index 5cd27f87..4fde0762 100644 --- a/manifests/oracle.pp +++ b/manifests/oracle.pp @@ -186,6 +186,7 @@ case $facts['os']['architecture'] { 'i386' : { $arch = 'i586' } 'x86_64' : { $arch = 'x64' } + 'amd64' : { $arch = 'x64' } default : { fail ("unsupported platform ${$facts['os']['architecture']}") } From cc3bea181eff9dcc7c72ff79d666d3d58bb38191 Mon Sep 17 00:00:00 2001 From: mbakerbp Date: Wed, 21 Jun 2017 09:44:00 +0800 Subject: [PATCH 3/4] Adding tests --- manifests/oracle.pp | 1 + spec/defines/oracle_spec.rb | 57 +++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/manifests/oracle.pp b/manifests/oracle.pp index 4fde0762..df2d69e0 100644 --- a/manifests/oracle.pp +++ b/manifests/oracle.pp @@ -277,6 +277,7 @@ before => Exec["Install Oracle java_se ${java_se} ${version}"] } } + default : { } } } default : { diff --git a/spec/defines/oracle_spec.rb b/spec/defines/oracle_spec.rb index 71156575..96eea186 100644 --- a/spec/defines/oracle_spec.rb +++ b/spec/defines/oracle_spec.rb @@ -111,6 +111,63 @@ end end + context 'On Ubuntu 64-bit' do + let(:facts) { {:kernel => 'Linux', :os => { :family => 'Debian', :architecture => 'amd64', :name => 'Ubuntu', :release => { :full => '16.04' } } } } + + context 'Oracle Java SE 6 JDK' do + let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} } + let :title do 'jdk6' end + it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64.tar.gz')} + it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('tar -zxf /tmp/jdk-6u45-linux-x64.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Oracle java_se jdk 6').that_requires('Archive[/tmp/jdk-6u45-linux-x64.tar.gz]') } + end + + context 'Oracle Java SE 7 JDK' do + let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} } + let :title do 'jdk7' end + it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.tar.gz')} + it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('tar -zxf /tmp/jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Oracle java_se jdk 7').that_requires('Archive[/tmp/jdk-7u80-linux-x64.tar.gz]') } + end + + context 'Oracle Java SE 8 JDK' do + let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} } + let :title do 'jdk8' end + it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz')} + it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('tar -zxf /tmp/jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Oracle java_se jdk 8').that_requires('Archive[/tmp/jdk-8u131-linux-x64.tar.gz]') } + end + + context 'Oracle Java SE 6 JRE' do + let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} } + let :title do 'jre6' end + it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64.tar.gz')} + it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('tar -zxf /tmp/jre-6u45-linux-x64.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Oracle java_se jre 6').that_requires('Archive[/tmp/jre-6u45-linux-x64.tar.gz]') } + end + + context 'Oracle Java SE 7 JRE' do + let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} } + let :title do 'jre7' end + it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.tar.gz')} + it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('tar -zxf /tmp/jre-7u80-linux-x64.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Oracle java_se jre 7').that_requires('Archive[/tmp/jre-7u80-linux-x64.tar.gz]') } + end + + context 'select Oracle Java SE 8 JRE' do + let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} } + let :title do 'jre8' end + it { is_expected.to contain_archive('/tmp/jre-8u131-linux-x64.tar.gz')} + it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('tar -zxf /tmp/jre-8u131-linux-x64.tar.gz -C /usr/lib/jvm') } + it { is_expected.to contain_exec('Install Oracle java_se jre 8').that_requires('Archive[/tmp/jre-8u131-linux-x64.tar.gz]') } + end + + context 'Pass URL to url parameter' do + let(:params) { {:ensure => 'present', :version_major => '8u131', :version_minor => 'b11', :java_se => 'jdk', :url => 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz'} } + let :title do 'jdk8' end + it { is_expected.to contain_archive('/tmp/jdk-8u131-linux-x64.tar.gz')} + end + end describe 'incompatible OSes' do [ { From c72a7155eccc5ea41a044b26c913b789727c7473 Mon Sep 17 00:00:00 2001 From: mbakerbp Date: Fri, 14 Jul 2017 06:08:59 +0800 Subject: [PATCH 4/4] Fix the path creation on exec --- manifests/oracle.pp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/manifests/oracle.pp b/manifests/oracle.pp index df2d69e0..460e1abb 100644 --- a/manifests/oracle.pp +++ b/manifests/oracle.pp @@ -166,9 +166,11 @@ } else { $package_type = 'rpm' } + $creates_path = "/usr/java/${install_path}" } 'Debian' : { $package_type = 'tar.gz' + $creates_path = "/usr/lib/jvm/${install_path}" } default : { fail ("unsupported platform ${$facts['os']['name']}") } @@ -176,7 +178,6 @@ $os = 'linux' $destination_dir = '/tmp/' - $creates_path = "/usr/java/${install_path}" } default : { fail ( "unsupported platform ${$facts['kernel']}" ) }