Compare commits
220 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
541a7dc90a | ||
|
|
49ef4596d1 | ||
|
|
4cabd802d7 | ||
|
|
13acbba4c8 | ||
|
|
e943b8654c | ||
|
|
a8e68cd210 | ||
|
|
4b58529ad5 | ||
|
|
358884cbd7 | ||
|
|
e9a1c62f0d | ||
|
|
ee3ac2dbc5 | ||
|
|
c0ce63019e | ||
|
|
e283a48afc | ||
|
|
1c64b30c5d | ||
|
|
01fba18d37 | ||
|
|
bdf8c34b02 | ||
|
|
c76a66eb7e | ||
|
|
312f5469cb | ||
|
|
69e9ffb19e | ||
|
|
2d9ff91e1c | ||
|
|
57c94e86e3 | ||
|
|
d595362de6 | ||
|
|
56f3f10b1d | ||
|
|
4e2217986e | ||
|
|
7b8c7ba42f | ||
|
|
4fed9edddf | ||
|
|
a83c5a60bc | ||
|
|
be4923629a | ||
|
|
2fe0d5dff4 | ||
|
|
4ed5c8b966 | ||
|
|
be8320eafe | ||
|
|
ee6eb4e4a1 | ||
|
|
91e86c1d11 | ||
|
|
f5350ff75b | ||
|
|
28599c9752 | ||
|
|
0547a5aef9 | ||
|
|
32f4322ec6 | ||
|
|
8169c6684e | ||
|
|
0ee1993b19 | ||
|
|
2ee840b8fc | ||
|
|
c3a5d55989 | ||
|
|
f48ed2fbe9 | ||
|
|
1abf0ac15c | ||
|
|
0d2dda5590 | ||
|
|
d871ee97c1 | ||
|
|
a78feaa17e | ||
|
|
595dc6df93 | ||
|
|
c03f5a0392 | ||
|
|
dcdbec8565 | ||
|
|
a83f32da35 | ||
|
|
1a6de8e23f | ||
|
|
57187de011 | ||
|
|
f9d03a10ac | ||
|
|
58edff7fd0 | ||
|
|
d3c3598349 | ||
|
|
fdbccc3435 | ||
|
|
1dda22762e | ||
|
|
4ee756a53c | ||
|
|
3667063d07 | ||
|
|
ee323980c7 | ||
|
|
6a8f03bb17 | ||
|
|
4f17bb9937 | ||
|
|
f3bfd78279 | ||
|
|
4c3e026fc8 | ||
|
|
29f7c890ed | ||
|
|
d9969df148 | ||
|
|
9210295606 | ||
|
|
43bd5e73af | ||
|
|
460daa1a80 | ||
|
|
6bcee4a5fd | ||
|
|
6aea9f9833 | ||
|
|
13d30c2e2d | ||
|
|
8d1f9c50fc | ||
|
|
15b317e2ef | ||
|
|
b0cb998506 | ||
|
|
9ef2748ef3 | ||
|
|
3358b47dc7 | ||
|
|
f90756d87c | ||
|
|
82bf74b42a | ||
|
|
11dc1f4c26 | ||
|
|
d26dc21d11 | ||
|
|
f991317131 | ||
|
|
24ca4a662a | ||
|
|
cb1632ab17 | ||
|
|
875d5c4205 | ||
|
|
5730588e55 | ||
|
|
cf2ce99452 | ||
|
|
a38ae55c7f | ||
|
|
372b5d939a | ||
|
|
c481a128da | ||
|
|
06f1a56b31 | ||
|
|
236a115ed6 | ||
|
|
e4912e071c | ||
|
|
43133c9a22 | ||
|
|
e94f8521ef | ||
|
|
46e2a3b084 | ||
|
|
6de2b2db55 | ||
|
|
07533d13cd | ||
|
|
484f27a79e | ||
|
|
622c3469a6 | ||
|
|
84bc80d881 | ||
|
|
602d630cf0 | ||
|
|
5a0d540d78 | ||
|
|
c3104ce39b | ||
|
|
3d49162219 | ||
|
|
01e717777f | ||
|
|
d9627f96e8 | ||
|
|
708a94f253 | ||
|
|
e0da673208 | ||
|
|
504fe4c0ff | ||
|
|
f9ea9470d5 | ||
|
|
76cca5c33d | ||
|
|
ab55fc141b | ||
|
|
9551b4284b | ||
|
|
ff922b58dc | ||
|
|
2e16e093f2 | ||
|
|
86a66d5732 | ||
|
|
cc50bff4e2 | ||
|
|
35dba98f4b | ||
|
|
35dcaf1cb5 | ||
|
|
2e72a1e255 | ||
|
|
84654700bc | ||
|
|
9651f5e630 | ||
|
|
1cdeba11f1 | ||
|
|
11c314814e | ||
|
|
358d1e85d0 | ||
|
|
415f1283d2 | ||
|
|
db27f84760 | ||
|
|
e54f5b4f08 | ||
|
|
93cc972768 | ||
|
|
84546ca9a7 | ||
|
|
c4c56cd6c5 | ||
|
|
61ace5ea01 | ||
|
|
4f52cee832 | ||
|
|
4dbf9321eb | ||
|
|
da548082fe | ||
|
|
c0748f164f | ||
|
|
a88f01321d | ||
|
|
4c336b3ca7 | ||
|
|
f44bc27a17 | ||
|
|
6cda8ef5ba | ||
|
|
0a77898e3d | ||
|
|
2b641fd530 | ||
|
|
1bfe4da05a | ||
|
|
6bdf734416 | ||
|
|
c288dbec0e | ||
|
|
aa255af5ad | ||
|
|
69a75c8e6a | ||
|
|
60a4af1843 | ||
|
|
4ad9ec6191 | ||
|
|
0a09bce58f | ||
|
|
26e9bcfc1a | ||
|
|
a57d124d7d | ||
|
|
e300649623 | ||
|
|
d30c38266b | ||
|
|
4610ca34a8 | ||
|
|
fb850647a8 | ||
|
|
0d23711e7d | ||
|
|
a0bab6cf38 | ||
|
|
8b451e161c | ||
|
|
afb5531a4a | ||
|
|
47a51b4490 | ||
|
|
b64e9a2f88 | ||
|
|
6f05978750 | ||
|
|
c477db3b59 | ||
|
|
00588d2b96 | ||
|
|
2ea5a4adb5 | ||
|
|
018de0aef6 | ||
|
|
74c5c27108 | ||
|
|
ee0e10dc12 | ||
|
|
4913dc0bef | ||
|
|
459757dd65 | ||
|
|
7ce9df174f | ||
|
|
b1ea376937 | ||
|
|
de79582baf | ||
|
|
ea006c0587 | ||
|
|
e57cbc84ec | ||
|
|
d4e5461c26 | ||
|
|
a5aad36b86 | ||
|
|
f70d15207a | ||
|
|
0b1f8df952 | ||
|
|
f83cf9fc38 | ||
|
|
074162d034 | ||
|
|
71b6a47798 | ||
|
|
b670aca0cc | ||
|
|
27fed78308 | ||
|
|
ba9a1dbe45 | ||
|
|
197213e517 | ||
|
|
21d39590b0 | ||
|
|
00c05a826f | ||
|
|
d277391efc | ||
|
|
ce34499671 | ||
|
|
b632db3a3e | ||
|
|
9c8d34f7e7 | ||
|
|
af9c6c1bbe | ||
|
|
70fa42b5c7 | ||
|
|
0026df5de1 | ||
|
|
ce58b6793e | ||
|
|
a7f5b49404 | ||
|
|
c3d6da014f | ||
|
|
ab9efa8405 | ||
|
|
983efef86a | ||
|
|
b9564626d3 | ||
|
|
ff0b03eb72 | ||
|
|
7b73f579c0 | ||
|
|
614d624e5d | ||
|
|
2bdc458965 | ||
|
|
48b5d0209d | ||
|
|
bd22547e1e | ||
|
|
77c18be58b | ||
|
|
88d31a7a64 | ||
|
|
2a81a6cd07 | ||
|
|
68e1d7681d | ||
|
|
9d0301b1ef | ||
|
|
ae2baf0006 | ||
|
|
4e36ff899c | ||
|
|
bcc6263e14 | ||
|
|
92a9700ad3 | ||
|
|
2c624c2800 | ||
|
|
2ede3f1f06 | ||
|
|
16fa2379a2 |
6
.devcontainer/Dockerfile
Normal file
6
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
FROM puppet/pdk:latest
|
||||||
|
|
||||||
|
# [Optional] Uncomment this section to install additional packages.
|
||||||
|
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||||
|
|
||||||
23
.devcontainer/devcontainer.json
Normal file
23
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet
|
||||||
|
{
|
||||||
|
"name": "Puppet Development Kit (Community)",
|
||||||
|
"dockerFile": "Dockerfile",
|
||||||
|
|
||||||
|
// Set *default* container specific settings.json values on container create.
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.shell.linux": "/bin/bash"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
|
"extensions": [
|
||||||
|
"puppet.puppet-vscode",
|
||||||
|
"rebornix.Ruby"
|
||||||
|
]
|
||||||
|
|
||||||
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
|
// "forwardPorts": [],
|
||||||
|
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
// "postCreateCommand": "pdk --version",
|
||||||
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
fixtures:
|
fixtures:
|
||||||
repositories:
|
repositories:
|
||||||
stdlib: "git://github.com/puppetlabs/puppetlabs-stdlib.git"
|
archive: "https://github.com/voxpupuli/puppet-archive.git"
|
||||||
archive: "git://github.com/voxpupuli/puppet-archive.git"
|
facts: 'https://github.com/puppetlabs/puppetlabs-facts.git'
|
||||||
|
stdlib: "https://github.com/puppetlabs/puppetlabs-stdlib.git"
|
||||||
|
puppet_agent: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git'
|
||||||
|
provision: 'https://github.com/puppetlabs/provision.git'
|
||||||
symlinks:
|
symlinks:
|
||||||
java: "#{source_dir}"
|
java: "#{source_dir}"
|
||||||
|
|||||||
84
.github/workflows/auto_release.yml
vendored
Normal file
84
.github/workflows/auto_release.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
name: "Auto release"
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||||
|
HONEYCOMB_DATASET: litmus tests
|
||||||
|
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
auto_release:
|
||||||
|
name: "Automatic release prep"
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
|
||||||
|
- name: "Honeycomb: start first step"
|
||||||
|
run: |
|
||||||
|
echo STEP_ID="auto-release" >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: "Checkout Source"
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: "PDK Release prep"
|
||||||
|
uses: docker://puppet/iac_release:ci
|
||||||
|
with:
|
||||||
|
args: 'release prep --force'
|
||||||
|
env:
|
||||||
|
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: "Get Version"
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
id: gv
|
||||||
|
run: |
|
||||||
|
echo "::set-output name=ver::$(jq --raw-output .version metadata.json)"
|
||||||
|
|
||||||
|
- name: "Commit changes"
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com"
|
||||||
|
git config --local user.name "GitHub Action"
|
||||||
|
git add .
|
||||||
|
git commit -m "Release prep v${{ steps.gv.outputs.ver }}"
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
id: cpr
|
||||||
|
uses: puppetlabs/peter-evans-create-pull-request@v3
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
commit-message: "Release prep v${{ steps.gv.outputs.ver }}"
|
||||||
|
branch: "release-prep"
|
||||||
|
delete-branch: true
|
||||||
|
title: "Release prep v${{ steps.gv.outputs.ver }}"
|
||||||
|
body: |
|
||||||
|
Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb) from commit ${{ github.sha }}.
|
||||||
|
Please verify before merging:
|
||||||
|
- [ ] last [nightly](https://github.com/${{ github.repository }}/actions/workflows/nightly.yml) run is green
|
||||||
|
- [ ] [Changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) is readable and has no unlabeled pull requests
|
||||||
|
- [ ] Ensure the [changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) version and [metadata](https://github.com/${{ github.repository }}/blob/release-prep/metadata.json) version match
|
||||||
|
labels: "maintenance"
|
||||||
|
|
||||||
|
- name: PR outputs
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
||||||
|
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record finish step"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Finished auto release workflow'
|
||||||
204
.github/workflows/nightly.yml
vendored
Normal file
204
.github/workflows/nightly.yml
vendored
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
name: "nightly"
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
|
env:
|
||||||
|
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||||
|
HONEYCOMB_DATASET: litmus tests
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
setup_matrix:
|
||||||
|
name: "Setup Test Matrix"
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
outputs:
|
||||||
|
matrix: ${{ steps.get-matrix.outputs.matrix }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start first step"
|
||||||
|
run: |
|
||||||
|
echo STEP_ID=setup-environment >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout Source
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
|
||||||
|
- name: Activate Ruby 2.7
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
with:
|
||||||
|
ruby-version: "2.7"
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Print bundle environment
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
echo ::group::bundler environment
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Environment time"
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||||
|
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Setup Acceptance Test Matrix
|
||||||
|
id: get-matrix
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||||
|
else
|
||||||
|
echo "::set-output name=matrix::{}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Test Matrix time"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
|
||||||
|
needs:
|
||||||
|
- setup_matrix
|
||||||
|
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix: ${{fromJson(needs.setup_matrix.outputs.matrix)}}
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUILDEVENT_FILE: '../buildevents.txt'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE
|
||||||
|
echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
|
||||||
|
echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE
|
||||||
|
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
matrix-key: ${{ matrix.platforms.label }}-${{ matrix.collection }}
|
||||||
|
|
||||||
|
- name: "Honeycomb: start first step"
|
||||||
|
run: |
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout Source
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Activate Ruby 2.7
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: "2.7"
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Print bundle environment
|
||||||
|
run: |
|
||||||
|
echo ::group::bundler environment
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Environment time"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Provision test environment
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]'
|
||||||
|
echo ::group::=== REQUEST ===
|
||||||
|
cat request.json || true
|
||||||
|
echo
|
||||||
|
echo ::endgroup::
|
||||||
|
echo ::group::=== INVENTORY ===
|
||||||
|
if [ -f 'spec/fixtures/litmus_inventory.yaml' ];
|
||||||
|
then
|
||||||
|
FILE='spec/fixtures/litmus_inventory.yaml'
|
||||||
|
elif [ -f 'inventory.yaml' ];
|
||||||
|
then
|
||||||
|
FILE='inventory.yaml'
|
||||||
|
fi
|
||||||
|
sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: Install agent
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
|
||||||
|
|
||||||
|
- name: Install module
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record deployment times"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
echo ::group::honeycomb step
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system'
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: Run acceptance tests
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:acceptance:parallel' -- bundle exec rake 'litmus:acceptance:parallel'
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record acceptance testing times"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Remove test environment
|
||||||
|
if: ${{ always() }}
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
if [[ -f inventory.yaml || -f spec/fixtures/litmus_inventory.yaml ]]; then
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down'
|
||||||
|
echo ::group::=== REQUEST ===
|
||||||
|
cat request.json || true
|
||||||
|
echo
|
||||||
|
echo ::endgroup::
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record removal times"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Remove test environment'
|
||||||
|
|
||||||
|
slack-workflow-status:
|
||||||
|
if: always()
|
||||||
|
name: Post Workflow Status To Slack
|
||||||
|
needs:
|
||||||
|
- Acceptance
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Slack Workflow Notification
|
||||||
|
uses: puppetlabs/Gamesight-slack-workflow-status@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
# Required Input
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK }}
|
||||||
|
# Optional Input
|
||||||
|
channel: '#team-ia-bots'
|
||||||
|
name: 'GABot'
|
||||||
184
.github/workflows/pr_test.yml
vendored
Normal file
184
.github/workflows/pr_test.yml
vendored
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
name: "PR Testing"
|
||||||
|
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
env:
|
||||||
|
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||||
|
HONEYCOMB_DATASET: litmus tests
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
setup_matrix:
|
||||||
|
name: "Setup Test Matrix"
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
outputs:
|
||||||
|
matrix: ${{ steps.get-matrix.outputs.matrix }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start first step"
|
||||||
|
run: |
|
||||||
|
echo STEP_ID=setup-environment >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout Source
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
|
||||||
|
- name: Activate Ruby 2.7
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
with:
|
||||||
|
ruby-version: "2.7"
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Print bundle environment
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
echo ::group::bundler environment
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Environment time"
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||||
|
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Setup Acceptance Test Matrix
|
||||||
|
id: get-matrix
|
||||||
|
run: |
|
||||||
|
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||||
|
else
|
||||||
|
echo "::set-output name=matrix::{}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Test Matrix time"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
|
||||||
|
needs:
|
||||||
|
- setup_matrix
|
||||||
|
if: ${{ needs.setup_matrix.outputs.matrix != '{}' }}
|
||||||
|
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix: ${{fromJson(needs.setup_matrix.outputs.matrix)}}
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUILDEVENT_FILE: '../buildevents.txt'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE
|
||||||
|
echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
|
||||||
|
echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
matrix-key: ${{ matrix.platforms.label }}-${{ matrix.collection }}
|
||||||
|
|
||||||
|
- name: "Honeycomb: start first step"
|
||||||
|
run: |
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout Source
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Activate Ruby 2.7
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: "2.7"
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Print bundle environment
|
||||||
|
run: |
|
||||||
|
echo ::group::bundler environment
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Environment time"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Provision test environment
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]'
|
||||||
|
echo ::group::=== REQUEST ===
|
||||||
|
cat request.json || true
|
||||||
|
echo
|
||||||
|
echo ::endgroup::
|
||||||
|
echo ::group::=== INVENTORY ===
|
||||||
|
if [ -f 'spec/fixtures/litmus_inventory.yaml' ];
|
||||||
|
then
|
||||||
|
FILE='spec/fixtures/litmus_inventory.yaml'
|
||||||
|
elif [ -f 'inventory.yaml' ];
|
||||||
|
then
|
||||||
|
FILE='inventory.yaml'
|
||||||
|
fi
|
||||||
|
sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: Install agent
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
|
||||||
|
|
||||||
|
- name: Install module
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record deployment times"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
echo ::group::honeycomb step
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system'
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: Run acceptance tests
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:acceptance:parallel' -- bundle exec rake 'litmus:acceptance:parallel'
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record acceptance testing times"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
|
||||||
|
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Remove test environment
|
||||||
|
if: ${{ always() }}
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
if [[ -f inventory.yaml || -f spec/fixtures/litmus_inventory.yaml ]]; then
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down'
|
||||||
|
echo ::group::=== REQUEST ===
|
||||||
|
cat request.json || true
|
||||||
|
echo
|
||||||
|
echo ::endgroup::
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record removal times"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Remove test environment'
|
||||||
47
.github/workflows/release.yml
vendored
Normal file
47
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
name: "Publish module"
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
create-github-release:
|
||||||
|
name: Deploy GitHub Release
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: ${{ github.ref }}
|
||||||
|
clean: true
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Get Version
|
||||||
|
id: gv
|
||||||
|
run: |
|
||||||
|
echo "::set-output name=ver::$(jq --raw-output .version metadata.json)"
|
||||||
|
- name: Create Release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
id: create_release
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: "v${{ steps.gv.outputs.ver }}"
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
||||||
|
|
||||||
|
deploy-forge:
|
||||||
|
name: Deploy to Forge
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: ${{ github.ref }}
|
||||||
|
clean: true
|
||||||
|
- name: "PDK Build"
|
||||||
|
uses: docker://puppet/pdk:nightly
|
||||||
|
with:
|
||||||
|
args: 'build'
|
||||||
|
- name: "Push to Forge"
|
||||||
|
uses: docker://puppet/pdk:nightly
|
||||||
|
with:
|
||||||
|
args: 'release publish --forge-token ${{ secrets.FORGE_API_KEY }} --force'
|
||||||
129
.github/workflows/spec.yml
vendored
Normal file
129
.github/workflows/spec.yml
vendored
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
name: "Spec Tests"
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
env:
|
||||||
|
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||||
|
HONEYCOMB_DATASET: litmus tests
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
setup_matrix:
|
||||||
|
name: "Setup Test Matrix"
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
outputs:
|
||||||
|
spec_matrix: ${{ steps.get-matrix.outputs.spec_matrix }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start first step"
|
||||||
|
run: |
|
||||||
|
echo STEP_ID=setup-environment >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout Source
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
|
||||||
|
- name: Activate Ruby 2.7
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
with:
|
||||||
|
ruby-version: "2.7"
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Print bundle environment
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
echo ::group::bundler environment
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Environment time"
|
||||||
|
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||||
|
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Setup Spec Test Matrix
|
||||||
|
id: get-matrix
|
||||||
|
run: |
|
||||||
|
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||||
|
else
|
||||||
|
echo "::set-output name=spec_matrix::{}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Honeycomb: Record Setup Test Matrix time"
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
|
||||||
|
|
||||||
|
Spec:
|
||||||
|
name: "Spec Tests (Puppet: ${{matrix.puppet_version}}, Ruby Ver: ${{matrix.ruby_version}})"
|
||||||
|
needs:
|
||||||
|
- setup_matrix
|
||||||
|
if: ${{ needs.setup_matrix.outputs.spec_matrix != '{}' }}
|
||||||
|
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix: ${{fromJson(needs.setup_matrix.outputs.spec_matrix)}}
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUILDEVENT_FILE: '../buildevents.txt'
|
||||||
|
PUPPET_GEM_VERSION: ${{ matrix.puppet_version }}
|
||||||
|
FACTER_GEM_VERSION: 'https://github.com/puppetlabs/facter#main'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
echo "SANITIZED_PUPPET_VERSION=$(echo '${{ matrix.puppet_version }}' | sed 's/~> //g')" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
echo 'puppet_version=${{ env.SANITIZED_PUPPET_VERSION }}' >> $BUILDEVENT_FILE
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start first step"
|
||||||
|
run: |
|
||||||
|
echo "STEP_ID=${{ env.SANITIZED_PUPPET_VERSION }}-spec" >> $GITHUB_ENV
|
||||||
|
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: "Honeycomb: Start recording"
|
||||||
|
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||||
|
with:
|
||||||
|
apikey: ${{ env.HONEYCOMB_WRITEKEY }}
|
||||||
|
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||||
|
job-status: ${{ job.status }}
|
||||||
|
matrix-key: ${{ env.SANITIZED_PUPPET_VERSION }}
|
||||||
|
|
||||||
|
- name: Checkout Source
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: "Activate Ruby ${{ matrix.ruby_version }}"
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: ${{matrix.ruby_version}}
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Print bundle environment
|
||||||
|
run: |
|
||||||
|
echo ::group::bundler environment
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||||
|
echo ::endgroup::
|
||||||
|
|
||||||
|
- name: Run Static & Syntax Tests
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'static_syntax_checks Puppet ${{ matrix.puppet_version }}, Ruby ${{ matrix.ruby_version }}' -- bundle exec rake syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop
|
||||||
|
|
||||||
|
- name: Run parallel_spec tests
|
||||||
|
run: |
|
||||||
|
buildevents cmd $TRACE_ID $STEP_ID 'rake parallel_spec Puppet ${{ matrix.puppet_version }}, Ruby ${{ matrix.ruby_version }}' -- bundle exec rake parallel_spec
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -22,5 +22,7 @@
|
|||||||
/convert_report.txt
|
/convert_report.txt
|
||||||
/update_report.txt
|
/update_report.txt
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.project
|
||||||
.envrc
|
.envrc
|
||||||
/inventory.yaml
|
/inventory.yaml
|
||||||
|
/spec/fixtures/litmus_inventory.yaml
|
||||||
|
|||||||
18
.gitpod.Dockerfile
vendored
Normal file
18
.gitpod.Dockerfile
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
FROM gitpod/workspace-full
|
||||||
|
RUN sudo wget https://apt.puppet.com/puppet-tools-release-bionic.deb && \
|
||||||
|
wget https://apt.puppetlabs.com/puppet6-release-bionic.deb && \
|
||||||
|
sudo dpkg -i puppet6-release-bionic.deb && \
|
||||||
|
sudo dpkg -i puppet-tools-release-bionic.deb && \
|
||||||
|
sudo apt-get update && \
|
||||||
|
sudo apt-get install -y pdk zsh puppet-agent && \
|
||||||
|
sudo apt-get clean && \
|
||||||
|
sudo rm -rf /var/lib/apt/lists/*
|
||||||
|
RUN sudo usermod -s $(which zsh) gitpod && \
|
||||||
|
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && \
|
||||||
|
echo "plugins=(git gitignore github gem pip bundler python ruby docker docker-compose)" >> /home/gitpod/.zshrc && \
|
||||||
|
echo 'PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/puppetlabs/bin:/opt/puppetlabs/puppet/bin"' >> /home/gitpod/.zshrc && \
|
||||||
|
sudo /opt/puppetlabs/puppet/bin/gem install puppet-debugger hub -N && \
|
||||||
|
mkdir -p /home/gitpod/.config/puppet && \
|
||||||
|
/opt/puppetlabs/puppet/bin/ruby -r yaml -e "puts ({'disabled' => true}).to_yaml" > /home/gitpod/.config/puppet/analytics.yml
|
||||||
|
RUN rm -f puppet6-release-bionic.deb puppet-tools-release-bionic.deb
|
||||||
|
ENTRYPOINT /usr/bin/zsh
|
||||||
9
.gitpod.yml
Normal file
9
.gitpod.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
image:
|
||||||
|
file: .gitpod.Dockerfile
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- init: pdk bundle install
|
||||||
|
|
||||||
|
vscode:
|
||||||
|
extensions:
|
||||||
|
- puppet.puppet-vscode@1.2.0:f5iEPbmOj6FoFTOV6q8LTg==
|
||||||
@@ -22,15 +22,19 @@
|
|||||||
/convert_report.txt
|
/convert_report.txt
|
||||||
/update_report.txt
|
/update_report.txt
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.project
|
||||||
.envrc
|
.envrc
|
||||||
/inventory.yaml
|
/inventory.yaml
|
||||||
|
/spec/fixtures/litmus_inventory.yaml
|
||||||
/appveyor.yml
|
/appveyor.yml
|
||||||
|
/.editorconfig
|
||||||
/.fixtures.yml
|
/.fixtures.yml
|
||||||
/Gemfile
|
/Gemfile
|
||||||
/.gitattributes
|
/.gitattributes
|
||||||
/.gitignore
|
/.gitignore
|
||||||
/.gitlab-ci.yml
|
/.gitlab-ci.yml
|
||||||
/.pdkignore
|
/.pdkignore
|
||||||
|
/.puppet-lint.rc
|
||||||
/Rakefile
|
/Rakefile
|
||||||
/rakelib/
|
/rakelib/
|
||||||
/.rspec
|
/.rspec
|
||||||
@@ -39,3 +43,5 @@
|
|||||||
/.yardopts
|
/.yardopts
|
||||||
/spec/
|
/spec/
|
||||||
/.vscode/
|
/.vscode/
|
||||||
|
/.sync.yml
|
||||||
|
/.devcontainer/
|
||||||
|
|||||||
23
.project
23
.project
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>puppetlabs-java</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>com.puppetlabs.geppetto.pp.dsl.ui.modulefileBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>com.puppetlabs.geppetto.pp.dsl.ui.puppetNature</nature>
|
|
||||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
||||||
419
.rubocop.yml
419
.rubocop.yml
@@ -1,10 +1,12 @@
|
|||||||
---
|
---
|
||||||
require: rubocop-rspec
|
require:
|
||||||
|
- rubocop-performance
|
||||||
|
- rubocop-rspec
|
||||||
AllCops:
|
AllCops:
|
||||||
DisplayCopNames: true
|
DisplayCopNames: true
|
||||||
TargetRubyVersion: '2.1'
|
TargetRubyVersion: '2.4'
|
||||||
Include:
|
Include:
|
||||||
- "./**/*.rb"
|
- "**/*.rb"
|
||||||
Exclude:
|
Exclude:
|
||||||
- bin/*
|
- bin/*
|
||||||
- ".vendor/**/*"
|
- ".vendor/**/*"
|
||||||
@@ -16,13 +18,9 @@ AllCops:
|
|||||||
- "**/Puppetfile"
|
- "**/Puppetfile"
|
||||||
- "**/Vagrantfile"
|
- "**/Vagrantfile"
|
||||||
- "**/Guardfile"
|
- "**/Guardfile"
|
||||||
Metrics/LineLength:
|
Layout/LineLength:
|
||||||
Description: People have wide screens, use them.
|
Description: People have wide screens, use them.
|
||||||
Max: 200
|
Max: 200
|
||||||
GetText/DecorateString:
|
|
||||||
Description: We don't want to decorate test output.
|
|
||||||
Exclude:
|
|
||||||
- spec/*
|
|
||||||
RSpec/BeforeAfterAll:
|
RSpec/BeforeAfterAll:
|
||||||
Description: Beware of using after(:all) as it may cause state to leak between tests.
|
Description: Beware of using after(:all) as it may cause state to leak between tests.
|
||||||
A necessary evil in acceptance testing.
|
A necessary evil in acceptance testing.
|
||||||
@@ -31,6 +29,9 @@ RSpec/BeforeAfterAll:
|
|||||||
RSpec/HookArgument:
|
RSpec/HookArgument:
|
||||||
Description: Prefer explicit :each argument, matching existing module's style
|
Description: Prefer explicit :each argument, matching existing module's style
|
||||||
EnforcedStyle: each
|
EnforcedStyle: each
|
||||||
|
RSpec/DescribeSymbol:
|
||||||
|
Exclude:
|
||||||
|
- spec/unit/facter/**/*.rb
|
||||||
Style/BlockDelimiters:
|
Style/BlockDelimiters:
|
||||||
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
|
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
|
||||||
be consistent then.
|
be consistent then.
|
||||||
@@ -63,7 +64,7 @@ Style/TrailingCommaInArguments:
|
|||||||
Description: Prefer always trailing comma on multiline argument lists. This makes
|
Description: Prefer always trailing comma on multiline argument lists. This makes
|
||||||
diffs, and re-ordering nicer.
|
diffs, and re-ordering nicer.
|
||||||
EnforcedStyleForMultiline: comma
|
EnforcedStyleForMultiline: comma
|
||||||
Style/TrailingCommaInLiteral:
|
Style/TrailingCommaInArrayLiteral:
|
||||||
Description: Prefer always trailing comma on multiline literals. This makes diffs,
|
Description: Prefer always trailing comma on multiline literals. This makes diffs,
|
||||||
and re-ordering nicer.
|
and re-ordering nicer.
|
||||||
EnforcedStyleForMultiline: comma
|
EnforcedStyleForMultiline: comma
|
||||||
@@ -78,20 +79,170 @@ Style/Documentation:
|
|||||||
- spec/**/*
|
- spec/**/*
|
||||||
Style/WordArray:
|
Style/WordArray:
|
||||||
EnforcedStyle: brackets
|
EnforcedStyle: brackets
|
||||||
|
Performance/AncestorsInclude:
|
||||||
|
Enabled: true
|
||||||
|
Performance/BigDecimalWithNumericArgument:
|
||||||
|
Enabled: true
|
||||||
|
Performance/BlockGivenWithExplicitBlock:
|
||||||
|
Enabled: true
|
||||||
|
Performance/CaseWhenSplat:
|
||||||
|
Enabled: true
|
||||||
|
Performance/ConstantRegexp:
|
||||||
|
Enabled: true
|
||||||
|
Performance/MethodObjectAsBlock:
|
||||||
|
Enabled: true
|
||||||
|
Performance/RedundantSortBlock:
|
||||||
|
Enabled: true
|
||||||
|
Performance/RedundantStringChars:
|
||||||
|
Enabled: true
|
||||||
|
Performance/ReverseFirst:
|
||||||
|
Enabled: true
|
||||||
|
Performance/SortReverse:
|
||||||
|
Enabled: true
|
||||||
|
Performance/Squeeze:
|
||||||
|
Enabled: true
|
||||||
|
Performance/StringInclude:
|
||||||
|
Enabled: true
|
||||||
|
Performance/Sum:
|
||||||
|
Enabled: true
|
||||||
Style/CollectionMethods:
|
Style/CollectionMethods:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Style/MethodCalledOnDoEndBlock:
|
Style/MethodCalledOnDoEndBlock:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Style/StringMethods:
|
Style/StringMethods:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
Bundler/InsecureProtocolSource:
|
||||||
|
Enabled: false
|
||||||
|
Gemspec/DuplicatedAssignment:
|
||||||
|
Enabled: false
|
||||||
|
Gemspec/OrderedDependencies:
|
||||||
|
Enabled: false
|
||||||
|
Gemspec/RequiredRubyVersion:
|
||||||
|
Enabled: false
|
||||||
|
Gemspec/RubyVersionGlobalsUsage:
|
||||||
|
Enabled: false
|
||||||
|
Layout/ArgumentAlignment:
|
||||||
|
Enabled: false
|
||||||
|
Layout/BeginEndAlignment:
|
||||||
|
Enabled: false
|
||||||
|
Layout/ClosingHeredocIndentation:
|
||||||
|
Enabled: false
|
||||||
|
Layout/EmptyComment:
|
||||||
|
Enabled: false
|
||||||
|
Layout/EmptyLineAfterGuardClause:
|
||||||
|
Enabled: false
|
||||||
|
Layout/EmptyLinesAroundArguments:
|
||||||
|
Enabled: false
|
||||||
|
Layout/EmptyLinesAroundAttributeAccessor:
|
||||||
|
Enabled: false
|
||||||
Layout/EndOfLine:
|
Layout/EndOfLine:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Layout/IndentHeredoc:
|
Layout/FirstArgumentIndentation:
|
||||||
|
Enabled: false
|
||||||
|
Layout/HashAlignment:
|
||||||
|
Enabled: false
|
||||||
|
Layout/HeredocIndentation:
|
||||||
|
Enabled: false
|
||||||
|
Layout/LeadingEmptyLines:
|
||||||
|
Enabled: false
|
||||||
|
Layout/SpaceAroundMethodCallOperator:
|
||||||
|
Enabled: false
|
||||||
|
Layout/SpaceInsideArrayLiteralBrackets:
|
||||||
|
Enabled: false
|
||||||
|
Layout/SpaceInsideReferenceBrackets:
|
||||||
|
Enabled: false
|
||||||
|
Lint/BigDecimalNew:
|
||||||
|
Enabled: false
|
||||||
|
Lint/BooleanSymbol:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ConstantDefinitionInBlock:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DeprecatedOpenSSLConstant:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DisjunctiveAssignmentInConstructor:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DuplicateElsifCondition:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DuplicateRequire:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DuplicateRescueException:
|
||||||
|
Enabled: false
|
||||||
|
Lint/EmptyConditionalBody:
|
||||||
|
Enabled: false
|
||||||
|
Lint/EmptyFile:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ErbNewArguments:
|
||||||
|
Enabled: false
|
||||||
|
Lint/FloatComparison:
|
||||||
|
Enabled: false
|
||||||
|
Lint/HashCompareByIdentity:
|
||||||
|
Enabled: false
|
||||||
|
Lint/IdentityComparison:
|
||||||
|
Enabled: false
|
||||||
|
Lint/InterpolationCheck:
|
||||||
|
Enabled: false
|
||||||
|
Lint/MissingCopEnableDirective:
|
||||||
|
Enabled: false
|
||||||
|
Lint/MixedRegexpCaptureTypes:
|
||||||
|
Enabled: false
|
||||||
|
Lint/NestedPercentLiteral:
|
||||||
|
Enabled: false
|
||||||
|
Lint/NonDeterministicRequireOrder:
|
||||||
|
Enabled: false
|
||||||
|
Lint/OrderedMagicComments:
|
||||||
|
Enabled: false
|
||||||
|
Lint/OutOfRangeRegexpRef:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RaiseException:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RedundantCopEnableDirective:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RedundantRequireStatement:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RedundantSafeNavigation:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RedundantWithIndex:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RedundantWithObject:
|
||||||
|
Enabled: false
|
||||||
|
Lint/RegexpAsCondition:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ReturnInVoidContext:
|
||||||
|
Enabled: false
|
||||||
|
Lint/SafeNavigationConsistency:
|
||||||
|
Enabled: false
|
||||||
|
Lint/SafeNavigationWithEmpty:
|
||||||
|
Enabled: false
|
||||||
|
Lint/SelfAssignment:
|
||||||
|
Enabled: false
|
||||||
|
Lint/SendWithMixinArgument:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ShadowedArgument:
|
||||||
|
Enabled: false
|
||||||
|
Lint/StructNewOverride:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ToJSON:
|
||||||
|
Enabled: false
|
||||||
|
Lint/TopLevelReturnWithArgument:
|
||||||
|
Enabled: false
|
||||||
|
Lint/TrailingCommaInAttributeDeclaration:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UnreachableLoop:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UriEscapeUnescape:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UriRegexp:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UselessMethodDefinition:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UselessTimes:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Metrics/AbcSize:
|
Metrics/AbcSize:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Metrics/BlockLength:
|
Metrics/BlockLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Metrics/BlockNesting:
|
||||||
|
Enabled: false
|
||||||
Metrics/ClassLength:
|
Metrics/ClassLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Metrics/CyclomaticComplexity:
|
Metrics/CyclomaticComplexity:
|
||||||
@@ -104,19 +255,265 @@ Metrics/ParameterLists:
|
|||||||
Enabled: false
|
Enabled: false
|
||||||
Metrics/PerceivedComplexity:
|
Metrics/PerceivedComplexity:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Migration/DepartmentName:
|
||||||
|
Enabled: false
|
||||||
|
Naming/AccessorMethodName:
|
||||||
|
Enabled: false
|
||||||
|
Naming/BlockParameterName:
|
||||||
|
Enabled: false
|
||||||
|
Naming/HeredocDelimiterCase:
|
||||||
|
Enabled: false
|
||||||
|
Naming/HeredocDelimiterNaming:
|
||||||
|
Enabled: false
|
||||||
|
Naming/MemoizedInstanceVariableName:
|
||||||
|
Enabled: false
|
||||||
|
Naming/MethodParameterName:
|
||||||
|
Enabled: false
|
||||||
|
Naming/RescuedExceptionsVariableName:
|
||||||
|
Enabled: false
|
||||||
|
Naming/VariableNumber:
|
||||||
|
Enabled: false
|
||||||
|
Performance/BindCall:
|
||||||
|
Enabled: false
|
||||||
|
Performance/DeletePrefix:
|
||||||
|
Enabled: false
|
||||||
|
Performance/DeleteSuffix:
|
||||||
|
Enabled: false
|
||||||
|
Performance/InefficientHashSearch:
|
||||||
|
Enabled: false
|
||||||
|
Performance/UnfreezeString:
|
||||||
|
Enabled: false
|
||||||
|
Performance/UriDefaultParser:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/Be:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/Capybara/CurrentPathExpectation:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/Capybara/FeatureMethods:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/Capybara/VisibilityMatcher:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ContextMethod:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ContextWording:
|
||||||
|
Enabled: false
|
||||||
RSpec/DescribeClass:
|
RSpec/DescribeClass:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
RSpec/EmptyHook:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/EmptyLineAfterExample:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/EmptyLineAfterExampleGroup:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/EmptyLineAfterHook:
|
||||||
|
Enabled: false
|
||||||
RSpec/ExampleLength:
|
RSpec/ExampleLength:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
RSpec/MessageExpectation:
|
RSpec/ExampleWithoutDescription:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ExpectChange:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ExpectInHook:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/FactoryBot/AttributeDefinedStatically:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/FactoryBot/CreateList:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/FactoryBot/FactoryClassName:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/HooksBeforeExamples:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ImplicitBlockExpectation:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ImplicitSubject:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/LeakyConstantDeclaration:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/LetBeforeExamples:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/MissingExampleGroupArgument:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
RSpec/MultipleExpectations:
|
RSpec/MultipleExpectations:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
RSpec/MultipleMemoizedHelpers:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/MultipleSubjects:
|
||||||
|
Enabled: false
|
||||||
RSpec/NestedGroups:
|
RSpec/NestedGroups:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
RSpec/PredicateMatcher:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ReceiveCounts:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ReceiveNever:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/RepeatedExampleGroupBody:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/RepeatedExampleGroupDescription:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/RepeatedIncludeExample:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/ReturnFromStub:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/SharedExamples:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/StubbedMock:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/UnspecifiedException:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/VariableDefinition:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/VoidExpect:
|
||||||
|
Enabled: false
|
||||||
|
RSpec/Yield:
|
||||||
|
Enabled: false
|
||||||
|
Security/Open:
|
||||||
|
Enabled: false
|
||||||
|
Style/AccessModifierDeclarations:
|
||||||
|
Enabled: false
|
||||||
|
Style/AccessorGrouping:
|
||||||
|
Enabled: false
|
||||||
Style/AsciiComments:
|
Style/AsciiComments:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Style/BisectedAttrAccessor:
|
||||||
|
Enabled: false
|
||||||
|
Style/CaseLikeIf:
|
||||||
|
Enabled: false
|
||||||
|
Style/ClassEqualityComparison:
|
||||||
|
Enabled: false
|
||||||
|
Style/ColonMethodDefinition:
|
||||||
|
Enabled: false
|
||||||
|
Style/CombinableLoops:
|
||||||
|
Enabled: false
|
||||||
|
Style/CommentedKeyword:
|
||||||
|
Enabled: false
|
||||||
|
Style/Dir:
|
||||||
|
Enabled: false
|
||||||
|
Style/DoubleCopDisableDirective:
|
||||||
|
Enabled: false
|
||||||
|
Style/EmptyBlockParameter:
|
||||||
|
Enabled: false
|
||||||
|
Style/EmptyLambdaParameter:
|
||||||
|
Enabled: false
|
||||||
|
Style/Encoding:
|
||||||
|
Enabled: false
|
||||||
|
Style/EvalWithLocation:
|
||||||
|
Enabled: false
|
||||||
|
Style/ExpandPathArguments:
|
||||||
|
Enabled: false
|
||||||
|
Style/ExplicitBlockArgument:
|
||||||
|
Enabled: false
|
||||||
|
Style/ExponentialNotation:
|
||||||
|
Enabled: false
|
||||||
|
Style/FloatDivision:
|
||||||
|
Enabled: false
|
||||||
|
Style/FrozenStringLiteralComment:
|
||||||
|
Enabled: false
|
||||||
|
Style/GlobalStdStream:
|
||||||
|
Enabled: false
|
||||||
|
Style/HashAsLastArrayItem:
|
||||||
|
Enabled: false
|
||||||
|
Style/HashLikeCase:
|
||||||
|
Enabled: false
|
||||||
|
Style/HashTransformKeys:
|
||||||
|
Enabled: false
|
||||||
|
Style/HashTransformValues:
|
||||||
|
Enabled: false
|
||||||
Style/IfUnlessModifier:
|
Style/IfUnlessModifier:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Style/KeywordParametersOrder:
|
||||||
|
Enabled: false
|
||||||
|
Style/MinMax:
|
||||||
|
Enabled: false
|
||||||
|
Style/MixinUsage:
|
||||||
|
Enabled: false
|
||||||
|
Style/MultilineWhenThen:
|
||||||
|
Enabled: false
|
||||||
|
Style/NegatedUnless:
|
||||||
|
Enabled: false
|
||||||
|
Style/NumericPredicate:
|
||||||
|
Enabled: false
|
||||||
|
Style/OptionalBooleanParameter:
|
||||||
|
Enabled: false
|
||||||
|
Style/OrAssignment:
|
||||||
|
Enabled: false
|
||||||
|
Style/RandomWithOffset:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantAssignment:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantCondition:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantConditional:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantFetchBlock:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantFileExtensionInRequire:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantRegexpCharacterClass:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantRegexpEscape:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantSelfAssignment:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantSort:
|
||||||
|
Enabled: false
|
||||||
|
Style/RescueStandardError:
|
||||||
|
Enabled: false
|
||||||
|
Style/SingleArgumentDig:
|
||||||
|
Enabled: false
|
||||||
|
Style/SlicingWithRange:
|
||||||
|
Enabled: false
|
||||||
|
Style/SoleNestedConditional:
|
||||||
|
Enabled: false
|
||||||
|
Style/StderrPuts:
|
||||||
|
Enabled: false
|
||||||
|
Style/StringConcatenation:
|
||||||
|
Enabled: false
|
||||||
|
Style/Strip:
|
||||||
|
Enabled: false
|
||||||
Style/SymbolProc:
|
Style/SymbolProc:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Style/TrailingBodyOnClass:
|
||||||
|
Enabled: false
|
||||||
|
Style/TrailingBodyOnMethodDefinition:
|
||||||
|
Enabled: false
|
||||||
|
Style/TrailingBodyOnModule:
|
||||||
|
Enabled: false
|
||||||
|
Style/TrailingCommaInHashLiteral:
|
||||||
|
Enabled: false
|
||||||
|
Style/TrailingMethodEndStatement:
|
||||||
|
Enabled: false
|
||||||
|
Style/UnpackFirst:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DuplicateBranch:
|
||||||
|
Enabled: false
|
||||||
|
Lint/DuplicateRegexpCharacterClassElement:
|
||||||
|
Enabled: false
|
||||||
|
Lint/EmptyBlock:
|
||||||
|
Enabled: false
|
||||||
|
Lint/EmptyClass:
|
||||||
|
Enabled: false
|
||||||
|
Lint/NoReturnInBeginEndBlocks:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ToEnumArguments:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UnexpectedBlockArity:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UnmodifiedReduceAccumulator:
|
||||||
|
Enabled: false
|
||||||
|
Performance/CollectionLiteralInLoop:
|
||||||
|
Enabled: false
|
||||||
|
Style/ArgumentsForwarding:
|
||||||
|
Enabled: false
|
||||||
|
Style/CollectionCompact:
|
||||||
|
Enabled: false
|
||||||
|
Style/DocumentDynamicEvalDefinition:
|
||||||
|
Enabled: false
|
||||||
|
Style/NegatedIfElseCondition:
|
||||||
|
Enabled: false
|
||||||
|
Style/NilLambda:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantArgument:
|
||||||
|
Enabled: false
|
||||||
|
Style/SwapValues:
|
||||||
|
Enabled: false
|
||||||
|
|||||||
55
.sync.yml
55
.sync.yml
@@ -1,41 +1,30 @@
|
|||||||
---
|
---
|
||||||
.gitignore:
|
".gitlab-ci.yml":
|
||||||
required:
|
delete: true
|
||||||
- ---.project
|
|
||||||
|
|
||||||
.gitlab-ci.yml:
|
|
||||||
unmanaged: true
|
|
||||||
|
|
||||||
.travis.yml:
|
|
||||||
docker_sets:
|
|
||||||
- set: docker/centos-7
|
|
||||||
- set: docker/ubuntu-14.04
|
|
||||||
docker_defaults:
|
|
||||||
bundler_args: ""
|
|
||||||
secure: ""
|
|
||||||
branches:
|
|
||||||
- release
|
|
||||||
|
|
||||||
appveyor.yml:
|
appveyor.yml:
|
||||||
delete: true
|
delete: true
|
||||||
|
|
||||||
Gemfile:
|
Gemfile:
|
||||||
optional:
|
optional:
|
||||||
':development':
|
":development":
|
||||||
- gem: 'github_changelog_generator'
|
- gem: github_changelog_generator
|
||||||
git: 'https://github.com/skywinder/github-changelog-generator'
|
|
||||||
ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
|
|
||||||
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
|
|
||||||
required:
|
|
||||||
':system_tests':
|
|
||||||
- gem: 'puppet-module-posix-system-r#{minor_version}'
|
|
||||||
platforms: ruby
|
|
||||||
- gem: 'puppet-module-win-system-r#{minor_version}'
|
|
||||||
platforms:
|
|
||||||
- mswin
|
|
||||||
- mingw
|
|
||||||
- x64_mingw
|
|
||||||
|
|
||||||
spec/spec_helper.rb:
|
spec/spec_helper.rb:
|
||||||
mock_with: ':rspec'
|
mock_with: ":rspec"
|
||||||
coverage_report: true
|
coverage_report: true
|
||||||
|
.gitpod.Dockerfile:
|
||||||
|
unmanaged: false
|
||||||
|
.gitpod.yml:
|
||||||
|
unmanaged: false
|
||||||
|
.github/workflows/nightly.yml:
|
||||||
|
unmanaged: false
|
||||||
|
.github/workflows/pr_test.yml:
|
||||||
|
unmanaged: false
|
||||||
|
.github/workflows/auto_release.yml:
|
||||||
|
unmanaged: false
|
||||||
|
.github/workflows/spec.yml:
|
||||||
|
checks: 'syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop'
|
||||||
|
unmanaged: false
|
||||||
|
.github/workflows/release.yml:
|
||||||
|
unmanaged: false
|
||||||
|
.travis.yml:
|
||||||
|
delete: true
|
||||||
|
|||||||
72
.travis.yml
72
.travis.yml
@@ -1,72 +0,0 @@
|
|||||||
---
|
|
||||||
language: ruby
|
|
||||||
cache: bundler
|
|
||||||
before_install:
|
|
||||||
- bundle -v
|
|
||||||
- rm -f Gemfile.lock
|
|
||||||
- gem update --system $RUBYGEMS_VERSION
|
|
||||||
- gem --version
|
|
||||||
- bundle -v
|
|
||||||
script:
|
|
||||||
- 'bundle exec rake $CHECK'
|
|
||||||
bundler_args: --without system_tests
|
|
||||||
rvm:
|
|
||||||
- 2.5.3
|
|
||||||
stages:
|
|
||||||
- static
|
|
||||||
- spec
|
|
||||||
- acceptance
|
|
||||||
-
|
|
||||||
if: tag =~ ^v\d
|
|
||||||
name: deploy
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
include:
|
|
||||||
-
|
|
||||||
bundler_args:
|
|
||||||
dist: trusty
|
|
||||||
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_set=docker/centos-7 BEAKER_TESTMODE=apply
|
|
||||||
rvm: 2.5.3
|
|
||||||
script: bundle exec rake beaker
|
|
||||||
services: docker
|
|
||||||
stage: acceptance
|
|
||||||
sudo: required
|
|
||||||
-
|
|
||||||
bundler_args:
|
|
||||||
dist: trusty
|
|
||||||
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_set=docker/ubuntu-14.04 BEAKER_TESTMODE=apply
|
|
||||||
rvm: 2.5.3
|
|
||||||
script: bundle exec rake beaker
|
|
||||||
services: docker
|
|
||||||
stage: acceptance
|
|
||||||
sudo: required
|
|
||||||
-
|
|
||||||
env: CHECK="check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint"
|
|
||||||
stage: static
|
|
||||||
-
|
|
||||||
env: PUPPET_GEM_VERSION="~> 5.0" CHECK=parallel_spec
|
|
||||||
rvm: 2.4.5
|
|
||||||
stage: spec
|
|
||||||
-
|
|
||||||
env: PUPPET_GEM_VERSION="~> 6.0" CHECK=parallel_spec
|
|
||||||
rvm: 2.5.3
|
|
||||||
stage: spec
|
|
||||||
-
|
|
||||||
env: DEPLOY_TO_FORGE=yes
|
|
||||||
stage: deploy
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- /^v\d/
|
|
||||||
- release
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
deploy:
|
|
||||||
provider: puppetforge
|
|
||||||
user: puppet
|
|
||||||
password:
|
|
||||||
secure: ""
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
all_branches: true
|
|
||||||
condition: "$DEPLOY_TO_FORGE = yes"
|
|
||||||
6
.vscode/extensions.json
vendored
Normal file
6
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"puppet.puppet-vscode",
|
||||||
|
"rebornix.Ruby"
|
||||||
|
]
|
||||||
|
}
|
||||||
121
CHANGELOG.md
121
CHANGELOG.md
@@ -2,6 +2,125 @@
|
|||||||
|
|
||||||
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).
|
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).
|
||||||
|
|
||||||
|
## [v7.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/v7.1.0) (2021-08-12)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.0.2...v7.1.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- pdksync - \(IAC-1709\) - Add Support for Debian 11 [\#489](https://github.com/puppetlabs/puppetlabs-java/pull/489) ([david22swan](https://github.com/david22swan))
|
||||||
|
|
||||||
|
## [v7.0.2](https://github.com/puppetlabs/puppetlabs-java/tree/v7.0.2) (2021-04-26)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.0.1...v7.0.2)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- add url parameter for adoptopenjdk [\#473](https://github.com/puppetlabs/puppetlabs-java/pull/473) ([cbobinec](https://github.com/cbobinec))
|
||||||
|
|
||||||
|
## [v7.0.1](https://github.com/puppetlabs/puppetlabs-java/tree/v7.0.1) (2021-04-19)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.0.0...v7.0.1)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- allow v5.x of puppet/archive [\#476](https://github.com/puppetlabs/puppetlabs-java/pull/476) ([bastelfreak](https://github.com/bastelfreak))
|
||||||
|
|
||||||
|
## [v7.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/v7.0.0) (2021-03-01)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.5.0...v7.0.0)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0 [\#463](https://github.com/puppetlabs/puppetlabs-java/pull/463) ([carabasdaniel](https://github.com/carabasdaniel))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- \(MODULES-10935\) - Switch legacy operatingsystem fact to modern kernel one [\#461](https://github.com/puppetlabs/puppetlabs-java/pull/461) ([rjd1](https://github.com/rjd1))
|
||||||
|
|
||||||
|
## [v6.5.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.5.0) (2020-12-16)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.4.0...v6.5.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- pdksync - \(feat\) Add support for Puppet 7 [\#454](https://github.com/puppetlabs/puppetlabs-java/pull/454) ([daianamezdrea](https://github.com/daianamezdrea))
|
||||||
|
|
||||||
|
## [v6.4.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.4.0) (2020-11-09)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.3.0...v6.4.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add support for SAP Java \(sapjvm / sapmachine\) [\#433](https://github.com/puppetlabs/puppetlabs-java/pull/433) ([timdeluxe](https://github.com/timdeluxe))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- \[IAC-1208\] - Add the good links for solving the 404 error and exclude sles [\#443](https://github.com/puppetlabs/puppetlabs-java/pull/443) ([daianamezdrea](https://github.com/daianamezdrea))
|
||||||
|
- \(IAC-993\) - Removal of inappropriate terminology [\#439](https://github.com/puppetlabs/puppetlabs-java/pull/439) ([david22swan](https://github.com/david22swan))
|
||||||
|
|
||||||
|
## [v6.3.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.3.0) (2020-05-27)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.2.0...v6.3.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- \(MODULES-10681\) Add option to manage symlink to java::adopt [\#429](https://github.com/puppetlabs/puppetlabs-java/pull/429) ([fraenki](https://github.com/fraenki))
|
||||||
|
- \(IAC-746\) - Add ubuntu 20.04 support [\#428](https://github.com/puppetlabs/puppetlabs-java/pull/428) ([david22swan](https://github.com/david22swan))
|
||||||
|
|
||||||
|
## [v6.2.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.2.0) (2020-02-18)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.1.0...v6.2.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Support AdoptOpenJDK [\#370](https://github.com/puppetlabs/puppetlabs-java/pull/370) ([timdeluxe](https://github.com/timdeluxe))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Replace legacy facts by modern facts [\#406](https://github.com/puppetlabs/puppetlabs-java/pull/406) ([hdeheer](https://github.com/hdeheer))
|
||||||
|
|
||||||
|
## [v6.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.1.0) (2020-02-03)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.0.0...v6.1.0)
|
||||||
|
|
||||||
|
## [v6.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.0.0) (2019-11-11)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v5.0.1...v6.0.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- \(FM-8676\) Add CentOS 8 to supported OS list [\#399](https://github.com/puppetlabs/puppetlabs-java/pull/399) ([david22swan](https://github.com/david22swan))
|
||||||
|
- FM-8403 - add support Debain10 [\#387](https://github.com/puppetlabs/puppetlabs-java/pull/387) ([lionce](https://github.com/lionce))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- we need to check if java\_default\_home has a value before we attempt t… [\#391](https://github.com/puppetlabs/puppetlabs-java/pull/391) ([robmbrooks](https://github.com/robmbrooks))
|
||||||
|
- Add support for java 11, the default in debian buster 10 [\#386](https://github.com/puppetlabs/puppetlabs-java/pull/386) ([jhooyberghs](https://github.com/jhooyberghs))
|
||||||
|
|
||||||
|
## [v5.0.1](https://github.com/puppetlabs/puppetlabs-java/tree/v5.0.1) (2019-08-05)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v5.0.0...v5.0.1)
|
||||||
|
|
||||||
|
## [v5.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/v5.0.0) (2019-07-29)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v4.1.0...v5.0.0)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- \[FM-8320\] Remove Oracle download [\#372](https://github.com/puppetlabs/puppetlabs-java/pull/372) ([carabasdaniel](https://github.com/carabasdaniel))
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- \(FM-8223\) converted to use litmus [\#376](https://github.com/puppetlabs/puppetlabs-java/pull/376) ([tphoney](https://github.com/tphoney))
|
||||||
|
- Add buster support, default to 11 [\#369](https://github.com/puppetlabs/puppetlabs-java/pull/369) ([mhjacks](https://github.com/mhjacks))
|
||||||
|
- Add support for debian buster [\#364](https://github.com/puppetlabs/puppetlabs-java/pull/364) ([TomRitserveldt](https://github.com/TomRitserveldt))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- \(FM-8343\) use release numbers not lsbdistcodename [\#375](https://github.com/puppetlabs/puppetlabs-java/pull/375) ([tphoney](https://github.com/tphoney))
|
||||||
|
- Revert "Add support for debian buster" [\#374](https://github.com/puppetlabs/puppetlabs-java/pull/374) ([tphoney](https://github.com/tphoney))
|
||||||
|
|
||||||
## [v4.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/v4.1.0) (2019-05-29)
|
## [v4.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/v4.1.0) (2019-05-29)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v4.0.0...v4.1.0)
|
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v4.0.0...v4.1.0)
|
||||||
@@ -380,4 +499,4 @@ Jeff McCune <jeff@puppetlabs.com>
|
|||||||
[2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0
|
[2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0
|
||||||
|
|
||||||
|
|
||||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||||
|
|||||||
2
CODEOWNERS
Normal file
2
CODEOWNERS
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Setting ownership to the modules team
|
||||||
|
* @puppetlabs/modules
|
||||||
270
CONTRIBUTING.md
270
CONTRIBUTING.md
@@ -1,271 +1,3 @@
|
|||||||
# Contributing to Puppet modules
|
# Contributing to Puppet modules
|
||||||
|
|
||||||
So you want to contribute to a Puppet module: Great! Below are some instructions to get you started doing
|
Check out our [Contributing to Supported Modules Blog Post](https://puppetlabs.github.io/iac/docs/contributing_to_a_module.html) to find all the information that you will need.
|
||||||
that very thing while setting expectations around code quality as well as a few tips for making the
|
|
||||||
process as easy as possible.
|
|
||||||
|
|
||||||
### Table of Contents
|
|
||||||
|
|
||||||
1. [Getting Started](#getting-started)
|
|
||||||
1. [Commit Checklist](#commit-checklist)
|
|
||||||
1. [Submission](#submission)
|
|
||||||
1. [More about commits](#more-about-commits)
|
|
||||||
1. [Testing](#testing)
|
|
||||||
- [Running Tests](#running-tests)
|
|
||||||
- [Writing Tests](#writing-tests)
|
|
||||||
1. [Get Help](#get-help)
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
- Fork the module repository on GitHub and clone to your workspace
|
|
||||||
|
|
||||||
- Make your changes!
|
|
||||||
|
|
||||||
## Commit Checklist
|
|
||||||
|
|
||||||
### The Basics
|
|
||||||
|
|
||||||
- [x] my commit is a single logical unit of work
|
|
||||||
|
|
||||||
- [x] I have checked for unnecessary whitespace with "git diff --check"
|
|
||||||
|
|
||||||
- [x] my commit does not include commented out code or unneeded files
|
|
||||||
|
|
||||||
### The Content
|
|
||||||
|
|
||||||
- [x] my commit includes tests for the bug I fixed or feature I added
|
|
||||||
|
|
||||||
- [x] my commit includes appropriate documentation changes if it is introducing a new feature or changing existing functionality
|
|
||||||
|
|
||||||
- [x] my code passes existing test suites
|
|
||||||
|
|
||||||
### The Commit Message
|
|
||||||
|
|
||||||
- [x] the first line of my commit message includes:
|
|
||||||
|
|
||||||
- [x] an issue number (if applicable), e.g. "(MODULES-xxxx) This is the first line"
|
|
||||||
|
|
||||||
- [x] a short description (50 characters is the soft limit, excluding ticket number(s))
|
|
||||||
|
|
||||||
- [x] the body of my commit message:
|
|
||||||
|
|
||||||
- [x] is meaningful
|
|
||||||
|
|
||||||
- [x] uses the imperative, present tense: "change", not "changed" or "changes"
|
|
||||||
|
|
||||||
- [x] includes motivation for the change, and contrasts its implementation with the previous behavior
|
|
||||||
|
|
||||||
## Submission
|
|
||||||
|
|
||||||
### Pre-requisites
|
|
||||||
|
|
||||||
- Make sure you have a [GitHub account](https://github.com/join)
|
|
||||||
|
|
||||||
- [Create a ticket](https://tickets.puppet.com/secure/CreateIssue!default.jspa), or [watch the ticket](https://tickets.puppet.com/browse/) you are patching for.
|
|
||||||
|
|
||||||
### Push and PR
|
|
||||||
|
|
||||||
- Push your changes to your fork
|
|
||||||
|
|
||||||
- [Open a Pull Request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) against the repository in the puppetlabs organization
|
|
||||||
|
|
||||||
## More about commits
|
|
||||||
|
|
||||||
1. Make separate commits for logically separate changes.
|
|
||||||
|
|
||||||
Please break your commits down into logically consistent units
|
|
||||||
which include new or changed tests relevant to the rest of the
|
|
||||||
change. The goal of doing this is to make the diff easier to
|
|
||||||
read for whoever is reviewing your code. In general, the easier
|
|
||||||
your diff is to read, the more likely someone will be happy to
|
|
||||||
review it and get it into the code base.
|
|
||||||
|
|
||||||
If you are going to refactor a piece of code, please do so as a
|
|
||||||
separate commit from your feature or bug fix changes.
|
|
||||||
|
|
||||||
We also really appreciate changes that include tests to make
|
|
||||||
sure the bug is not re-introduced, and that the feature is not
|
|
||||||
accidentally broken.
|
|
||||||
|
|
||||||
Describe the technical detail of the change(s). If your
|
|
||||||
description starts to get too long, that is a good sign that you
|
|
||||||
probably need to split up your commit into more finely grained
|
|
||||||
pieces.
|
|
||||||
|
|
||||||
Commits which plainly describe the things which help
|
|
||||||
reviewers check the patch and future developers understand the
|
|
||||||
code are much more likely to be merged in with a minimum of
|
|
||||||
bike-shedding or requested changes. Ideally, the commit message
|
|
||||||
would include information, and be in a form suitable for
|
|
||||||
inclusion in the release notes for the version of Puppet that
|
|
||||||
includes them.
|
|
||||||
|
|
||||||
Please also check that you are not introducing any trailing
|
|
||||||
whitespace or other "whitespace errors". You can do this by
|
|
||||||
running "git diff --check" on your changes before you commit.
|
|
||||||
|
|
||||||
2. Sending your patches
|
|
||||||
|
|
||||||
To submit your changes via a GitHub pull request, we _highly_
|
|
||||||
recommend that you have them on a topic branch, instead of
|
|
||||||
directly on "master".
|
|
||||||
It makes things much easier to keep track of, especially if
|
|
||||||
you decide to work on another thing before your first change
|
|
||||||
is merged in.
|
|
||||||
|
|
||||||
GitHub has some pretty good
|
|
||||||
[general documentation](http://help.github.com/) on using
|
|
||||||
their site. They also have documentation on
|
|
||||||
[creating pull requests](https://help.github.com/articles/creating-a-pull-request-from-a-fork/).
|
|
||||||
|
|
||||||
In general, after pushing your topic branch up to your
|
|
||||||
repository on GitHub, you can switch to the branch in the
|
|
||||||
GitHub UI and click "Pull Request" towards the top of the page
|
|
||||||
in order to open a pull request.
|
|
||||||
|
|
||||||
3. Update the related JIRA issue.
|
|
||||||
|
|
||||||
If there is a JIRA issue associated with the change you
|
|
||||||
submitted, then you should update the ticket to include the
|
|
||||||
location of your branch, along with any other commentary you
|
|
||||||
may wish to make.
|
|
||||||
|
|
||||||
# Testing
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
Our Puppet modules provide [`Gemfile`](./Gemfile)s, which can tell a Ruby package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
|
||||||
or Gems, are required to build, develop, and test this software.
|
|
||||||
|
|
||||||
Please make sure you have [bundler installed](http://bundler.io/#getting-started) on your system, and then use it to
|
|
||||||
install all dependencies needed for this project in the project root by running
|
|
||||||
|
|
||||||
```shell
|
|
||||||
% bundle install --path .bundle/gems
|
|
||||||
Fetching gem metadata from https://rubygems.org/........
|
|
||||||
Fetching gem metadata from https://rubygems.org/..
|
|
||||||
Using rake (10.1.0)
|
|
||||||
Using builder (3.2.2)
|
|
||||||
-- 8><-- many more --><8 --
|
|
||||||
Using rspec-system-puppet (2.2.0)
|
|
||||||
Using serverspec (0.6.3)
|
|
||||||
Using rspec-system-serverspec (1.0.0)
|
|
||||||
Using bundler (1.3.5)
|
|
||||||
Your bundle is complete!
|
|
||||||
Use `bundle show [gemname]` to see where a bundled gem is installed.
|
|
||||||
```
|
|
||||||
|
|
||||||
NOTE: some systems may require you to run this command with sudo.
|
|
||||||
|
|
||||||
If you already have those gems installed, make sure they are up-to-date:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
% bundle update
|
|
||||||
```
|
|
||||||
|
|
||||||
## Running Tests
|
|
||||||
|
|
||||||
With all dependencies in place and up-to-date, run the tests:
|
|
||||||
|
|
||||||
### Unit Tests
|
|
||||||
|
|
||||||
```shell
|
|
||||||
% bundle exec rake spec
|
|
||||||
```
|
|
||||||
|
|
||||||
This executes all the [rspec tests](http://rspec-puppet.com/) in the directories defined [here](https://github.com/puppetlabs/puppetlabs_spec_helper/blob/699d9fbca1d2489bff1736bb254bb7b7edb32c74/lib/puppetlabs_spec_helper/rake_tasks.rb#L17) and so on.
|
|
||||||
rspec tests may have the same kind of dependencies as the module they are testing. Although the module defines these dependencies in its [metadata.json](./metadata.json),
|
|
||||||
rspec tests define them in [.fixtures.yml](./fixtures.yml).
|
|
||||||
|
|
||||||
### Acceptance Tests
|
|
||||||
|
|
||||||
Some Puppet modules also come with acceptance tests, which use [beaker][]. These tests spin up a virtual machine under
|
|
||||||
[VirtualBox](https://www.virtualbox.org/), controlled with [Vagrant](http://www.vagrantup.com/), to simulate scripted test
|
|
||||||
scenarios. In order to run these, you need both Virtualbox and Vagrant installed on your system.
|
|
||||||
|
|
||||||
Run the tests by issuing the following command
|
|
||||||
|
|
||||||
```shell
|
|
||||||
% bundle exec rake spec_clean
|
|
||||||
% bundle exec rspec spec/acceptance
|
|
||||||
```
|
|
||||||
|
|
||||||
This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
|
|
||||||
install Puppet, copy this module, and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
|
|
||||||
and then run all the tests under [spec/acceptance](./spec/acceptance).
|
|
||||||
|
|
||||||
## Writing Tests
|
|
||||||
|
|
||||||
### Unit Tests
|
|
||||||
|
|
||||||
When writing unit tests for Puppet, [rspec-puppet][] is your best friend. It provides tons of helper methods for testing your manifests against a
|
|
||||||
catalog (e.g. contain_file, contain_package, with_params, etc). It would be ridiculous to try and top rspec-puppet's [documentation][rspec-puppet_docs]
|
|
||||||
but here's a tiny sample:
|
|
||||||
|
|
||||||
Sample manifest:
|
|
||||||
|
|
||||||
```puppet
|
|
||||||
file { "a test file":
|
|
||||||
ensure => present,
|
|
||||||
path => "/etc/sample",
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Sample test:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
it 'does a thing' do
|
|
||||||
expect(subject).to contain_file("a test file").with({:path => "/etc/sample"})
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
### Acceptance Tests
|
|
||||||
|
|
||||||
Writing acceptance tests for Puppet involves [beaker][] and its cousin [beaker-rspec][]. A common pattern for acceptance tests is to create a test manifest, apply it
|
|
||||||
twice to check for idempotency or errors, then run expectations.
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
it 'does an end-to-end thing' do
|
|
||||||
pp = <<-EOF
|
|
||||||
file { 'a test file':
|
|
||||||
ensure => present,
|
|
||||||
path => "/etc/sample",
|
|
||||||
content => "test string",
|
|
||||||
}
|
|
||||||
|
|
||||||
apply_manifest(pp, :catch_failures => true)
|
|
||||||
apply_manifest(pp, :catch_changes => true)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
describe file("/etc/sample") do
|
|
||||||
it { is_expected.to contain "test string" }
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
# If you have commit access to the repository
|
|
||||||
|
|
||||||
Even if you have commit access to the repository, you still need to go through the process above, and have someone else review and merge
|
|
||||||
in your changes. The rule is that **all changes must be reviewed by a project developer that did not write the code to ensure that
|
|
||||||
all changes go through a code review process.**
|
|
||||||
|
|
||||||
The record of someone performing the merge is the record that they performed the code review. Again, this should be someone other than the author of the topic branch.
|
|
||||||
|
|
||||||
# Get Help
|
|
||||||
|
|
||||||
### On the web
|
|
||||||
* [Puppet help messageboard](http://puppet.com/community/get-help)
|
|
||||||
* [Writing tests](https://docs.puppet.com/guides/module_guides/bgtm.html#step-three-module-testing)
|
|
||||||
* [General GitHub documentation](http://help.github.com/)
|
|
||||||
* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
|
|
||||||
|
|
||||||
### On chat
|
|
||||||
* Slack (slack.puppet.com) #forge-modules, #puppet-dev, #windows, #voxpupuli
|
|
||||||
* IRC (freenode) #puppet-dev, #voxpupuli
|
|
||||||
|
|
||||||
|
|
||||||
[rspec-puppet]: http://rspec-puppet.com/
|
|
||||||
[rspec-puppet_docs]: http://rspec-puppet.com/documentation/
|
|
||||||
[beaker]: https://github.com/puppetlabs/beaker
|
|
||||||
[beaker-rspec]: https://github.com/puppetlabs/beaker-rspec
|
|
||||||
|
|||||||
33
Gemfile
33
Gemfile
@@ -17,21 +17,18 @@ ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
|
|||||||
minor_version = ruby_version_segments[0..1].join('.')
|
minor_version = ruby_version_segments[0..1].join('.')
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
|
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
||||||
gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
||||||
gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 2.8.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
||||||
gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
|
gem "puppet-module-posix-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||||
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||||
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||||
gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby]
|
gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||||
gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby]
|
gem "github_changelog_generator", require: false
|
||||||
gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
|
||||||
gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
|
||||||
gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')
|
|
||||||
end
|
end
|
||||||
group :system_tests do
|
group :system_tests do
|
||||||
gem "puppet-module-posix-system-r#{minor_version}", require: false, platforms: [:ruby]
|
gem "puppet-module-posix-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||||
gem "puppet-module-win-system-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
gem "puppet-module-win-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||||
end
|
end
|
||||||
|
|
||||||
puppet_version = ENV['PUPPET_GEM_VERSION']
|
puppet_version = ENV['PUPPET_GEM_VERSION']
|
||||||
@@ -48,16 +45,6 @@ gems['puppet'] = location_for(puppet_version)
|
|||||||
gems['facter'] = location_for(facter_version) if facter_version
|
gems['facter'] = location_for(facter_version) if facter_version
|
||||||
gems['hiera'] = location_for(hiera_version) if hiera_version
|
gems['hiera'] = location_for(hiera_version) if hiera_version
|
||||||
|
|
||||||
if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)}
|
|
||||||
# If we're using a Puppet gem on Windows which handles its own win32-xxx gem
|
|
||||||
# dependencies (>= 3.5.0), set the maximum versions (see PUP-6445).
|
|
||||||
gems['win32-dir'] = ['<= 0.4.9', require: false]
|
|
||||||
gems['win32-eventlog'] = ['<= 0.6.5', require: false]
|
|
||||||
gems['win32-process'] = ['<= 0.7.5', require: false]
|
|
||||||
gems['win32-security'] = ['<= 0.2.5', require: false]
|
|
||||||
gems['win32-service'] = ['0.8.8', require: false]
|
|
||||||
end
|
|
||||||
|
|
||||||
gems.each do |gem_name, gem_params|
|
gems.each do |gem_name, gem_params|
|
||||||
gem gem_name, *gem_params
|
gem gem_name, *gem_params
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
## Maintenance
|
|
||||||
|
|
||||||
Maintainers:
|
|
||||||
- Puppet Forge Modules Team `forge-modules |at| puppet |dot| com`
|
|
||||||
|
|
||||||
Tickets: https://tickets.puppet.com/browse/MODULES. Make sure to set component to `java`.
|
|
||||||
@@ -43,51 +43,117 @@ class { 'java' :
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The defined type `java::oracle` installs one or more versions of Oracle Java SE. `java::oracle` depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive). By using `java::oracle` you agree to Oracle's licensing terms for Java SE.
|
The defined type `java::download` installs one or more versions of Java SE from a remote url. `java::download` depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive).
|
||||||
|
|
||||||
|
To install Java to a non-default basedir (defaults: /usr/lib/jvm for Debian; /usr/java for RedHat):
|
||||||
```puppet
|
```puppet
|
||||||
java::oracle { 'jdk6' :
|
java::download { 'jdk8' :
|
||||||
ensure => 'present',
|
ensure => 'present',
|
||||||
version => '6',
|
|
||||||
java_se => 'jdk',
|
|
||||||
}
|
|
||||||
|
|
||||||
java::oracle { 'jdk8' :
|
|
||||||
ensure => 'present',
|
|
||||||
version => '8',
|
|
||||||
java_se => 'jdk',
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
To install a specific release of a Java version, e.g. 8u101-b13, provide both parameters `version_major` and `version_minor` as follows:
|
|
||||||
|
|
||||||
```puppet
|
|
||||||
java::oracle { 'jdk8' :
|
|
||||||
ensure => 'present',
|
|
||||||
version_major => '8u101',
|
|
||||||
version_minor => 'b13',
|
|
||||||
java_se => 'jdk',
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
To install Oracle Java to a non-default basedir (defaults: /usr/lib/jvm for Debian; /usr/java for RedHat):
|
|
||||||
```puppet
|
|
||||||
java::oracle { 'jdk8' :
|
|
||||||
ensure => 'present',
|
|
||||||
version_major => '8u101',
|
|
||||||
version_minor => 'b13',
|
|
||||||
java_se => 'jdk',
|
java_se => 'jdk',
|
||||||
|
url => 'http://myjava.repository/java.tgz",
|
||||||
basedir => '/custom/java',
|
basedir => '/custom/java',
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
To ensure that a custom basedir is a directory before Oracle Java is installed (note: manage separately for custom ownership or perms):
|
## AdoptOpenJDK
|
||||||
|
|
||||||
|
The defined type `java::adopt` installs one or more versions of AdoptOpenJDK Java. `java::adopt` depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive).
|
||||||
|
|
||||||
```puppet
|
```puppet
|
||||||
java::oracle { 'jdk8' :
|
java::adopt { 'jdk8' :
|
||||||
ensure => 'present',
|
ensure => 'present',
|
||||||
version_major => '8u101',
|
version => '8',
|
||||||
version_minor => 'b13',
|
java => 'jdk',
|
||||||
java_se => 'jdk',
|
}
|
||||||
|
|
||||||
|
java::adopt { 'jdk11' :
|
||||||
|
ensure => 'present',
|
||||||
|
version => '11',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To install a specific release of a AdoptOpenJDK Java version, e.g. 8u202-b08, provide both parameters `version_major` and `version_minor` as follows:
|
||||||
|
|
||||||
|
```puppet
|
||||||
|
java::adopt { 'jdk8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version_major => '8u202',
|
||||||
|
version_minor => 'b08',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To install AdoptOpenJDK Java to a non-default basedir (defaults: /usr/lib/jvm for Debian; /usr/java for RedHat):
|
||||||
|
```puppet
|
||||||
|
java::adopt { 'jdk8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version_major => '8u202',
|
||||||
|
version_minor => 'b08',
|
||||||
|
java => 'jdk',
|
||||||
|
basedir => '/custom/java',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To ensure that a custom basedir is a directory before AdoptOpenJDK Java is installed (note: manage separately for custom ownership or perms):
|
||||||
|
```puppet
|
||||||
|
java::adopt { 'jdk8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version_major => '8u202',
|
||||||
|
version_minor => 'b08',
|
||||||
|
java => 'jdk',
|
||||||
|
manage_basedir => true,
|
||||||
|
basedir => '/custom/java',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## SAP Java (sapjvm / sapmachine)
|
||||||
|
|
||||||
|
SAP also offers JVM distributions. They are mostly required for their SAP products. In earlier versions it is called "sapjvm", in newer versions they call it "sapmachine".
|
||||||
|
|
||||||
|
The defined type `java::sap` installs one or more versions of sapjvm (if version 7 or 8) or sapmachine (if version > 8) Java. `java::sap` depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive).
|
||||||
|
By using this defined type with versions 7 or 8 you agree with the EULA presented at https://tools.hana.ondemand.com/developer-license-3_1.txt!
|
||||||
|
|
||||||
|
```puppet
|
||||||
|
java::sap { 'sapjvm8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version => '8',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
|
||||||
|
java::sap { 'sapmachine11' :
|
||||||
|
ensure => 'present',
|
||||||
|
version => '11',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To install a specific release of a SAP Java version, e.g. sapjvm 8.1.063, provide parameter `version_full`:
|
||||||
|
|
||||||
|
```puppet
|
||||||
|
java::sap { 'jdk8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version_full => '8.1.063',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To install SAP Java to a non-default basedir (defaults: /usr/lib/jvm for Debian; /usr/java for RedHat):
|
||||||
|
```puppet
|
||||||
|
java::adopt { 'sapjvm8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version_full => '8.1.063',
|
||||||
|
java => 'jdk',
|
||||||
|
basedir => '/custom/java',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To ensure that a custom basedir is a directory before SAP Java is installed (note: manage separately for custom ownership or perms):
|
||||||
|
```puppet
|
||||||
|
java::adopt { 'sapjvm8' :
|
||||||
|
ensure => 'present',
|
||||||
|
version_full => '8.1.063',
|
||||||
|
java => 'jdk',
|
||||||
manage_basedir => true,
|
manage_basedir => true,
|
||||||
basedir => '/custom/java',
|
basedir => '/custom/java',
|
||||||
}
|
}
|
||||||
@@ -95,7 +161,7 @@ java::oracle { 'jdk8' :
|
|||||||
|
|
||||||
## Reference
|
## Reference
|
||||||
|
|
||||||
For information on the classes and types, see the [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-java/blob/master/REFERENCE.md). For information on the facts, see below.
|
For information on the classes and types, see the [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-java/blob/main/REFERENCE.md). For information on the facts, see below.
|
||||||
|
|
||||||
### Facts
|
### Facts
|
||||||
|
|
||||||
@@ -111,7 +177,7 @@ The java module includes a few facts to describe the version of Java installed o
|
|||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
For an extensive list of supported operating systems, see [metadata.json](https://github.com/puppetlabs/puppetlabs-java/blob/master/metadata.json)
|
For an extensive list of supported operating systems, see [metadata.json](https://github.com/puppetlabs/puppetlabs-java/blob/main/metadata.json)
|
||||||
|
|
||||||
This module cannot guarantee installation of Java versions that are not available on platform repositories.
|
This module cannot guarantee installation of Java versions that are not available on platform repositories.
|
||||||
|
|
||||||
@@ -128,7 +194,7 @@ OpenJDK is supported on:
|
|||||||
* Oracle Linux 6, 7
|
* Oracle Linux 6, 7
|
||||||
* Scientific Linux 6
|
* Scientific Linux 6
|
||||||
* Debian 8, 9
|
* Debian 8, 9
|
||||||
* Ubuntu 14.04, 16.04, 18.04
|
* Ubuntu 14.04, 16.04, 18.04, 20.04
|
||||||
* Solaris 11
|
* Solaris 11
|
||||||
* SLES 11, 12
|
* SLES 11, 12
|
||||||
|
|
||||||
@@ -142,6 +208,24 @@ Oracle Java is supported on:
|
|||||||
* CentOS 7
|
* CentOS 7
|
||||||
* Red Hat Enterprise Linux (RHEL) 7
|
* Red Hat Enterprise Linux (RHEL) 7
|
||||||
|
|
||||||
|
AdoptOpenJDK Java is supported on:
|
||||||
|
|
||||||
|
* CentOS
|
||||||
|
* Red Hat Enterprise Linux (RHEL)
|
||||||
|
* Amazon Linux
|
||||||
|
* Debian
|
||||||
|
|
||||||
|
SAP Java 7 and 8 (=sapjvm) are supported (by SAP) on:
|
||||||
|
|
||||||
|
* SLES 12, 15
|
||||||
|
* Oracle Linux 7, 8
|
||||||
|
* Red Hat Enterprise Linux (RHEL) 7, 8
|
||||||
|
|
||||||
|
(however installations on other distributions mostly also work well)
|
||||||
|
|
||||||
|
For SAP Java > 8 (=sapmachine) please refer to the OpenJDK list as it is based on OpenJDK and has no special requirements.
|
||||||
|
|
||||||
|
|
||||||
### Known issues
|
### Known issues
|
||||||
|
|
||||||
Where Oracle change the format of the URLs to different installer packages, the curl to fetch the package may fail with a HTTP/404 error. In this case, passing a full known good URL using the `url` parameter will allow the module to still be able to install specific versions of the JRE/JDK. Note the `version_major` and `version_minor` parameters must be passed and must match the version downloaded using the known URL in the `url` parameter.
|
Where Oracle change the format of the URLs to different installer packages, the curl to fetch the package may fail with a HTTP/404 error. In this case, passing a full known good URL using the `url` parameter will allow the module to still be able to install specific versions of the JRE/JDK. Note the `version_major` and `version_minor` parameters must be passed and must match the version downloaded using the known URL in the `url` parameter.
|
||||||
@@ -153,18 +237,6 @@ the binaries to a standard directory. Because of that, the path to this location
|
|||||||
is hardcoded in the `java_version` fact. Whenever you upgrade Java to a newer
|
is hardcoded in the `java_version` fact. Whenever you upgrade Java to a newer
|
||||||
version, you have to update the path in this fact.
|
version, you have to update the path in this fact.
|
||||||
|
|
||||||
#### FreeBSD
|
|
||||||
|
|
||||||
By default on FreeBSD, Puppet versions prior to 4.0 throw an error saying `pkgng` is not the default provider. To fix this, install the [zleslie/pkgng module](https://forge.puppetlabs.com/zleslie/pkgng) and set it as the default package provider:
|
|
||||||
|
|
||||||
```puppet
|
|
||||||
Package {
|
|
||||||
provider => 'pkgng',
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
On Puppet 4.0 and later, `pkgng` is included within Puppet and is the default package provider.
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
Puppet modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. To contribute to Puppet projects, see our [module contribution guide.](https://docs.puppetlabs.com/forge/contributing.html)
|
Puppet modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. To contribute to Puppet projects, see our [module contribution guide.](https://docs.puppetlabs.com/forge/contributing.html)
|
||||||
422
REFERENCE.md
422
REFERENCE.md
@@ -1,37 +1,47 @@
|
|||||||
# Reference
|
# Reference
|
||||||
|
|
||||||
<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
|
<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
**Classes**
|
### Classes
|
||||||
|
|
||||||
_Public Classes_
|
#### Public Classes
|
||||||
|
|
||||||
* [`java`](#java): This module manages the Java runtime package
|
* [`java`](#java): This module manages the Java runtime package
|
||||||
|
|
||||||
_Private Classes_
|
#### Private Classes
|
||||||
|
|
||||||
* `java::config`:
|
* `java::config`
|
||||||
* `java::params`: This class builds a hash of JDK/JRE packages and (for Debian)
|
* `java::params`: This class builds a hash of JDK/JRE packages and (for Debian)
|
||||||
alternatives. For wheezy/precise, we provide Oracle JDK/JRE
|
alternatives. For wheezy/precise, we provide Oracle JDK/JRE
|
||||||
options, even though those are not in the package repositories.
|
options, even though those are not in the package repositories.
|
||||||
|
|
||||||
**Defined types**
|
### Defined types
|
||||||
|
|
||||||
* [`java::oracle`](#javaoracle): Installs Oracle Java. By using this module you agree to the Oracle licensing
|
* [`java::adopt`](#javaadopt): Install one or more versions of AdoptOpenJDK Java.
|
||||||
agreement.
|
* [`java::download`](#javadownload): Installs Java from a url location.
|
||||||
|
* [`java::sap`](#javasap): Install one or more versions of SAPJVM or Sapmachine
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### java
|
### <a name="java"></a>`java`
|
||||||
|
|
||||||
This module manages the Java runtime package
|
This module manages the Java runtime package
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
The following parameters are available in the `java` class.
|
The following parameters are available in the `java` class:
|
||||||
|
|
||||||
##### `distribution`
|
* [`distribution`](#distribution)
|
||||||
|
* [`version`](#version)
|
||||||
|
* [`package`](#package)
|
||||||
|
* [`package_options`](#package_options)
|
||||||
|
* [`java_alternative`](#java_alternative)
|
||||||
|
* [`java_alternative_path`](#java_alternative_path)
|
||||||
|
* [`java_home`](#java_home)
|
||||||
|
|
||||||
|
##### <a name="distribution"></a>`distribution`
|
||||||
|
|
||||||
Data type: `String`
|
Data type: `String`
|
||||||
|
|
||||||
@@ -39,36 +49,36 @@ The java distribution to install. Can be one of "jdk" or "jre",
|
|||||||
or other platform-specific options where there are multiple
|
or other platform-specific options where there are multiple
|
||||||
implementations available (eg: OpenJDK vs Oracle JDK).
|
implementations available (eg: OpenJDK vs Oracle JDK).
|
||||||
|
|
||||||
Default value: 'jdk'
|
Default value: `'jdk'`
|
||||||
|
|
||||||
##### `version`
|
##### <a name="version"></a>`version`
|
||||||
|
|
||||||
Data type: `Pattern[/present|installed|latest|^[.+_0-9a-zA-Z:~-]+$/]`
|
Data type: `Pattern[/present|installed|latest|^[.+_0-9a-zA-Z:~-]+$/]`
|
||||||
|
|
||||||
The version of java to install. By default, this module simply ensures
|
The version of java to install. By default, this module simply ensures
|
||||||
that java is present, and does not require a specific version.
|
that java is present, and does not require a specific version.
|
||||||
|
|
||||||
Default value: 'present'
|
Default value: `'present'`
|
||||||
|
|
||||||
##### `package`
|
##### <a name="package"></a>`package`
|
||||||
|
|
||||||
Data type: `Optional[String]`
|
Data type: `Optional[String]`
|
||||||
|
|
||||||
The name of the java package. This is configurable in case a non-standard
|
The name of the java package. This is configurable in case a non-standard
|
||||||
java package is desired.
|
java package is desired.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `package_options`
|
##### <a name="package_options"></a>`package_options`
|
||||||
|
|
||||||
Data type: `Optional[Array]`
|
Data type: `Optional[Array]`
|
||||||
|
|
||||||
Array of strings to pass installation options to the 'package' Puppet resource.
|
Array of strings to pass installation options to the 'package' Puppet resource.
|
||||||
Options available depend on the 'package' provider for the target OS.
|
Options available depend on the 'package' provider for the target OS.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `java_alternative`
|
##### <a name="java_alternative"></a>`java_alternative`
|
||||||
|
|
||||||
Data type: `Optional[String]`
|
Data type: `Optional[String]`
|
||||||
|
|
||||||
@@ -78,9 +88,9 @@ If you specify a particular package, you will almost always also
|
|||||||
want to specify which java_alternative to choose. If you set
|
want to specify which java_alternative to choose. If you set
|
||||||
this, you also need to set the path below.
|
this, you also need to set the path below.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `java_alternative_path`
|
##### <a name="java_alternative_path"></a>`java_alternative_path`
|
||||||
|
|
||||||
Data type: `Optional[String]`
|
Data type: `Optional[String]`
|
||||||
|
|
||||||
@@ -89,147 +99,124 @@ alternatives system makes it difficult to verify which
|
|||||||
alternative is actually enabled, this is required to ensure the
|
alternative is actually enabled, this is required to ensure the
|
||||||
correct JVM is enabled.
|
correct JVM is enabled.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `java_home`
|
##### <a name="java_home"></a>`java_home`
|
||||||
|
|
||||||
Data type: `Optional[String]`
|
Data type: `Optional[String]`
|
||||||
|
|
||||||
The path to where the JRE is installed. This will be set as an
|
The path to where the JRE is installed. This will be set as an
|
||||||
environment variable.
|
environment variable.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
## Defined types
|
## Defined types
|
||||||
|
|
||||||
### java::oracle
|
### <a name="javaadopt"></a>`java::adopt`
|
||||||
|
|
||||||
Defined Type java::oracle
|
Defined Type java::adopt
|
||||||
|
|
||||||
Install one or more versions of Oracle Java.
|
|
||||||
|
|
||||||
Uses the following to download the package and automatically accept
|
|
||||||
the licensing terms:
|
|
||||||
```
|
|
||||||
wget --no-cookies --no-check-certificate --header \
|
|
||||||
"Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" \
|
|
||||||
"http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
The following parameters are available in the `java::oracle` defined type.
|
The following parameters are available in the `java::adopt` defined type:
|
||||||
|
|
||||||
##### `ensure`
|
* [`ensure`](#ensure)
|
||||||
|
* [`version`](#version)
|
||||||
|
* [`version_major`](#version_major)
|
||||||
|
* [`version_minor`](#version_minor)
|
||||||
|
* [`java`](#java)
|
||||||
|
* [`proxy_server`](#proxy_server)
|
||||||
|
* [`proxy_type`](#proxy_type)
|
||||||
|
* [`url`](#url)
|
||||||
|
* [`basedir`](#basedir)
|
||||||
|
* [`manage_basedir`](#manage_basedir)
|
||||||
|
* [`package_type`](#package_type)
|
||||||
|
* [`manage_symlink`](#manage_symlink)
|
||||||
|
* [`symlink_name`](#symlink_name)
|
||||||
|
|
||||||
|
##### <a name="ensure"></a>`ensure`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Install or remove the package.
|
Install or remove the package.
|
||||||
|
|
||||||
Default value: 'present'
|
Default value: `'present'`
|
||||||
|
|
||||||
##### `version`
|
##### <a name="version"></a>`version`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Version of Java to install, e.g. '7' or '8'. Default values for major and minor versions will be used.
|
Version of Java to install, e.g. '8' or '9'. Default values for major and minor versions will be used.
|
||||||
|
|
||||||
Default value: '8'
|
Default value: `'8'`
|
||||||
|
|
||||||
##### `version_major`
|
##### <a name="version_major"></a>`version_major`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Major version which should be installed, e.g. '8u101'. Must be used together with version_minor.
|
Major version which should be installed, e.g. '8u101' or '9.0.4'. Must be used together with version_minor.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `version_minor`
|
##### <a name="version_minor"></a>`version_minor`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Minor version which should be installed, e.g. 'b12'. Must be used together with version_major.
|
Minor version which should be installed, e.g. 'b12' (for version = '8') or '11' (for version != '8'). Must be used together with version_major.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `java_se`
|
##### <a name="java"></a>`java`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Type of Java Standard Edition to install, jdk or jre.
|
Type of Java Standard Edition to install, jdk or jre.
|
||||||
|
|
||||||
Default value: 'jdk'
|
Default value: `'jdk'`
|
||||||
|
|
||||||
##### `oracle_url`
|
##### <a name="proxy_server"></a>`proxy_server`
|
||||||
|
|
||||||
Data type: `Any`
|
|
||||||
|
|
||||||
Official Oracle URL to download binaries from.
|
|
||||||
|
|
||||||
Default value: 'http://download.oracle.com/otn-pub/java/jdk/'
|
|
||||||
|
|
||||||
##### `proxy_server`
|
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `proxy_type`
|
##### <a name="proxy_type"></a>`proxy_type`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Proxy server type (none|http|https|ftp). (passed to archive)
|
Proxy server type (none|http|https|ftp). (passed to archive)
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `url`
|
##### <a name="url"></a>`url`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Full URL, including oracle_url, release_major, release_minor and package_name, to
|
Full URL
|
||||||
download the Oracle java_se installer. Originally present but not used, activated
|
|
||||||
to workaround MODULES-5058.
|
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `url_hash`
|
##### <a name="basedir"></a>`basedir`
|
||||||
|
|
||||||
Data type: `Any`
|
|
||||||
|
|
||||||
Directory hash used by the download.oracle.com site. This value is a 32 character string
|
|
||||||
which is part of the file URL returned by the JDK download site.
|
|
||||||
|
|
||||||
Default value: `undef`
|
|
||||||
|
|
||||||
##### `jce`
|
|
||||||
|
|
||||||
Data type: `Any`
|
|
||||||
|
|
||||||
Install Oracles Java Cryptographic Extensions into the JRE or JDK
|
|
||||||
|
|
||||||
Default value: `false`
|
|
||||||
|
|
||||||
##### `basedir`
|
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Directory under which the installation will occur. If not set, defaults to
|
Directory under which the installation will occur. If not set, defaults to
|
||||||
/usr/lib/jvm for Debian and /usr/java for RedHat.
|
/usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `manage_basedir`
|
##### <a name="manage_basedir"></a>`manage_basedir`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Whether to manage the basedir directory. Defaults to false.
|
Whether to manage the basedir directory. Defaults to false.
|
||||||
Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||||
|
|
||||||
Default value: `false`
|
Default value: ``true``
|
||||||
|
|
||||||
##### `package_type`
|
##### <a name="package_type"></a>`package_type`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
@@ -237,21 +224,270 @@ Type of installation package for specified version of java_se. java_se 6 comes
|
|||||||
in a few installation package flavors and we need to account for them.
|
in a few installation package flavors and we need to account for them.
|
||||||
Optional forced package types: rpm, rpmbin, tar.gz
|
Optional forced package types: rpm, rpmbin, tar.gz
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
##### `manage_symlink`
|
##### <a name="manage_symlink"></a>`manage_symlink`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
Whether to manage a symlink that points to the installation directory. Defaults to false.
|
Whether to manage a symlink that points to the installation directory. Defaults to false.
|
||||||
|
|
||||||
Default value: `false`
|
Default value: ``false``
|
||||||
|
|
||||||
##### `symlink_name`
|
##### <a name="symlink_name"></a>`symlink_name`
|
||||||
|
|
||||||
Data type: `Any`
|
Data type: `Any`
|
||||||
|
|
||||||
The name for the optional symlink in the installation directory.
|
The name for the optional symlink in the installation directory.
|
||||||
|
|
||||||
Default value: `undef`
|
Default value: ``undef``
|
||||||
|
|
||||||
|
### <a name="javadownload"></a>`java::download`
|
||||||
|
|
||||||
|
Defined Type java::download
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
The following parameters are available in the `java::download` defined type:
|
||||||
|
|
||||||
|
* [`ensure`](#ensure)
|
||||||
|
* [`version`](#version)
|
||||||
|
* [`version_major`](#version_major)
|
||||||
|
* [`version_minor`](#version_minor)
|
||||||
|
* [`java_se`](#java_se)
|
||||||
|
* [`proxy_server`](#proxy_server)
|
||||||
|
* [`proxy_type`](#proxy_type)
|
||||||
|
* [`url`](#url)
|
||||||
|
* [`jce`](#jce)
|
||||||
|
* [`jce_url`](#jce_url)
|
||||||
|
* [`basedir`](#basedir)
|
||||||
|
* [`manage_basedir`](#manage_basedir)
|
||||||
|
* [`package_type`](#package_type)
|
||||||
|
* [`manage_symlink`](#manage_symlink)
|
||||||
|
* [`symlink_name`](#symlink_name)
|
||||||
|
|
||||||
|
##### <a name="ensure"></a>`ensure`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Install or remove the package.
|
||||||
|
|
||||||
|
Default value: `'present'`
|
||||||
|
|
||||||
|
##### <a name="version"></a>`version`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Version of Java to install, e.g. '7' or '8'. Default values for major and minor versions will be used.
|
||||||
|
|
||||||
|
Default value: `'8'`
|
||||||
|
|
||||||
|
##### <a name="version_major"></a>`version_major`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Major version which should be installed, e.g. '8u101'. Must be used together with version_minor.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="version_minor"></a>`version_minor`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Minor version which should be installed, e.g. 'b12'. Must be used together with version_major.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="java_se"></a>`java_se`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Type of Java Standard Edition to install, jdk or jre.
|
||||||
|
|
||||||
|
Default value: `'jdk'`
|
||||||
|
|
||||||
|
##### <a name="proxy_server"></a>`proxy_server`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="proxy_type"></a>`proxy_type`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Proxy server type (none|http|https|ftp). (passed to archive)
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="url"></a>`url`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Full URL
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="jce"></a>`jce`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Install Oracles Java Cryptographic Extensions into the JRE or JDK
|
||||||
|
|
||||||
|
Default value: ``false``
|
||||||
|
|
||||||
|
##### <a name="jce_url"></a>`jce_url`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Full URL to the jce zip file
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="basedir"></a>`basedir`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Directory under which the installation will occur. If not set, defaults to
|
||||||
|
/usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="manage_basedir"></a>`manage_basedir`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Whether to manage the basedir directory. Defaults to false.
|
||||||
|
Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||||
|
|
||||||
|
Default value: ``false``
|
||||||
|
|
||||||
|
##### <a name="package_type"></a>`package_type`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Type of installation package for specified version of java_se. java_se 6 comes
|
||||||
|
in a few installation package flavors and we need to account for them.
|
||||||
|
Optional forced package types: rpm, rpmbin, tar.gz
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="manage_symlink"></a>`manage_symlink`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Whether to manage a symlink that points to the installation directory. Defaults to false.
|
||||||
|
|
||||||
|
Default value: ``false``
|
||||||
|
|
||||||
|
##### <a name="symlink_name"></a>`symlink_name`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
The name for the optional symlink in the installation directory.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
### <a name="javasap"></a>`java::sap`
|
||||||
|
|
||||||
|
Defined Type java::sap
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
The following parameters are available in the `java::sap` defined type:
|
||||||
|
|
||||||
|
* [`ensure`](#ensure)
|
||||||
|
* [`version`](#version)
|
||||||
|
* [`version_full`](#version_full)
|
||||||
|
* [`java`](#java)
|
||||||
|
* [`proxy_server`](#proxy_server)
|
||||||
|
* [`proxy_type`](#proxy_type)
|
||||||
|
* [`basedir`](#basedir)
|
||||||
|
* [`manage_basedir`](#manage_basedir)
|
||||||
|
* [`manage_symlink`](#manage_symlink)
|
||||||
|
* [`symlink_name`](#symlink_name)
|
||||||
|
|
||||||
|
##### <a name="ensure"></a>`ensure`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Install or remove the package.
|
||||||
|
|
||||||
|
Default value: `'present'`
|
||||||
|
|
||||||
|
##### <a name="version"></a>`version`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Version of Java to install, e.g. '8' or '9'. Default values for full versions will be used.
|
||||||
|
|
||||||
|
Default value: `'8'`
|
||||||
|
|
||||||
|
##### <a name="version_full"></a>`version_full`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Major version which should be installed, e.g. '8.1.063' or '11.0.7'. If used, "version" parameter is ignored.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="java"></a>`java`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Type of Java Edition to install, jdk or jre.
|
||||||
|
|
||||||
|
Default value: `'jdk'`
|
||||||
|
|
||||||
|
##### <a name="proxy_server"></a>`proxy_server`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="proxy_type"></a>`proxy_type`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Proxy server type (none|http|https|ftp). (passed to archive)
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="basedir"></a>`basedir`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Directory under which the installation will occur. If not set, defaults to
|
||||||
|
/usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
##### <a name="manage_basedir"></a>`manage_basedir`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Whether to manage the basedir directory. Defaults to false.
|
||||||
|
Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||||
|
|
||||||
|
Default value: ``true``
|
||||||
|
|
||||||
|
##### <a name="manage_symlink"></a>`manage_symlink`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
Whether to manage a symlink that points to the installation directory. Defaults to false.
|
||||||
|
|
||||||
|
Default value: ``false``
|
||||||
|
|
||||||
|
##### <a name="symlink_name"></a>`symlink_name`
|
||||||
|
|
||||||
|
Data type: `Any`
|
||||||
|
|
||||||
|
The name for the optional symlink in the installation directory.
|
||||||
|
|
||||||
|
Default value: ``undef``
|
||||||
|
|
||||||
|
|||||||
30
Rakefile
30
Rakefile
@@ -1,3 +1,7 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'bundler'
|
||||||
|
require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any?
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
require 'puppet-syntax/tasks/puppet-syntax'
|
require 'puppet-syntax/tasks/puppet-syntax'
|
||||||
require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any?
|
require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any?
|
||||||
@@ -14,8 +18,17 @@ end
|
|||||||
|
|
||||||
def changelog_project
|
def changelog_project
|
||||||
return unless Rake.application.top_level_tasks.include? "changelog"
|
return unless Rake.application.top_level_tasks.include? "changelog"
|
||||||
returnVal = nil || JSON.load(File.read('metadata.json'))['name']
|
|
||||||
raise "unable to find the changelog_project in .sync.yml or the name in metadata.json" if returnVal.nil?
|
returnVal = nil
|
||||||
|
returnVal ||= begin
|
||||||
|
metadata_source = JSON.load(File.read('metadata.json'))['source']
|
||||||
|
metadata_source_match = metadata_source && metadata_source.match(%r{.*\/([^\/]*?)(?:\.git)?\Z})
|
||||||
|
|
||||||
|
metadata_source_match && metadata_source_match[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
raise "unable to find the changelog_project in .sync.yml or calculate it from the source in metadata.json" if returnVal.nil?
|
||||||
|
|
||||||
puts "GitHubChangelogGenerator project:#{returnVal}"
|
puts "GitHubChangelogGenerator project:#{returnVal}"
|
||||||
returnVal
|
returnVal
|
||||||
end
|
end
|
||||||
@@ -40,7 +53,7 @@ if Bundler.rubygems.find_name('github_changelog_generator').any?
|
|||||||
config.header = "# Change log\n\nAll 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)."
|
config.header = "# Change log\n\nAll 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)."
|
||||||
config.add_pr_wo_labels = true
|
config.add_pr_wo_labels = true
|
||||||
config.issues = false
|
config.issues = false
|
||||||
config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM"
|
config.merge_prefix = "### UNCATEGORIZED PRS; LABEL THEM ON GITHUB"
|
||||||
config.configure_sections = {
|
config.configure_sections = {
|
||||||
"Changed" => {
|
"Changed" => {
|
||||||
"prefix" => "### Changed",
|
"prefix" => "### Changed",
|
||||||
@@ -48,11 +61,11 @@ if Bundler.rubygems.find_name('github_changelog_generator').any?
|
|||||||
},
|
},
|
||||||
"Added" => {
|
"Added" => {
|
||||||
"prefix" => "### Added",
|
"prefix" => "### Added",
|
||||||
"labels" => ["feature", "enhancement"],
|
"labels" => ["enhancement", "feature"],
|
||||||
},
|
},
|
||||||
"Fixed" => {
|
"Fixed" => {
|
||||||
"prefix" => "### Fixed",
|
"prefix" => "### Fixed",
|
||||||
"labels" => ["bugfix"],
|
"labels" => ["bug", "documentation", "bugfix"],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@@ -60,16 +73,15 @@ else
|
|||||||
desc 'Generate a Changelog from GitHub'
|
desc 'Generate a Changelog from GitHub'
|
||||||
task :changelog do
|
task :changelog do
|
||||||
raise <<EOM
|
raise <<EOM
|
||||||
The changelog tasks depends on unreleased features of the github_changelog_generator gem.
|
The changelog tasks depends on recent features of the github_changelog_generator gem.
|
||||||
Please manually add it to your .sync.yml for now, and run `pdk update`:
|
Please manually add it to your .sync.yml for now, and run `pdk update`:
|
||||||
---
|
---
|
||||||
Gemfile:
|
Gemfile:
|
||||||
optional:
|
optional:
|
||||||
':development':
|
':development':
|
||||||
- gem: 'github_changelog_generator'
|
- gem: 'github_changelog_generator'
|
||||||
git: 'https://github.com/skywinder/github-changelog-generator'
|
version: '~> 1.15'
|
||||||
ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
|
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.3.0')"
|
||||||
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
|
|
||||||
EOM
|
EOM
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
1
data/common.yaml
Normal file
1
data/common.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
--- {}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
class { 'java':
|
class { 'java':
|
||||||
package => 'jdk-8u25-linux-x64',
|
package => 'jdk-8u25-linux-x64',
|
||||||
java_alternative => 'jdk1.8.0_25',
|
java_alternative => 'jdk1.8.0_25',
|
||||||
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'
|
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java',
|
||||||
}
|
}
|
||||||
|
|||||||
21
hiera.yaml
Normal file
21
hiera.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
version: 5
|
||||||
|
|
||||||
|
defaults: # Used for any hierarchy level that omits these keys.
|
||||||
|
datadir: data # This path is relative to hiera.yaml's directory.
|
||||||
|
data_hash: yaml_data # Use the built-in YAML backend.
|
||||||
|
|
||||||
|
hierarchy:
|
||||||
|
- name: "osfamily/major release"
|
||||||
|
paths:
|
||||||
|
# Used to distinguish between Debian and Ubuntu
|
||||||
|
- "os/%{facts.os.name}/%{facts.os.release.major}.yaml"
|
||||||
|
- "os/%{facts.os.family}/%{facts.os.release.major}.yaml"
|
||||||
|
# Used for Solaris
|
||||||
|
- "os/%{facts.os.family}/%{facts.kernelrelease}.yaml"
|
||||||
|
- name: "osfamily"
|
||||||
|
paths:
|
||||||
|
- "os/%{facts.os.name}.yaml"
|
||||||
|
- "os/%{facts.os.family}.yaml"
|
||||||
|
- name: 'common'
|
||||||
|
path: 'common.yaml'
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# Fact: java_default_home
|
# Fact: java_default_home
|
||||||
#
|
#
|
||||||
# Purpose: get absolute path of java system home
|
# Purpose: get absolute path of java system home
|
||||||
@@ -19,7 +21,7 @@ Facter.add(:java_default_home) do
|
|||||||
nil
|
nil
|
||||||
else
|
else
|
||||||
java_path = File.realpath(java_bin)
|
java_path = File.realpath(java_bin)
|
||||||
java_default_home = if java_path =~ %r{/jre/}
|
java_default_home = if %r{/jre/}.match?(java_path)
|
||||||
File.dirname(File.dirname(File.dirname(java_path)))
|
File.dirname(File.dirname(File.dirname(java_path)))
|
||||||
else
|
else
|
||||||
File.dirname(File.dirname(java_path))
|
File.dirname(File.dirname(java_path))
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# Fact: java_libjvm_path
|
# Fact: java_libjvm_path
|
||||||
#
|
#
|
||||||
# Purpose: get path to libjvm.so
|
# Purpose: get path to libjvm.so
|
||||||
@@ -7,6 +9,7 @@
|
|||||||
#
|
#
|
||||||
# Caveats:
|
# Caveats:
|
||||||
# Needs to list files recursively. Returns the first match
|
# Needs to list files recursively. Returns the first match
|
||||||
|
# Needs working java_major_version fact
|
||||||
#
|
#
|
||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
@@ -14,11 +17,18 @@ Facter.add(:java_libjvm_path) do
|
|||||||
confine kernel: ['Linux', 'OpenBSD']
|
confine kernel: ['Linux', 'OpenBSD']
|
||||||
setcode do
|
setcode do
|
||||||
java_default_home = Facter.value(:java_default_home)
|
java_default_home = Facter.value(:java_default_home)
|
||||||
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
java_major_version = Facter.value(:java_major_version)
|
||||||
if java_libjvm_file.nil? || java_libjvm_file.empty?
|
unless java_major_version.nil?
|
||||||
nil
|
java_libjvm_file = if java_major_version.to_i >= 11
|
||||||
else
|
Dir.glob("#{java_default_home}/lib/**/libjvm.so")
|
||||||
File.dirname(java_libjvm_file[0])
|
else
|
||||||
|
Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
||||||
|
end
|
||||||
|
if java_libjvm_file.nil? || java_libjvm_file.empty?
|
||||||
|
nil
|
||||||
|
else
|
||||||
|
File.dirname(java_libjvm_file[0])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# Fact: java_major_version
|
# Fact: java_major_version
|
||||||
#
|
#
|
||||||
# Purpose: get Java's major version
|
# Purpose: get Java's major version
|
||||||
@@ -16,7 +18,13 @@ Facter.add(:java_major_version) do
|
|||||||
java_major_version = nil
|
java_major_version = nil
|
||||||
setcode do
|
setcode do
|
||||||
java_version = Facter.value(:java_version)
|
java_version = Facter.value(:java_version)
|
||||||
java_major_version = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil?
|
unless java_version.nil?
|
||||||
|
java_major_version = if java_version.strip[0..1] == '1.'
|
||||||
|
java_version.strip.split('_')[0].split('.')[1]
|
||||||
|
else
|
||||||
|
java_version.strip.split('.')[0]
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
java_major_version
|
java_major_version
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# Fact: java_patch_level
|
# Fact: java_patch_level
|
||||||
#
|
#
|
||||||
# Purpose: get Java's patch level
|
# Purpose: get Java's patch level
|
||||||
#
|
#
|
||||||
# Resolution:
|
# Resolution:
|
||||||
# Uses java_version fact splits on the patch number (after _)
|
# Uses java_version fact splits on the patch number (after _ for 1.x and patch number for semver'ed javas)
|
||||||
#
|
#
|
||||||
# Caveats:
|
# Caveats:
|
||||||
# none
|
# none
|
||||||
@@ -14,7 +16,13 @@ Facter.add(:java_patch_level) do
|
|||||||
java_patch_level = nil
|
java_patch_level = nil
|
||||||
setcode do
|
setcode do
|
||||||
java_version = Facter.value(:java_version)
|
java_version = Facter.value(:java_version)
|
||||||
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
unless java_version.nil?
|
||||||
|
if java_version.strip[0..1] == '1.'
|
||||||
|
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
|
||||||
|
else
|
||||||
|
java_patch_level = java_version.strip.split('.')[2] unless java_version.nil?
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
java_patch_level
|
java_patch_level
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# Fact: java_version
|
# Fact: java_version
|
||||||
#
|
#
|
||||||
# Purpose: get full java version string
|
# Purpose: get full java version string
|
||||||
#
|
#
|
||||||
# Resolution:
|
# Resolution:
|
||||||
# Tests for presence of java, returns nil if not present
|
# Tests for presence of java, returns nil if not present
|
||||||
# returns output of "java -version" and splits on \n + '"'
|
# returns output of "java -version" and splits on '"'
|
||||||
#
|
#
|
||||||
# Caveats:
|
# Caveats:
|
||||||
# none
|
# none
|
||||||
@@ -21,10 +23,10 @@ Facter.add(:java_version) do
|
|||||||
# Additionally, facter versions prior to 2.0.1 only support
|
# Additionally, facter versions prior to 2.0.1 only support
|
||||||
# positive matches, so this needs to be done manually in setcode.
|
# positive matches, so this needs to be done manually in setcode.
|
||||||
setcode do
|
setcode do
|
||||||
unless ['darwin'].include? Facter.value(:operatingsystem).downcase
|
unless ['darwin'].include? Facter.value(:kernel).downcase
|
||||||
version = nil
|
version = nil
|
||||||
if Facter::Util::Resolution.which('java')
|
if Facter::Util::Resolution.which('java')
|
||||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
|
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
|
||||||
end
|
end
|
||||||
version
|
version
|
||||||
end
|
end
|
||||||
@@ -32,12 +34,12 @@ Facter.add(:java_version) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
Facter.add(:java_version) do
|
Facter.add(:java_version) do
|
||||||
confine operatingsystem: 'Darwin'
|
confine kernel: 'Darwin'
|
||||||
has_weight 100
|
has_weight 100
|
||||||
setcode do
|
setcode do
|
||||||
unless %r{Unable to find any JVMs matching version} =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
|
unless Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1').include?('Unable to find any JVMs matching version')
|
||||||
version = nil
|
version = nil
|
||||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $LAST_MATCH_INFO[1] if %r{^.+ version \"(.+)\"$} =~ line }
|
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
|
||||||
version
|
version
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
---
|
|
||||||
# This is the project-specific configuration file for setting up
|
|
||||||
# fast_gettext for your project.
|
|
||||||
gettext:
|
|
||||||
# This is used for the name of the .pot and .po files; they will be
|
|
||||||
# called <project_name>.pot?
|
|
||||||
project_name: puppetlabs-java
|
|
||||||
# This is used in comments in the .pot and .po files to indicate what
|
|
||||||
# project the files belong to and should bea little more desctiptive than
|
|
||||||
# <project_name>
|
|
||||||
package_name: puppetlabs-java
|
|
||||||
# The locale that the default messages in the .pot file are in
|
|
||||||
default_locale: en
|
|
||||||
# The email used for sending bug reports.
|
|
||||||
bugs_address: docs@puppet.com
|
|
||||||
# The holder of the copyright.
|
|
||||||
copyright_holder: Puppet, Inc.
|
|
||||||
# This determines which comments in code should be eligible for translation.
|
|
||||||
# Any comments that start with this string will be externalized. (Leave
|
|
||||||
# empty to include all.)
|
|
||||||
comments_tag: TRANSLATOR
|
|
||||||
# Patterns for +Dir.glob+ used to find all files that might contain
|
|
||||||
# translatable content, relative to the project root directory
|
|
||||||
source_files:
|
|
||||||
- './lib/**/*.rb'
|
|
||||||
|
|
||||||
324
manifests/adopt.pp
Normal file
324
manifests/adopt.pp
Normal file
@@ -0,0 +1,324 @@
|
|||||||
|
# Defined Type java::adopt
|
||||||
|
#
|
||||||
|
# @summary
|
||||||
|
# Install one or more versions of AdoptOpenJDK Java.
|
||||||
|
#
|
||||||
|
# @param ensure
|
||||||
|
# Install or remove the package.
|
||||||
|
#
|
||||||
|
# @param version
|
||||||
|
# Version of Java to install, e.g. '8' or '9'. Default values for major and minor versions will be used.
|
||||||
|
#
|
||||||
|
# @param version_major
|
||||||
|
# Major version which should be installed, e.g. '8u101' or '9.0.4'. Must be used together with version_minor.
|
||||||
|
#
|
||||||
|
# @param version_minor
|
||||||
|
# Minor version which should be installed, e.g. 'b12' (for version = '8') or '11' (for version != '8'). Must be used together with version_major.
|
||||||
|
#
|
||||||
|
# @param java
|
||||||
|
# Type of Java Standard Edition to install, jdk or jre.
|
||||||
|
#
|
||||||
|
# @param proxy_server
|
||||||
|
# Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||||
|
#
|
||||||
|
# @param proxy_type
|
||||||
|
# Proxy server type (none|http|https|ftp). (passed to archive)
|
||||||
|
#
|
||||||
|
# @param url
|
||||||
|
# Full URL
|
||||||
|
#
|
||||||
|
# @param basedir
|
||||||
|
# Directory under which the installation will occur. If not set, defaults to
|
||||||
|
# /usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||||
|
#
|
||||||
|
# @param manage_basedir
|
||||||
|
# Whether to manage the basedir directory. Defaults to false.
|
||||||
|
# Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||||
|
#
|
||||||
|
# @param package_type
|
||||||
|
# Type of installation package for specified version of java_se. java_se 6 comes
|
||||||
|
# in a few installation package flavors and we need to account for them.
|
||||||
|
# Optional forced package types: rpm, rpmbin, tar.gz
|
||||||
|
#
|
||||||
|
# @param manage_symlink
|
||||||
|
# Whether to manage a symlink that points to the installation directory. Defaults to false.
|
||||||
|
#
|
||||||
|
# @param symlink_name
|
||||||
|
# The name for the optional symlink in the installation directory.
|
||||||
|
#
|
||||||
|
define java::adopt (
|
||||||
|
$ensure = 'present',
|
||||||
|
$version = '8',
|
||||||
|
$version_major = undef,
|
||||||
|
$version_minor = undef,
|
||||||
|
$java = 'jdk',
|
||||||
|
$proxy_server = undef,
|
||||||
|
$proxy_type = undef,
|
||||||
|
$url = undef,
|
||||||
|
$basedir = undef,
|
||||||
|
$manage_basedir = true,
|
||||||
|
$package_type = undef,
|
||||||
|
$manage_symlink = false,
|
||||||
|
$symlink_name = undef,
|
||||||
|
) {
|
||||||
|
|
||||||
|
# archive module is used to download the java package
|
||||||
|
include ::archive
|
||||||
|
|
||||||
|
# validate java Standard Edition to download
|
||||||
|
if $java !~ /(jre|jdk)/ {
|
||||||
|
fail('java must be either jre or jdk.')
|
||||||
|
}
|
||||||
|
|
||||||
|
# determine AdoptOpenJDK Java major and minor version, and installation path
|
||||||
|
if $version_major and $version_minor {
|
||||||
|
|
||||||
|
$release_major = $version_major
|
||||||
|
$release_minor = $version_minor
|
||||||
|
|
||||||
|
if ( $version_major[0] == '8' or $version_major[0] == '9' ) {
|
||||||
|
$_version = $version_major[0]
|
||||||
|
} else {
|
||||||
|
$_version = $version_major[0,2]
|
||||||
|
}
|
||||||
|
|
||||||
|
$_version_int = Numeric($_version)
|
||||||
|
|
||||||
|
if ( $java == 'jre' ) {
|
||||||
|
$_append_jre = '-jre'
|
||||||
|
} else {
|
||||||
|
$_append_jre = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
# extracted folders look like this:
|
||||||
|
# jdk8u202-b08
|
||||||
|
# jdk-9.0.4+11
|
||||||
|
# jdk-10.0.2+13
|
||||||
|
# jdk-11.0.2+9
|
||||||
|
# jdk-12.0.1+12
|
||||||
|
# jdk8u202-b08-jre
|
||||||
|
# jdk-9.0.4+11-jre
|
||||||
|
# hence we need to check for the major version and build the install path according to it
|
||||||
|
if ( $_version_int == 8 ) {
|
||||||
|
$install_path = "jdk${release_major}-${release_minor}${_append_jre}"
|
||||||
|
} elsif ( $_version_int > 8 ) {
|
||||||
|
$install_path = "jdk-${release_major}+${release_minor}${_append_jre}"
|
||||||
|
} else {
|
||||||
|
fail ("unsupported version ${_version}")
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$_version = $version
|
||||||
|
$_version_int = Numeric($_version)
|
||||||
|
# use default versions if no specific major and minor version parameters are provided
|
||||||
|
case $version {
|
||||||
|
'8' : {
|
||||||
|
$release_major = '8u202'
|
||||||
|
$release_minor = 'b08'
|
||||||
|
$install_path = "${java}8u202-b08"
|
||||||
|
}
|
||||||
|
'9' : {
|
||||||
|
$release_major = '9.0.4'
|
||||||
|
$release_minor = '11'
|
||||||
|
$install_path = "${java}-9.0.4+11"
|
||||||
|
}
|
||||||
|
# minor release is given with +<number>, however package etc. works with underscore, so we use underscore here
|
||||||
|
'10' : {
|
||||||
|
$release_major = '10.0.2'
|
||||||
|
$release_minor = '13'
|
||||||
|
$install_path = "${java}-10.0.2+13"
|
||||||
|
}
|
||||||
|
'11' : {
|
||||||
|
$release_major = '11.0.2'
|
||||||
|
$release_minor = '9'
|
||||||
|
$install_path = "${java}-11.0.2+9"
|
||||||
|
}
|
||||||
|
# minor release is given with +<number>, however package etc. works with underscore, so we use underscore here
|
||||||
|
'12' : {
|
||||||
|
$release_major = '12.0.1'
|
||||||
|
$release_minor = '12'
|
||||||
|
$install_path = "${java}-12.0.1+12"
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
$release_major = '8u202'
|
||||||
|
$release_minor = 'b08'
|
||||||
|
$install_path = "${java}8u202-b08"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# determine package type (exe/tar/rpm), destination directory based on OS
|
||||||
|
case $facts['kernel'] {
|
||||||
|
'Linux' : {
|
||||||
|
case $facts['os']['family'] {
|
||||||
|
'RedHat', 'Amazon' : {
|
||||||
|
if $package_type {
|
||||||
|
$_package_type = $package_type
|
||||||
|
} else {
|
||||||
|
$_package_type = 'tar.gz'
|
||||||
|
}
|
||||||
|
if $basedir {
|
||||||
|
$_basedir = $basedir
|
||||||
|
} else {
|
||||||
|
$_basedir = '/usr/java'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'Debian' : {
|
||||||
|
if $package_type {
|
||||||
|
$_package_type = $package_type
|
||||||
|
} else {
|
||||||
|
$_package_type = 'tar.gz'
|
||||||
|
}
|
||||||
|
if $basedir {
|
||||||
|
$_basedir = $basedir
|
||||||
|
} else {
|
||||||
|
$_basedir = '/usr/lib/jvm'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail ("unsupported platform ${$facts['os']['name']}") }
|
||||||
|
}
|
||||||
|
|
||||||
|
$creates_path = "${_basedir}/${install_path}"
|
||||||
|
$os = 'linux'
|
||||||
|
$destination_dir = '/tmp/'
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
||||||
|
}
|
||||||
|
|
||||||
|
# set java architecture nomenclature
|
||||||
|
$os_architecture = $facts['os']['architecture'] ? {
|
||||||
|
undef => $facts['architecture'],
|
||||||
|
default => $facts['os']['architecture']
|
||||||
|
}
|
||||||
|
|
||||||
|
case $os_architecture {
|
||||||
|
'i386' : { $arch = 'x86-32' }
|
||||||
|
'x86_64' : { $arch = 'x64' }
|
||||||
|
'amd64' : { $arch = 'x64' }
|
||||||
|
default : {
|
||||||
|
fail ("unsupported platform ${$os_architecture}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# package name and path for download from github
|
||||||
|
#
|
||||||
|
# following are build based on this real life example full URLs:
|
||||||
|
#
|
||||||
|
# https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz
|
||||||
|
# https://github.com/AdoptOpenJDK/openjdk9-binaries/releases/download/jdk-9.0.4%2B11/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz
|
||||||
|
# https://github.com/AdoptOpenJDK/openjdk10-binaries/releases/download/jdk-10.0.2%2B13/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz
|
||||||
|
# https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.2%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz
|
||||||
|
# https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.1%2B12/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz
|
||||||
|
# jre just replaces jdk with jre in the archive name, but not in the path name!
|
||||||
|
# https://github.com/AdoptOpenJDK/openjdk9-binaries/releases/download/jdk-9.0.4%2B11/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz
|
||||||
|
|
||||||
|
if ( $_version_int == 8 ) {
|
||||||
|
$_release_minor_package_name = $release_minor
|
||||||
|
} else {
|
||||||
|
$_release_minor_package_name = "_${release_minor}"
|
||||||
|
}
|
||||||
|
|
||||||
|
case $_package_type {
|
||||||
|
'tar.gz': {
|
||||||
|
$package_name = "OpenJDK${_version}U-${java}_${arch}_${os}_hotspot_${release_major}${_release_minor_package_name}.tar.gz"
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
$package_name = "OpenJDK${_version}U-${java}_${arch}_${os}_hotspot_${release_major}${_release_minor_package_name}.tar.gz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# naming convention changed after major version 8, setting variables to consider that
|
||||||
|
# download_folder_prefix always begins with "jdk", even for jre! see comments for package_name above
|
||||||
|
if ( $_version_int == 8 ) {
|
||||||
|
$spacer = '-'
|
||||||
|
$download_folder_prefix = 'jdk'
|
||||||
|
} else {
|
||||||
|
$spacer = '%2B'
|
||||||
|
$download_folder_prefix = 'jdk-'
|
||||||
|
}
|
||||||
|
|
||||||
|
# if complete URL is provided, use this value for source in archive resource
|
||||||
|
if $url {
|
||||||
|
$source = $url
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$source = "https://github.com/AdoptOpenJDK/openjdk${_version}-binaries/releases/download/${download_folder_prefix}${release_major}${spacer}${release_minor}/${package_name}"
|
||||||
|
notice ("Default source url : ${source}")
|
||||||
|
}
|
||||||
|
|
||||||
|
# full path to the installer
|
||||||
|
$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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case $ensure {
|
||||||
|
'present' : {
|
||||||
|
archive { $destination :
|
||||||
|
ensure => present,
|
||||||
|
source => $source,
|
||||||
|
extract_path => '/tmp',
|
||||||
|
cleanup => false,
|
||||||
|
creates => $creates_path,
|
||||||
|
proxy_server => $proxy_server,
|
||||||
|
proxy_type => $proxy_type,
|
||||||
|
}
|
||||||
|
case $facts['kernel'] {
|
||||||
|
'Linux' : {
|
||||||
|
case $facts['os']['family'] {
|
||||||
|
'Debian' : {
|
||||||
|
ensure_resource('file', $_basedir, {
|
||||||
|
ensure => directory,
|
||||||
|
})
|
||||||
|
$install_requires = [Archive[$destination], File[$_basedir]]
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
$install_requires = [Archive[$destination]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $manage_basedir {
|
||||||
|
if (!defined(File[$_basedir])) {
|
||||||
|
file { $_basedir:
|
||||||
|
ensure => 'directory',
|
||||||
|
before => Exec["Install AdoptOpenJDK java ${java} ${_version} ${release_major} ${release_minor}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exec { "Install AdoptOpenJDK java ${java} ${_version} ${release_major} ${release_minor}" :
|
||||||
|
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||||
|
command => $install_command,
|
||||||
|
creates => $creates_path,
|
||||||
|
require => $install_requires
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($manage_symlink and $symlink_name) {
|
||||||
|
file { "${_basedir}/${symlink_name}":
|
||||||
|
ensure => link,
|
||||||
|
target => $creates_path,
|
||||||
|
require => Exec["Install AdoptOpenJDK java ${java} ${_version} ${release_major} ${release_minor}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail ("unsupported platform ${$facts['kernel']}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
notice ("Action ${ensure} not supported.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# @api private
|
# @api private
|
||||||
class java::config ( ) {
|
class java::config ( ) {
|
||||||
case $::osfamily {
|
case $facts['os']['family'] {
|
||||||
'Debian': {
|
'Debian': {
|
||||||
if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef {
|
if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef {
|
||||||
exec { 'update-java-alternatives':
|
exec { 'update-java-alternatives':
|
||||||
@@ -26,7 +26,7 @@ class java::config ( ) {
|
|||||||
path => '/usr/bin:/usr/sbin:/bin:/sbin',
|
path => '/usr/bin:/usr/sbin:/bin:/sbin',
|
||||||
command => "alternatives --install /usr/bin/java java ${$java::use_java_alternative_path} 20000" ,
|
command => "alternatives --install /usr/bin/java java ${$java::use_java_alternative_path} 20000" ,
|
||||||
unless => "alternatives --display java | grep -q ${$java::use_java_alternative_path}",
|
unless => "alternatives --display java | grep -q ${$java::use_java_alternative_path}",
|
||||||
before => Exec['update-java-alternatives']
|
before => Exec['update-java-alternatives'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,8 @@
|
|||||||
# Defined Type java::oracle
|
# Defined Type java::download
|
||||||
#
|
#
|
||||||
# @summary
|
# @summary
|
||||||
# Installs Oracle Java. By using this module you agree to the Oracle licensing
|
# Installs Java from a url location.
|
||||||
# agreement.
|
|
||||||
#
|
#
|
||||||
# Install one or more versions of Oracle Java.
|
|
||||||
#
|
|
||||||
# Uses the following to download the package and automatically accept
|
|
||||||
# the licensing terms:
|
|
||||||
#```
|
|
||||||
# wget --no-cookies --no-check-certificate --header \
|
|
||||||
# "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" \
|
|
||||||
# "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz"
|
|
||||||
#```
|
|
||||||
#
|
#
|
||||||
# @param ensure
|
# @param ensure
|
||||||
# Install or remove the package.
|
# Install or remove the package.
|
||||||
@@ -29,9 +19,6 @@
|
|||||||
# @param java_se
|
# @param java_se
|
||||||
# Type of Java Standard Edition to install, jdk or jre.
|
# Type of Java Standard Edition to install, jdk or jre.
|
||||||
#
|
#
|
||||||
# @param oracle_url
|
|
||||||
# Official Oracle URL to download binaries from.
|
|
||||||
#
|
|
||||||
# @param proxy_server
|
# @param proxy_server
|
||||||
# Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
# Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||||
#
|
#
|
||||||
@@ -39,13 +26,7 @@
|
|||||||
# Proxy server type (none|http|https|ftp). (passed to archive)
|
# Proxy server type (none|http|https|ftp). (passed to archive)
|
||||||
#
|
#
|
||||||
# @param url
|
# @param url
|
||||||
# Full URL, including oracle_url, release_major, release_minor and package_name, to
|
# Full URL
|
||||||
# download the Oracle java_se installer. Originally present but not used, activated
|
|
||||||
# to workaround MODULES-5058.
|
|
||||||
#
|
|
||||||
# @param url_hash
|
|
||||||
# Directory hash used by the download.oracle.com site. This value is a 32 character string
|
|
||||||
# which is part of the file URL returned by the JDK download site.
|
|
||||||
#
|
#
|
||||||
# @param jce
|
# @param jce
|
||||||
# Install Oracles Java Cryptographic Extensions into the JRE or JDK
|
# Install Oracles Java Cryptographic Extensions into the JRE or JDK
|
||||||
@@ -72,17 +53,15 @@
|
|||||||
# @param symlink_name
|
# @param symlink_name
|
||||||
# The name for the optional symlink in the installation directory.
|
# The name for the optional symlink in the installation directory.
|
||||||
#
|
#
|
||||||
define java::oracle (
|
define java::download(
|
||||||
$ensure = 'present',
|
$ensure = 'present',
|
||||||
$version = '8',
|
$version = '8',
|
||||||
$version_major = undef,
|
$version_major = undef,
|
||||||
$version_minor = undef,
|
$version_minor = undef,
|
||||||
$java_se = 'jdk',
|
$java_se = 'jdk',
|
||||||
$oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/',
|
|
||||||
$proxy_server = undef,
|
$proxy_server = undef,
|
||||||
$proxy_type = undef,
|
$proxy_type = undef,
|
||||||
$url = undef,
|
$url = undef,
|
||||||
$url_hash = undef,
|
|
||||||
$jce = false,
|
$jce = false,
|
||||||
$jce_url = undef,
|
$jce_url = undef,
|
||||||
$basedir = undef,
|
$basedir = undef,
|
||||||
@@ -93,7 +72,7 @@ define java::oracle (
|
|||||||
) {
|
) {
|
||||||
|
|
||||||
# archive module is used to download the java package
|
# archive module is used to download the java package
|
||||||
include ::archive
|
include archive
|
||||||
|
|
||||||
# validate java Standard Edition to download
|
# validate java Standard Edition to download
|
||||||
if $java_se !~ /(jre|jdk)/ {
|
if $java_se !~ /(jre|jdk)/ {
|
||||||
@@ -103,31 +82,23 @@ define java::oracle (
|
|||||||
if $jce {
|
if $jce {
|
||||||
if $jce_url {
|
if $jce_url {
|
||||||
$jce_download = $jce_url
|
$jce_download = $jce_url
|
||||||
$cookie = undef
|
|
||||||
} else {
|
} else {
|
||||||
$jce_download = $version ? {
|
fail('JCE URL must be specified')
|
||||||
'8' => 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip',
|
|
||||||
'7' => 'http://download.oracle.com/otn-pub/java/jce/7/UnlimitedJCEPolicyJDK7.zip',
|
|
||||||
'6' => 'http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip',
|
|
||||||
default => undef
|
|
||||||
}
|
|
||||||
$cookie = 'gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# determine Oracle Java major and minor version, and installation path
|
# determine Java major and minor version, and installation path
|
||||||
if $version_major and $version_minor {
|
if $version_major and $version_minor {
|
||||||
|
|
||||||
$label = $version_major
|
$label = $version_major
|
||||||
$release_major = $version_major
|
$release_major = $version_major
|
||||||
$release_minor = $version_minor
|
$release_minor = $version_minor
|
||||||
$release_hash = $url_hash
|
|
||||||
|
|
||||||
if $release_major =~ /(\d+)u(\d+)/ {
|
if $release_major =~ /(\d+)u(\d+)/ {
|
||||||
# Required for CentOS systems where Java8 update number is >= 171 to ensure
|
# Required for CentOS systems where Java8 update number is >= 171 to ensure
|
||||||
# the package is visible to Puppet. This is only true for installations that
|
# the package is visible to Puppet. This is only true for installations that
|
||||||
# don't use the tar.gz package type.
|
# don't use the tar.gz package type.
|
||||||
if $facts['os']['family'] == 'RedHat' and $2 >= '171' and $package_type != 'tar.gz' {
|
if $facts['os']['family'] == 'RedHat' and Numeric($2) >= 171 and $package_type != 'tar.gz' {
|
||||||
$install_path = "${java_se}1.${1}.0_${2}-amd64"
|
$install_path = "${java_se}1.${1}.0_${2}-amd64"
|
||||||
} else {
|
} else {
|
||||||
$install_path = "${java_se}1.${1}.0_${2}"
|
$install_path = "${java_se}1.${1}.0_${2}"
|
||||||
@@ -143,25 +114,21 @@ define java::oracle (
|
|||||||
$release_major = '6u45'
|
$release_major = '6u45'
|
||||||
$release_minor = 'b06'
|
$release_minor = 'b06'
|
||||||
$install_path = "${java_se}1.6.0_45"
|
$install_path = "${java_se}1.6.0_45"
|
||||||
$release_hash = undef
|
|
||||||
}
|
}
|
||||||
'7' : {
|
'7' : {
|
||||||
$release_major = '7u80'
|
$release_major = '7u80'
|
||||||
$release_minor = 'b15'
|
$release_minor = 'b15'
|
||||||
$install_path = "${java_se}1.7.0_80"
|
$install_path = "${java_se}1.7.0_80"
|
||||||
$release_hash = undef
|
|
||||||
}
|
}
|
||||||
'8' : {
|
'8' : {
|
||||||
$release_major = '8u201'
|
$release_major = '8u201'
|
||||||
$release_minor = 'b09'
|
$release_minor = 'b09'
|
||||||
$install_path = "${java_se}1.8.0_201"
|
$install_path = "${java_se}1.8.0_201"
|
||||||
$release_hash = '42970487e3af4f5aa5bca3f542482c60'
|
|
||||||
}
|
}
|
||||||
default : {
|
default : {
|
||||||
$release_major = '8u201'
|
$release_major = '8u201'
|
||||||
$release_minor = 'b09'
|
$release_minor = 'b09'
|
||||||
$install_path = "${java_se}1.8.0_201"
|
$install_path = "${java_se}1.8.0_201"
|
||||||
$release_hash = '42970487e3af4f5aa5bca3f542482c60'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -216,7 +183,7 @@ define java::oracle (
|
|||||||
|
|
||||||
# set java architecture nomenclature
|
# set java architecture nomenclature
|
||||||
$os_architecture = $facts['os']['architecture'] ? {
|
$os_architecture = $facts['os']['architecture'] ? {
|
||||||
undef => $facts['architecture'],
|
undef => $facts['os']['architecture'],
|
||||||
default => $facts['os']['architecture']
|
default => $facts['os']['architecture']
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,7 +202,7 @@ define java::oracle (
|
|||||||
# JaveSE 6 distributed in .bin format
|
# JaveSE 6 distributed in .bin format
|
||||||
# http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586-rpm.bin
|
# http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586-rpm.bin
|
||||||
# http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin
|
# http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin
|
||||||
# package name to download from Oracle's website
|
# package name to use in destination directory for the installer
|
||||||
case $_package_type {
|
case $_package_type {
|
||||||
'bin' : {
|
'bin' : {
|
||||||
$package_name = "${java_se}-${release_major}-${os}-${arch}.bin"
|
$package_name = "${java_se}-${release_major}-${os}-${arch}.bin"
|
||||||
@@ -258,11 +225,8 @@ define java::oracle (
|
|||||||
if $url {
|
if $url {
|
||||||
$source = $url
|
$source = $url
|
||||||
}
|
}
|
||||||
elsif $release_hash != undef {
|
|
||||||
$source = "${oracle_url}/${release_major}-${release_minor}/${release_hash}/${package_name}"
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
$source = "${oracle_url}/${release_major}-${release_minor}/${package_name}"
|
fail('Url must be specified')
|
||||||
}
|
}
|
||||||
|
|
||||||
# full path to the installer
|
# full path to the installer
|
||||||
@@ -292,7 +256,6 @@ define java::oracle (
|
|||||||
archive { $destination :
|
archive { $destination :
|
||||||
ensure => present,
|
ensure => present,
|
||||||
source => $source,
|
source => $source,
|
||||||
cookie => 'gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie',
|
|
||||||
extract_path => '/tmp',
|
extract_path => '/tmp',
|
||||||
cleanup => false,
|
cleanup => false,
|
||||||
creates => $creates_path,
|
creates => $creates_path,
|
||||||
@@ -321,14 +284,14 @@ define java::oracle (
|
|||||||
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||||
command => $install_command,
|
command => $install_command,
|
||||||
creates => $creates_path,
|
creates => $creates_path,
|
||||||
require => $install_requires
|
require => $install_requires,
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($manage_symlink and $symlink_name) {
|
if ($manage_symlink and $symlink_name) {
|
||||||
file { "${_basedir}/${symlink_name}":
|
file { "${_basedir}/${symlink_name}":
|
||||||
ensure => link,
|
ensure => link,
|
||||||
target => $creates_path,
|
target => $creates_path,
|
||||||
require => Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"]
|
require => Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,7 +302,6 @@ define java::oracle (
|
|||||||
}
|
}
|
||||||
archive { "/tmp/jce-${version}.zip":
|
archive { "/tmp/jce-${version}.zip":
|
||||||
source => $jce_download,
|
source => $jce_download,
|
||||||
cookie => $cookie,
|
|
||||||
extract => true,
|
extract => true,
|
||||||
extract_path => $jce_path,
|
extract_path => $jce_path,
|
||||||
extract_flags => '-oj',
|
extract_flags => '-oj',
|
||||||
@@ -350,7 +312,7 @@ define java::oracle (
|
|||||||
require => [
|
require => [
|
||||||
Package['unzip'],
|
Package['unzip'],
|
||||||
Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"]
|
Exec["Install Oracle java_se ${java_se} ${version} ${release_major} ${release_minor}"]
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -363,4 +325,4 @@ define java::oracle (
|
|||||||
notice ("Action ${ensure} not supported.")
|
notice ("Action ${ensure} not supported.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -101,7 +101,7 @@ class java(
|
|||||||
$use_java_package_name == undef or $use_java_alternative == undef or
|
$use_java_package_name == undef or $use_java_alternative == undef or
|
||||||
$use_java_alternative_path == undef or $use_java_home == undef
|
$use_java_alternative_path == undef or $use_java_home == undef
|
||||||
) and (
|
) and (
|
||||||
! has_key($::java::params::java, $distribution)
|
! has_key($java::params::java, $distribution)
|
||||||
)) {
|
)) {
|
||||||
fail("Java distribution ${distribution} is not supported. Missing default values.")
|
fail("Java distribution ${distribution} is not supported. Missing default values.")
|
||||||
}
|
}
|
||||||
@@ -111,7 +111,7 @@ class java(
|
|||||||
default => '--jre'
|
default => '--jre'
|
||||||
}
|
}
|
||||||
|
|
||||||
if $::osfamily == 'Debian' {
|
if $facts['os']['family'] == 'Debian' {
|
||||||
# Needed for update-java-alternatives
|
# Needed for update-java-alternatives
|
||||||
package { 'java-common':
|
package { 'java-common':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
|
|||||||
@@ -6,23 +6,23 @@
|
|||||||
# @api private
|
# @api private
|
||||||
class java::params {
|
class java::params {
|
||||||
|
|
||||||
case $::osfamily {
|
case $facts['os']['family'] {
|
||||||
'RedHat': {
|
'RedHat': {
|
||||||
case $::operatingsystem {
|
case $facts['os']['name'] {
|
||||||
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
||||||
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
|
if (versioncmp($facts['os']['release']['full'], '5.0') < 0) {
|
||||||
$jdk_package = 'java-1.6.0-sun-devel'
|
$jdk_package = 'java-1.6.0-sun-devel'
|
||||||
$jre_package = 'java-1.6.0-sun'
|
$jre_package = 'java-1.6.0-sun'
|
||||||
$java_home = '/usr/lib/jvm/java-1.6.0-sun/jre/'
|
$java_home = '/usr/lib/jvm/java-1.6.0-sun/jre/'
|
||||||
}
|
}
|
||||||
# See cde7046 for why >= 5.0 < 6.3
|
# See cde7046 for why >= 5.0 < 6.3
|
||||||
elsif (versioncmp($::operatingsystemrelease, '6.3') < 0) {
|
elsif (versioncmp($facts['os']['release']['full'], '6.3') < 0) {
|
||||||
$jdk_package = 'java-1.6.0-openjdk-devel'
|
$jdk_package = 'java-1.6.0-openjdk-devel'
|
||||||
$jre_package = 'java-1.6.0-openjdk'
|
$jre_package = 'java-1.6.0-openjdk'
|
||||||
$java_home = '/usr/lib/jvm/java-1.6.0/'
|
$java_home = '/usr/lib/jvm/java-1.6.0/'
|
||||||
}
|
}
|
||||||
# See PR#160 / c8e46b5 for why >= 6.3 < 7.1
|
# See PR#160 / c8e46b5 for why >= 6.3 < 7.1
|
||||||
elsif (versioncmp($::operatingsystemrelease, '7.1') < 0) {
|
elsif (versioncmp($facts['os']['release']['full'], '7.1') < 0) {
|
||||||
$jdk_package = 'java-1.7.0-openjdk-devel'
|
$jdk_package = 'java-1.7.0-openjdk-devel'
|
||||||
$jre_package = 'java-1.7.0-openjdk'
|
$jre_package = 'java-1.7.0-openjdk'
|
||||||
$java_home = '/usr/lib/jvm/java-1.7.0/'
|
$java_home = '/usr/lib/jvm/java-1.7.0/'
|
||||||
@@ -34,23 +34,23 @@ class java::params {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'Fedora': {
|
'Fedora': {
|
||||||
if (versioncmp($::operatingsystemrelease, '21') < 0) {
|
if (versioncmp($facts['os']['release']['full'], '21') < 0) {
|
||||||
$jdk_package = 'java-1.7.0-openjdk-devel'
|
$jdk_package = 'java-1.7.0-openjdk-devel'
|
||||||
$jre_package = 'java-1.7.0-openjdk'
|
$jre_package = 'java-1.7.0-openjdk'
|
||||||
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/"
|
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${facts['os']['architecture']}/"
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$jdk_package = 'java-1.8.0-openjdk-devel'
|
$jdk_package = 'java-1.8.0-openjdk-devel'
|
||||||
$jre_package = 'java-1.8.0-openjdk'
|
$jre_package = 'java-1.8.0-openjdk'
|
||||||
$java_home = "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/"
|
$java_home = "/usr/lib/jvm/java-1.8.0-openjdk-${facts['os']['architecture']}/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'Amazon': {
|
'Amazon': {
|
||||||
$jdk_package = 'java-1.7.0-openjdk-devel'
|
$jdk_package = 'java-1.7.0-openjdk-devel'
|
||||||
$jre_package = 'java-1.7.0-openjdk'
|
$jre_package = 'java-1.7.0-openjdk'
|
||||||
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/"
|
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${facts['os']['architecture']}/"
|
||||||
}
|
}
|
||||||
default: { fail("unsupported os ${::operatingsystem}") }
|
default: { fail("unsupported os ${facts['os']['name']}") }
|
||||||
}
|
}
|
||||||
$java = {
|
$java = {
|
||||||
'jdk' => {
|
'jdk' => {
|
||||||
@@ -64,45 +64,17 @@ class java::params {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'Debian': {
|
'Debian': {
|
||||||
$oracle_architecture = $::architecture ? {
|
$oracle_architecture = $facts['os']['architecture'] ? {
|
||||||
'amd64' => 'x64',
|
'amd64' => 'x64',
|
||||||
default => $::architecture
|
default => $facts['os']['architecture']
|
||||||
}
|
}
|
||||||
$openjdk_architecture = $::architecture ? {
|
$openjdk_architecture = $facts['os']['architecture'] ? {
|
||||||
'aarch64' => 'arm64',
|
'aarch64' => 'arm64',
|
||||||
'armv7l' => 'armhf',
|
'armv7l' => 'armhf',
|
||||||
default => $::architecture
|
default => $facts['os']['architecture']
|
||||||
}
|
}
|
||||||
case $::lsbdistcodename {
|
case $facts['os']['release']['major'] {
|
||||||
'lenny', 'squeeze', 'lucid', 'natty': {
|
'7', '8', '14.04': {
|
||||||
$java = {
|
|
||||||
'jdk' => {
|
|
||||||
'package' => 'openjdk-6-jdk',
|
|
||||||
'alternative' => "java-6-openjdk-${openjdk_architecture}",
|
|
||||||
'alternative_path' => '/usr/lib/jvm/java-6-openjdk/jre/bin/java',
|
|
||||||
'java_home' => '/usr/lib/jvm/java-6-openjdk/jre/',
|
|
||||||
},
|
|
||||||
'jre' => {
|
|
||||||
'package' => 'openjdk-6-jre-headless',
|
|
||||||
'alternative' => "java-6-openjdk-${openjdk_architecture}",
|
|
||||||
'alternative_path' => '/usr/lib/jvm/java-6-openjdk/jre/bin/java',
|
|
||||||
'java_home' => '/usr/lib/jvm/java-6-openjdk/jre/',
|
|
||||||
},
|
|
||||||
'sun-jre' => {
|
|
||||||
'package' => 'sun-java6-jre',
|
|
||||||
'alternative' => 'java-6-sun',
|
|
||||||
'alternative_path' => '/usr/lib/jvm/java-6-sun/jre/bin/java',
|
|
||||||
'java_home' => '/usr/lib/jvm/java-6-sun/jre/',
|
|
||||||
},
|
|
||||||
'sun-jdk' => {
|
|
||||||
'package' => 'sun-java6-jdk',
|
|
||||||
'alternative' => 'java-6-sun',
|
|
||||||
'alternative_path' => '/usr/lib/jvm/java-6-sun/jre/bin/java',
|
|
||||||
'java_home' => '/usr/lib/jvm/java-6-sun/jre/',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'wheezy', 'jessie', 'precise', 'quantal', 'raring', 'saucy', 'trusty', 'utopic': {
|
|
||||||
$java = {
|
$java = {
|
||||||
'jdk' => {
|
'jdk' => {
|
||||||
'package' => 'openjdk-7-jdk',
|
'package' => 'openjdk-7-jdk',
|
||||||
@@ -112,7 +84,7 @@ class java::params {
|
|||||||
},
|
},
|
||||||
'jre' => {
|
'jre' => {
|
||||||
'package' => 'openjdk-7-jre-headless',
|
'package' => 'openjdk-7-jre-headless',
|
||||||
'alternative' => "java-1.7.0-openjdk-${::architecture}",
|
'alternative' => "java-1.7.0-openjdk-${facts['os']['architecture']}",
|
||||||
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/bin/java",
|
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/bin/java",
|
||||||
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/",
|
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/",
|
||||||
},
|
},
|
||||||
@@ -154,7 +126,7 @@ class java::params {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'stretch', 'vivid', 'wily', 'xenial', 'yakkety', 'zesty', 'artful': {
|
'9', '15.04', '15.10', '16.04', '16.10', '17.04', '17.10': {
|
||||||
$java = {
|
$java = {
|
||||||
'jdk' => {
|
'jdk' => {
|
||||||
'package' => 'openjdk-8-jdk',
|
'package' => 'openjdk-8-jdk',
|
||||||
@@ -167,10 +139,10 @@ class java::params {
|
|||||||
'alternative' => "java-1.8.0-openjdk-${openjdk_architecture}",
|
'alternative' => "java-1.8.0-openjdk-${openjdk_architecture}",
|
||||||
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${openjdk_architecture}/bin/java",
|
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${openjdk_architecture}/bin/java",
|
||||||
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${openjdk_architecture}/",
|
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${openjdk_architecture}/",
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'bionic': {
|
'10', '11', '18.04', '18.10', '19.04', '19.10', '20.04': {
|
||||||
$java = {
|
$java = {
|
||||||
'jdk' => {
|
'jdk' => {
|
||||||
'package' => 'openjdk-11-jdk',
|
'package' => 'openjdk-11-jdk',
|
||||||
@@ -183,10 +155,10 @@ class java::params {
|
|||||||
'alternative' => "java-1.11.0-openjdk-${openjdk_architecture}",
|
'alternative' => "java-1.11.0-openjdk-${openjdk_architecture}",
|
||||||
'alternative_path' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/bin/java",
|
'alternative_path' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/bin/java",
|
||||||
'java_home' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/",
|
'java_home' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/",
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default: { fail("unsupported release ${::lsbdistcodename}") }
|
default: { fail("unsupported release ${facts['os']['release']['major']}") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'OpenBSD': {
|
'OpenBSD': {
|
||||||
@@ -226,17 +198,17 @@ class java::params {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'Suse': {
|
'Suse': {
|
||||||
case $::operatingsystem {
|
case $facts['os']['name'] {
|
||||||
'SLES': {
|
'SLES': {
|
||||||
if (versioncmp($::operatingsystemrelease, '12.1') >= 0) {
|
if (versioncmp($facts['os']['release']['full'], '12.1') >= 0) {
|
||||||
$jdk_package = 'java-1_8_0-openjdk-devel'
|
$jdk_package = 'java-1_8_0-openjdk-devel'
|
||||||
$jre_package = 'java-1_8_0-openjdk'
|
$jre_package = 'java-1_8_0-openjdk'
|
||||||
$java_home = '/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/'
|
$java_home = '/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/'
|
||||||
} elsif (versioncmp($::operatingsystemrelease, '12') >= 0) {
|
} elsif (versioncmp($facts['os']['release']['full'], '12') >= 0) {
|
||||||
$jdk_package = 'java-1_7_0-openjdk-devel'
|
$jdk_package = 'java-1_7_0-openjdk-devel'
|
||||||
$jre_package = 'java-1_7_0-openjdk'
|
$jre_package = 'java-1_7_0-openjdk'
|
||||||
$java_home = '/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/'
|
$java_home = '/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/'
|
||||||
} elsif (versioncmp($::operatingsystemrelease, '11.4') >= 0) {
|
} elsif (versioncmp($facts['os']['release']['full'], '11.4') >= 0) {
|
||||||
$jdk_package = 'java-1_7_1-ibm-devel'
|
$jdk_package = 'java-1_7_1-ibm-devel'
|
||||||
$jre_package = 'java-1_7_1-ibm'
|
$jre_package = 'java-1_7_1-ibm'
|
||||||
$java_home = '/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/'
|
$java_home = '/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/'
|
||||||
@@ -283,6 +255,6 @@ class java::params {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default: { fail("unsupported platform ${::osfamily}") }
|
default: { fail("unsupported platform ${facts['os']['family']}") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
227
manifests/sap.pp
Normal file
227
manifests/sap.pp
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
# Defined Type java::sap
|
||||||
|
#
|
||||||
|
# @summary
|
||||||
|
# Install one or more versions of SAPJVM or Sapmachine
|
||||||
|
#
|
||||||
|
# @param ensure
|
||||||
|
# Install or remove the package.
|
||||||
|
#
|
||||||
|
# @param version
|
||||||
|
# Version of Java to install, e.g. '8' or '9'. Default values for full versions will be used.
|
||||||
|
#
|
||||||
|
# @param version_full
|
||||||
|
# Major version which should be installed, e.g. '8.1.063' or '11.0.7'. If used, "version" parameter is ignored.
|
||||||
|
#
|
||||||
|
# @param java
|
||||||
|
# Type of Java Edition to install, jdk or jre.
|
||||||
|
#
|
||||||
|
# @param proxy_server
|
||||||
|
# Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||||
|
#
|
||||||
|
# @param proxy_type
|
||||||
|
# Proxy server type (none|http|https|ftp). (passed to archive)
|
||||||
|
#
|
||||||
|
# @param basedir
|
||||||
|
# Directory under which the installation will occur. If not set, defaults to
|
||||||
|
# /usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||||
|
#
|
||||||
|
# @param manage_basedir
|
||||||
|
# Whether to manage the basedir directory. Defaults to false.
|
||||||
|
# Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||||
|
#
|
||||||
|
# @param manage_symlink
|
||||||
|
# Whether to manage a symlink that points to the installation directory. Defaults to false.
|
||||||
|
#
|
||||||
|
# @param symlink_name
|
||||||
|
# The name for the optional symlink in the installation directory.
|
||||||
|
#
|
||||||
|
define java::sap (
|
||||||
|
$ensure = 'present',
|
||||||
|
$version = '8',
|
||||||
|
$version_full = undef,
|
||||||
|
$java = 'jdk',
|
||||||
|
$proxy_server = undef,
|
||||||
|
$proxy_type = undef,
|
||||||
|
$basedir = undef,
|
||||||
|
$manage_basedir = true,
|
||||||
|
$manage_symlink = false,
|
||||||
|
$symlink_name = undef,
|
||||||
|
) {
|
||||||
|
|
||||||
|
# archive module is used to download the java package
|
||||||
|
include ::archive
|
||||||
|
|
||||||
|
# validate java edition to download
|
||||||
|
if $java !~ /(jre|jdk)/ {
|
||||||
|
fail('java must be either jre or jdk.')
|
||||||
|
}
|
||||||
|
|
||||||
|
# determine version and installation path
|
||||||
|
if $version_full {
|
||||||
|
|
||||||
|
$_version_array = $version_full.scanf('%i')
|
||||||
|
$_version_int = $_version_array[0]
|
||||||
|
|
||||||
|
$_version_full = $version_full
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$_version = $version
|
||||||
|
$_version_int = Numeric($_version)
|
||||||
|
# use default versions if full version parameter is not provided
|
||||||
|
case $version {
|
||||||
|
'7' : {
|
||||||
|
$_version_full = '7.1.072'
|
||||||
|
if ($java != 'jdk') {
|
||||||
|
fail('java parameter is not jdk. jre is not supported on version 7')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'8' : {
|
||||||
|
$_version_full = '8.1.065'
|
||||||
|
if ($java != 'jdk') {
|
||||||
|
fail('java parameter is not jdk. jre is not supported on version 8')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'11' : {
|
||||||
|
$_version_full = '11.0.7'
|
||||||
|
}
|
||||||
|
'14' : {
|
||||||
|
$_version_full = '14.0.1'
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail("${version} not yet supported by module")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# extracted folders look like this:
|
||||||
|
# sapjvm_8
|
||||||
|
# sapmachine-jdk-11.0.7
|
||||||
|
if ($_version_int == 7 or $_version_int == 8) {
|
||||||
|
$_creates_folder = "sapjvm_${_version_int}"
|
||||||
|
} else {
|
||||||
|
$_creates_folder = "sapmachine-${java}-${_version_full}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# determine destination directory based on OS
|
||||||
|
case $facts['kernel'] {
|
||||||
|
'Linux' : {
|
||||||
|
case $facts['os']['family'] {
|
||||||
|
'RedHat', 'Amazon' : {
|
||||||
|
if $basedir {
|
||||||
|
$_basedir = $basedir
|
||||||
|
} else {
|
||||||
|
$_basedir = '/usr/java'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'Debian' : {
|
||||||
|
if $basedir {
|
||||||
|
$_basedir = $basedir
|
||||||
|
} else {
|
||||||
|
$_basedir = '/usr/lib/jvm'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail ("unsupported os family ${$facts['os']['name']}") }
|
||||||
|
}
|
||||||
|
|
||||||
|
$creates_path = "${_basedir}/${_creates_folder}"
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
||||||
|
}
|
||||||
|
|
||||||
|
$_os_architecture = $facts['os']['architecture'] ? {
|
||||||
|
undef => $facts['architecture'],
|
||||||
|
default => $facts['os']['architecture']
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_os_architecture != 'x86_64' and $_os_architecture != 'amd64') {
|
||||||
|
fail ("unsupported platform ${_os_architecture}")
|
||||||
|
}
|
||||||
|
|
||||||
|
# download links look like this (examples):
|
||||||
|
# https://tools.hana.ondemand.com/additional/sapjvm-8.1.065-linux-x64.zip
|
||||||
|
# https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.7/sapmachine-jre-11.0.7_linux-x64_bin.tar.gz
|
||||||
|
# https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.7/sapmachine-jdk-11.0.7_linux-x64_bin.tar.gz
|
||||||
|
# https://github.com/SAP/SapMachine/releases/download/sapmachine-14.0.1/sapmachine-jdk-14.0.1_linux-x64_bin.tar.gz
|
||||||
|
|
||||||
|
# cookie is currently at version 3.1, but may be changed one day. It is only required for download at SAP.
|
||||||
|
# by using this module you agree with the EULA presented at tools.hana.ondemand.com download page!
|
||||||
|
# Github does not require it
|
||||||
|
|
||||||
|
if ( $_version_int == 7 or $_version_int == 8 ) {
|
||||||
|
# sapjvm download
|
||||||
|
$archive_filename = "sapjvm-${_version_full}-linux-x64.zip"
|
||||||
|
$source = "https://tools.hana.ondemand.com/additional/${archive_filename}"
|
||||||
|
$cookie = 'eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt'
|
||||||
|
|
||||||
|
if (!defined(Package['unzip'])) {
|
||||||
|
package { 'unzip':
|
||||||
|
ensure => 'present',
|
||||||
|
before => Archive["/tmp/${archive_filename}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$archive_filename = "sapmachine-${java}-${_version_full}_linux-x64_bin.tar.gz"
|
||||||
|
$source = "https://github.com/SAP/SapMachine/releases/download/sapmachine-${_version_full}/${archive_filename}"
|
||||||
|
$cookie = undef
|
||||||
|
|
||||||
|
if (!defined(Package['tar'])) {
|
||||||
|
package { 'tar':
|
||||||
|
ensure => 'present',
|
||||||
|
before => Archive["/tmp/${archive_filename}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!defined(Package['gzip'])) {
|
||||||
|
package { 'gzip':
|
||||||
|
ensure => 'present',
|
||||||
|
before => Archive["/tmp/${archive_filename}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case $ensure {
|
||||||
|
'present' : {
|
||||||
|
case $facts['kernel'] {
|
||||||
|
'Linux' : {
|
||||||
|
if ($manage_basedir or $facts['os']['family'] == 'Debian'){
|
||||||
|
if (!defined(File[$_basedir])) {
|
||||||
|
file { $_basedir:
|
||||||
|
ensure => 'directory',
|
||||||
|
before => Archive["/tmp/${archive_filename}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
archive { "/tmp/${archive_filename}" :
|
||||||
|
ensure => present,
|
||||||
|
source => $source,
|
||||||
|
extract => true,
|
||||||
|
extract_path => $_basedir,
|
||||||
|
cleanup => false,
|
||||||
|
creates => $creates_path,
|
||||||
|
cookie => $cookie,
|
||||||
|
proxy_server => $proxy_server,
|
||||||
|
proxy_type => $proxy_type,
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($manage_symlink and $symlink_name) {
|
||||||
|
file { "${_basedir}/${symlink_name}":
|
||||||
|
ensure => link,
|
||||||
|
target => $creates_path,
|
||||||
|
require => Archive["/tmp/${archive_filename}"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail ("unsupported platform ${$facts['kernel']}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
notice ("Action ${ensure} not supported.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "puppetlabs-java",
|
"name": "puppetlabs-java",
|
||||||
"version": "4.1.0",
|
"version": "7.1.0",
|
||||||
"author": "puppetlabs",
|
"author": "puppetlabs",
|
||||||
"summary": "Installs the correct Java package on various platforms.",
|
"summary": "Installs the correct Java package on various platforms.",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
@@ -10,18 +10,17 @@
|
|||||||
"dependencies": [
|
"dependencies": [
|
||||||
{
|
{
|
||||||
"name": "puppetlabs/stdlib",
|
"name": "puppetlabs/stdlib",
|
||||||
"version_requirement": ">= 4.13.1 < 7.0.0"
|
"version_requirement": ">= 4.13.1 < 8.0.0"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "puppet/archive",
|
"name": "puppet/archive",
|
||||||
"version_requirement": ">= 1.1.0 < 5.0.0"
|
"version_requirement": ">= 1.1.0 < 6.0.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"operatingsystem_support": [
|
"operatingsystem_support": [
|
||||||
{
|
{
|
||||||
"operatingsystem": "RedHat",
|
"operatingsystem": "RedHat",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"5",
|
|
||||||
"6",
|
"6",
|
||||||
"7",
|
"7",
|
||||||
"8"
|
"8"
|
||||||
@@ -30,9 +29,9 @@
|
|||||||
{
|
{
|
||||||
"operatingsystem": "CentOS",
|
"operatingsystem": "CentOS",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"5",
|
|
||||||
"6",
|
"6",
|
||||||
"7"
|
"7",
|
||||||
|
"8"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -52,7 +51,9 @@
|
|||||||
"operatingsystem": "Debian",
|
"operatingsystem": "Debian",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"8",
|
"8",
|
||||||
"9"
|
"9",
|
||||||
|
"10",
|
||||||
|
"11"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -60,13 +61,13 @@
|
|||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"14.04",
|
"14.04",
|
||||||
"16.04",
|
"16.04",
|
||||||
"18.04"
|
"18.04",
|
||||||
|
"20.04"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"operatingsystem": "SLES",
|
"operatingsystem": "SLES",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"11",
|
|
||||||
"12",
|
"12",
|
||||||
"15"
|
"15"
|
||||||
]
|
]
|
||||||
@@ -75,10 +76,10 @@
|
|||||||
"requirements": [
|
"requirements": [
|
||||||
{
|
{
|
||||||
"name": "puppet",
|
"name": "puppet",
|
||||||
"version_requirement": ">= 5.5.10 < 7.0.0"
|
"version_requirement": ">= 6.0.0 < 8.0.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"template-url": "https://github.com/puppetlabs/pdk-templates#master",
|
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
|
||||||
"template-ref": "heads/master-0-gf778803",
|
"template-ref": "heads/main-0-g03daa92",
|
||||||
"pdk-version": "1.10.0"
|
"pdk-version": "2.1.0"
|
||||||
}
|
}
|
||||||
|
|||||||
69
provision.yaml
Normal file
69
provision.yaml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
---
|
||||||
|
default:
|
||||||
|
provisioner: docker
|
||||||
|
images:
|
||||||
|
- litmusimage/debian:8
|
||||||
|
vagrant:
|
||||||
|
provisioner: vagrant
|
||||||
|
images:
|
||||||
|
- centos/7
|
||||||
|
- generic/ubuntu1804
|
||||||
|
travis_deb:
|
||||||
|
provisioner: docker
|
||||||
|
images:
|
||||||
|
- litmusimage/debian:8
|
||||||
|
- litmusimage/debian:9
|
||||||
|
- litmusimage/debian:10
|
||||||
|
travis_ub_6:
|
||||||
|
provisioner: docker
|
||||||
|
images:
|
||||||
|
- litmusimage/ubuntu:14.04
|
||||||
|
- litmusimage/ubuntu:16.04
|
||||||
|
- litmusimage/ubuntu:18.04
|
||||||
|
- litmusimage/ubuntu:20.04
|
||||||
|
travis_el7:
|
||||||
|
provisioner: docker
|
||||||
|
images:
|
||||||
|
- litmusimage/centos:7
|
||||||
|
- litmusimage/oraclelinux:7
|
||||||
|
- litmusimage/scientificlinux:7
|
||||||
|
travis_el8:
|
||||||
|
provisioner: docker
|
||||||
|
images:
|
||||||
|
- litmusimage/centos:8
|
||||||
|
release_checks_6:
|
||||||
|
provisioner: abs
|
||||||
|
images:
|
||||||
|
- redhat-6-x86_64
|
||||||
|
- redhat-7-x86_64
|
||||||
|
- redhat-8-x86_64
|
||||||
|
- centos-6-x86_64
|
||||||
|
- centos-7-x86_64
|
||||||
|
- centos-8-x86_64
|
||||||
|
- oracle-6-x86_64
|
||||||
|
- oracle-7-x86_64
|
||||||
|
- scientific-6-x86_64
|
||||||
|
- scientific-7-x86_64
|
||||||
|
- debian-8-x86_64
|
||||||
|
- debian-9-x86_64
|
||||||
|
- debian-10-x86_64
|
||||||
|
- ubuntu-1404-x86_64
|
||||||
|
- ubuntu-1604-x86_64
|
||||||
|
- ubuntu-1804-x86_64
|
||||||
|
- ubuntu-2004-x86_64
|
||||||
|
- sles-12-x86_64
|
||||||
|
- sles-15-x86_64
|
||||||
|
release_checks_7:
|
||||||
|
provisioner: abs
|
||||||
|
images:
|
||||||
|
- redhat-7-x86_64
|
||||||
|
- redhat-8-x86_64
|
||||||
|
- centos-7-x86_64
|
||||||
|
- centos-8-x86_64
|
||||||
|
- oracle-7-x86_64
|
||||||
|
- debian-9-x86_64
|
||||||
|
- debian-10-x86_64
|
||||||
|
- ubuntu-1804-x86_64
|
||||||
|
- ubuntu-2004-x86_64
|
||||||
|
- sles-12-x86_64
|
||||||
|
- sles-15-x86_64
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
require 'spec_helper_acceptance'
|
# frozen_string_literal: true
|
||||||
|
|
||||||
include Unix::File
|
require 'spec_helper_acceptance'
|
||||||
|
require 'pry'
|
||||||
|
|
||||||
java_class_jre = "class { 'java':\n"\
|
java_class_jre = "class { 'java':\n"\
|
||||||
" distribution => 'jre',\n"\
|
" distribution => 'jre',\n"\
|
||||||
@@ -22,14 +23,6 @@ _sun_jdk = "class { 'java':\n"\
|
|||||||
" distribution => 'sun-jdk',\n"\
|
" distribution => 'sun-jdk',\n"\
|
||||||
'}'
|
'}'
|
||||||
|
|
||||||
oracle_jre = "class { 'java':\n"\
|
|
||||||
" distribution => 'oracle-jre',\n"\
|
|
||||||
'}'
|
|
||||||
|
|
||||||
oracle_jdk = "class { 'java':\n"\
|
|
||||||
" distribution => 'oracle-jdk',\n"\
|
|
||||||
'}'
|
|
||||||
|
|
||||||
blank_version = "class { 'java':\n"\
|
blank_version = "class { 'java':\n"\
|
||||||
" version => '',\n"\
|
" version => '',\n"\
|
||||||
'}'
|
'}'
|
||||||
@@ -105,89 +98,187 @@ install_oracle_jdk_jce = <<EOL
|
|||||||
}
|
}
|
||||||
EOL
|
EOL
|
||||||
|
|
||||||
context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
# AdoptOpenJDK URLs are quite generic, so tests are enabled by default
|
||||||
it 'installs jre' do
|
# We need to test version 8 and >8 (here we use 9), because namings are different after version 8
|
||||||
idempotent_apply(default, java_class_jre)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'installing java jdk', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
adopt_enabled = true unless os[:family].casecmp('SLES').zero?
|
||||||
it 'installs jdk' do
|
adopt_version8_major = '8'
|
||||||
idempotent_apply(default, java_class)
|
adopt_version8_minor = '202'
|
||||||
end
|
adopt_version8_build = '08'
|
||||||
end
|
adopt_version9_major = '9'
|
||||||
|
adopt_version9_full = '9.0.4'
|
||||||
|
adopt_version9_build = '11'
|
||||||
|
|
||||||
context 'oracle', if: (
|
install_adopt_jdk_jre = <<EOL
|
||||||
(fact('operatingsystem') == 'Ubuntu') && fact('operatingsystemrelease').match(%r{^14\.04})
|
java::adopt {
|
||||||
) do
|
'test_adopt_jre_version8':
|
||||||
# not supported
|
version => '#{adopt_version8_major}',
|
||||||
# The package is not available from any sources, but if a customer
|
version_major => '#{adopt_version8_major}u#{adopt_version8_minor}',
|
||||||
# custom-builds the package using java-package and adds it to a local
|
version_minor => 'b#{adopt_version8_build}',
|
||||||
# repository, that is the intention of this version ability
|
java => 'jre',
|
||||||
describe 'jre' do
|
}
|
||||||
it 'installs oracle-jre' do
|
java::adopt {
|
||||||
apply_manifest(oracle_jre, expect_failures: true)
|
'test_adopt_jdk_version8':
|
||||||
|
version => '#{adopt_version8_major}',
|
||||||
|
version_major => '#{adopt_version8_major}u#{adopt_version8_minor}',
|
||||||
|
version_minor => 'b#{adopt_version8_build}',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
java::adopt {
|
||||||
|
'test_adopt_jre_version9':
|
||||||
|
version => '#{adopt_version9_major}',
|
||||||
|
version_major => '#{adopt_version9_full}',
|
||||||
|
version_minor => '#{adopt_version9_build}',
|
||||||
|
java => 'jre',
|
||||||
|
}
|
||||||
|
java::adopt {
|
||||||
|
'test_adopt_jdk_version9':
|
||||||
|
version => '#{adopt_version9_major}',
|
||||||
|
version_major => '#{adopt_version9_full}',
|
||||||
|
version_minor => '#{adopt_version9_build}',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
EOL
|
||||||
|
|
||||||
|
sap_enabled = true
|
||||||
|
sap_version7 = '7'
|
||||||
|
sap_version7_full = '7.1.072'
|
||||||
|
sap_version8 = '8'
|
||||||
|
sap_version8_full = '8.1.065'
|
||||||
|
sap_version11 = '11'
|
||||||
|
sap_version11_full = '11.0.7'
|
||||||
|
sap_version14 = '14'
|
||||||
|
sap_version14_full = '14.0.1'
|
||||||
|
|
||||||
|
install_sap_jdk_jre = <<EOL
|
||||||
|
java::sap {
|
||||||
|
'test_sap_jdk_version7':
|
||||||
|
version => '#{sap_version7}',
|
||||||
|
version_full => '#{sap_version7_full}',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
java::sap {
|
||||||
|
'test_sap_jdk_version8':
|
||||||
|
version => '#{sap_version8}',
|
||||||
|
version_full => '#{sap_version8_full}',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
java::sap {
|
||||||
|
'test_sap_jre_version11':
|
||||||
|
version => '#{sap_version11}',
|
||||||
|
version_full => '#{sap_version11_full}',
|
||||||
|
java => 'jre',
|
||||||
|
}
|
||||||
|
java::sap {
|
||||||
|
'test_sap_jdk_version11':
|
||||||
|
version => '#{sap_version11}',
|
||||||
|
version_full => '#{sap_version11_full}',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
java::sap {
|
||||||
|
'test_sap_jre_version14':
|
||||||
|
version => '#{sap_version14}',
|
||||||
|
version_full => '#{sap_version14_full}',
|
||||||
|
java => 'jre',
|
||||||
|
}
|
||||||
|
java::sap {
|
||||||
|
'test_sap_jdk_version14':
|
||||||
|
version => '#{sap_version14}',
|
||||||
|
version_full => '#{sap_version14_full}',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
EOL
|
||||||
|
|
||||||
|
describe 'installing' do
|
||||||
|
context 'installing java jre' do
|
||||||
|
it 'installs jre' do
|
||||||
|
idempotent_apply(java_class_jre)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe 'jdk' do
|
|
||||||
it 'installs oracle-jdk' do
|
context 'installing java jdk' do
|
||||||
apply_manifest(oracle_jdk, expect_failures: true)
|
it 'installs jdk' do
|
||||||
|
idempotent_apply(java_class)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with failure cases' do
|
||||||
|
it 'fails to install java with a blank version' do
|
||||||
|
apply_manifest(blank_version, expect_failures: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'fails to install java with an incorrect distribution' do
|
||||||
|
apply_manifest(incorrect_distro, expect_failures: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'fails to install java with a blank distribution' do
|
||||||
|
apply_manifest(blank_distro, expect_failures: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'fails to install java with an incorrect package' do
|
||||||
|
apply_manifest(incorrect_package, expect_failures: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'fails on debian or RHEL when passed fake java_alternative and path' do
|
||||||
|
if os[:family] == 'sles'
|
||||||
|
apply_manifest(bogus_alternative, catch_failures: true)
|
||||||
|
else
|
||||||
|
apply_manifest(bogus_alternative, expect_failures: true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'java::oracle', if: oracle_enabled, unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||||
|
let(:install_path) do
|
||||||
|
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:version_suffix) do
|
||||||
|
(os[:family] == 'redhat') ? '-amd64' : ''
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'installs oracle jdk and jre' do
|
||||||
|
idempotent_apply(install_oracle_jdk_jre)
|
||||||
|
jdk_result = shell("test ! -e #{install_path}/jdk1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/jre/lib/security/local_policy.jar")
|
||||||
|
jre_result = shell("test ! -e #{install_path}/jre1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/lib/security/local_policy.jar")
|
||||||
|
expect(jdk_result.exit_code).to eq(0)
|
||||||
|
expect(jre_result.exit_code).to eq(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'installs oracle jdk with jce' do
|
||||||
|
idempotent_apply(install_oracle_jdk_jce)
|
||||||
|
result = shell("test -e #{install_path}/jdk1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/jre/lib/security/local_policy.jar")
|
||||||
|
expect(result.exit_code).to eq(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'installs oracle jre with jce' do
|
||||||
|
idempotent_apply(install_oracle_jre_jce)
|
||||||
|
result = shell("test -e #{install_path}/jre1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/lib/security/local_policy.jar")
|
||||||
|
expect(result.exit_code).to eq(0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'java::adopt', if: adopt_enabled, unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||||
|
let(:install_path) do
|
||||||
|
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:version_suffix) do
|
||||||
|
(os[:family] == 'redhat') ? '-amd64' : ''
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'installs adopt jdk and jre' do
|
||||||
|
idempotent_apply(install_adopt_jdk_jre)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'java::adopt', if: sap_enabled && ['Sles'].include?(os[:family]), unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||||
|
let(:install_path) do
|
||||||
|
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'installs adopt jdk and jre' do
|
||||||
|
idempotent_apply(install_sap_jdk_jre)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with failure cases' do
|
|
||||||
it 'fails to install java with a blank version' do
|
|
||||||
apply_manifest(blank_version, expect_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'fails to install java with an incorrect distribution' do
|
|
||||||
apply_manifest(incorrect_distro, expect_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'fails to install java with a blank distribution' do
|
|
||||||
apply_manifest(blank_distro, expect_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'fails to install java with an incorrect package' do
|
|
||||||
apply_manifest(incorrect_package, expect_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'fails on debian or RHEL when passed fake java_alternative and path' do
|
|
||||||
if fact('osfamily') == 'Debian' || fact('osfamily') == 'RedHat'
|
|
||||||
apply_manifest(bogus_alternative, expect_failures: true)
|
|
||||||
else
|
|
||||||
apply_manifest(bogus_alternative, catch_failures: true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'java::oracle', if: oracle_enabled, unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
|
||||||
let(:install_path) do
|
|
||||||
(fact('osfamily') == 'RedHat') ? '/usr/java' : '/usr/lib/jvm'
|
|
||||||
end
|
|
||||||
|
|
||||||
let(:version_suffix) do
|
|
||||||
(fact('osfamily') == 'RedHat') ? '-amd64' : ''
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'installs oracle jdk and jre' do
|
|
||||||
idempotent_apply(default, install_oracle_jdk_jre)
|
|
||||||
jdk_result = shell("test ! -e #{install_path}/jdk1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/jre/lib/security/local_policy.jar")
|
|
||||||
jre_result = shell("test ! -e #{install_path}/jre1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/lib/security/local_policy.jar")
|
|
||||||
expect(jdk_result.exit_code).to eq(0)
|
|
||||||
expect(jre_result.exit_code).to eq(0)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'installs oracle jdk with jce' do
|
|
||||||
idempotent_apply(default, install_oracle_jdk_jce)
|
|
||||||
result = shell("test -e #{install_path}/jdk1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/jre/lib/security/local_policy.jar")
|
|
||||||
expect(result.exit_code).to eq(0)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'installs oracle jre with jce' do
|
|
||||||
idempotent_apply(default, install_oracle_jre_jce)
|
|
||||||
result = shell("test -e #{install_path}/jre1.#{oracle_version_major}.0_#{oracle_version_minor}#{version_suffix}/lib/security/local_policy.jar")
|
|
||||||
expect(result.exit_code).to eq(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
centos-7-x64:
|
|
||||||
roles:
|
|
||||||
- agent
|
|
||||||
- default
|
|
||||||
platform: el-7-x86_64
|
|
||||||
hypervisor: vagrant
|
|
||||||
box: puppetlabs/centos-7.2-64-nocm
|
|
||||||
CONFIG:
|
|
||||||
type: foss
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
debian-8-x64:
|
|
||||||
roles:
|
|
||||||
- agent
|
|
||||||
- default
|
|
||||||
platform: debian-8-amd64
|
|
||||||
hypervisor: vagrant
|
|
||||||
box: puppetlabs/debian-8.2-64-nocm
|
|
||||||
CONFIG:
|
|
||||||
type: foss
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
ubuntu-1404-x64:
|
|
||||||
roles:
|
|
||||||
- agent
|
|
||||||
- default
|
|
||||||
platform: ubuntu-14.04-amd64
|
|
||||||
hypervisor: vagrant
|
|
||||||
box: puppetlabs/ubuntu-14.04-64-nocm
|
|
||||||
CONFIG:
|
|
||||||
type: foss
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
centos-7-x64:
|
|
||||||
platform: el-7-x86_64
|
|
||||||
hypervisor: docker
|
|
||||||
image: centos:7
|
|
||||||
docker_preserve_image: true
|
|
||||||
docker_cmd: '["/usr/sbin/init"]'
|
|
||||||
# install various tools required to get the image up to usable levels
|
|
||||||
docker_image_commands:
|
|
||||||
- 'yum install -y crontabs tar wget openssl sysvinit-tools iproute which initscripts'
|
|
||||||
CONFIG:
|
|
||||||
trace_limit: 200
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
debian-8-x64:
|
|
||||||
platform: debian-8-amd64
|
|
||||||
hypervisor: docker
|
|
||||||
image: debian:8
|
|
||||||
docker_preserve_image: true
|
|
||||||
docker_cmd: '["/sbin/init"]'
|
|
||||||
docker_image_commands:
|
|
||||||
- 'apt-get update && apt-get install -y net-tools wget locales strace lsof && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen'
|
|
||||||
CONFIG:
|
|
||||||
trace_limit: 200
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
ubuntu-1404-x64:
|
|
||||||
platform: ubuntu-14.04-amd64
|
|
||||||
hypervisor: docker
|
|
||||||
image: ubuntu:14.04
|
|
||||||
docker_preserve_image: true
|
|
||||||
docker_cmd: '["/sbin/init"]'
|
|
||||||
docker_image_commands:
|
|
||||||
# ensure that upstart is booting correctly in the container
|
|
||||||
- 'rm /usr/sbin/policy-rc.d && rm /sbin/initctl && dpkg-divert --rename --remove /sbin/initctl && apt-get update && apt-get install -y net-tools wget && locale-gen en_US.UTF-8'
|
|
||||||
CONFIG:
|
|
||||||
trace_limit: 200
|
|
||||||
@@ -1,36 +1,38 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'java', type: :class do
|
describe 'java', type: :class do
|
||||||
context 'when select openjdk for Centos 5.8' do
|
context 'when select openjdk for CentOS 5.8' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.8', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.8' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.6.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select openjdk for Centos 6.3' do
|
context 'when select openjdk for CentOS 6.3' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.3' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select openjdk for Centos 7.1.1503' do
|
context 'when select openjdk for CentOS 7.1.1503' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '7.1.1503', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '7.1.1503' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select openjdk for Centos 6.2' do
|
context 'when select openjdk for CentOS 6.2' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.2' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select Oracle JRE with alternatives for Centos 6.3' do
|
context 'when select Oracle JRE with alternatives for CentOS 6.3' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.3' }, architecture: 'x86_64' } } }
|
||||||
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } }
|
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_package('java').with_name('jre') }
|
||||||
@@ -38,23 +40,39 @@ describe 'java', type: :class do
|
|||||||
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('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select passed value for Centos 5.3' do
|
context 'when select passed value for CentOS 5.3' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.3' }, architecture: 'x86_64' } } }
|
||||||
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }
|
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('jdk') }
|
it { is_expected.to contain_package('java').with_name('jdk') }
|
||||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select default for Centos 5.3' do
|
context 'when select default for CentOS 5.3' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Centos', operatingsystemrelease: '5.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.3' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
it { is_expected.not_to contain_exec('update-java-alternatives') }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when select jdk for Debian Buster (10.0)' do
|
||||||
|
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'buster' }, release: { major: '10' }, architecture: 'amd64' } } }
|
||||||
|
let(:params) { { 'distribution' => 'jdk' } }
|
||||||
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
|
||||||
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when select jre for Debian Buster (10.0)' do
|
||||||
|
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'buster' }, release: { major: '10' }, architecture: 'amd64' } } }
|
||||||
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
|
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
|
||||||
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
|
||||||
|
end
|
||||||
|
|
||||||
context 'when select jdk for Ubuntu Trusty (14.04)' do
|
context 'when select jdk for Ubuntu Trusty (14.04)' do
|
||||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'trusty', operatingsystemrelease: '14.04', architecture: 'amd64' } }
|
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'trusty' }, release: { major: '14.04' }, architecture: 'amd64' } } }
|
||||||
let(:params) { { 'distribution' => 'jdk' } }
|
let(:params) { { 'distribution' => 'jdk' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
||||||
@@ -62,7 +80,7 @@ describe 'java', type: :class do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when select jre for Ubuntu Trusty (14.04)' do
|
context 'when select jre for Ubuntu Trusty (14.04)' do
|
||||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'trusty', operatingsystemrelease: '14.04', architecture: 'amd64' } }
|
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'trusty' }, release: { major: '14.04' }, architecture: 'amd64' } } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
|
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
|
||||||
@@ -70,7 +88,7 @@ describe 'java', type: :class do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when select jdk for Ubuntu xenial (16.04) on ARM' do
|
context 'when select jdk for Ubuntu xenial (16.04) on ARM' do
|
||||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'xenial', operatingsystemrelease: '16.04', architecture: 'armv7l' } }
|
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'xenial' }, release: { major: '16.04' }, architecture: 'armv7l' } } }
|
||||||
let(:params) { { 'distribution' => 'jdk' } }
|
let(:params) { { 'distribution' => 'jdk' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||||
@@ -78,7 +96,7 @@ describe 'java', type: :class do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when select jdk for Ubuntu xenial (16.04) on ARM64' do
|
context 'when select jdk for Ubuntu xenial (16.04) on ARM64' do
|
||||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Ubuntu', lsbdistcodename: 'xenial', operatingsystemrelease: '16.04', architecture: 'aarch64' } }
|
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'xenial' }, release: { major: '16.04' }, architecture: 'aarch64' } } }
|
||||||
let(:params) { { 'distribution' => 'jdk' } }
|
let(:params) { { 'distribution' => 'jdk' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||||
@@ -86,26 +104,26 @@ describe 'java', type: :class do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when select openjdk for Oracle Linux' do
|
context 'when select openjdk for Oracle Linux' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '6.4' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select openjdk for Oracle Linux 6.2' do
|
context 'when select openjdk for Oracle Linux 6.2' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.2', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '6.2' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select passed value for Oracle Linux' do
|
context 'when select passed value for Oracle Linux' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'OracleLinux', operatingsystemrelease: '6.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '6.3' }, architecture: 'x86_64' } } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select passed value for Scientific Linux' do
|
context 'when select passed value for Scientific Linux' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'Scientific', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'Scientific', release: { full: '6.4' }, architecture: 'x86_64' } } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
@@ -113,7 +131,7 @@ describe 'java', type: :class do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when select passed value for Scientific Linux CERN (SLC)' do
|
context 'when select passed value for Scientific Linux CERN (SLC)' do
|
||||||
let(:facts) { { osfamily: 'RedHat', operatingsystem: 'SLC', operatingsystemrelease: '6.4', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'RedHat', name: 'SLC', release: { full: '6.4' }, architecture: 'x86_64' } } }
|
||||||
let(:params) { { 'distribution' => 'jre' } }
|
let(:params) { { 'distribution' => 'jre' } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
|
||||||
@@ -121,47 +139,47 @@ describe 'java', type: :class do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when select default for OpenSUSE 12.3' do
|
context 'when select default for OpenSUSE 12.3' do
|
||||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'OpenSUSE', operatingsystemrelease: '12.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'Suse', name: 'OpenSUSE', release: { major: '12.3' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select default for SLES 11.3' do
|
context 'when select default for SLES 11.3' do
|
||||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.3', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '11.3' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1_6_0-ibm-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1_6_0-ibm-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.6.0-ibm-1.6.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select default for SLES 11.4' do
|
context 'when select default for SLES 11.4' do
|
||||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '11.4', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '11.4' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1_7_1-ibm-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1_7_1-ibm-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.1-ibm-1.7.1/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select default for SLES 12.0' do
|
context 'when select default for SLES 12.0' do
|
||||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.0', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '12.0', major: '12' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when select default for SLES 12.1' do
|
context 'when select default for SLES 12.1' do
|
||||||
let(:facts) { { osfamily: 'Suse', operatingsystem: 'SLES', operatingsystemrelease: '12.1', operatingsystemmajrelease: '12', architecture: 'x86_64' } }
|
let(:facts) { { os: { family: 'Suse', name: 'SLES', release: { full: '12.1', major: '12' }, architecture: 'x86_64' } } }
|
||||||
|
|
||||||
it { is_expected.to contain_package('java').with_name('java-1_8_0-openjdk-devel') }
|
it { is_expected.to contain_package('java').with_name('java-1_8_0-openjdk-devel') }
|
||||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') }
|
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/') }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'custom java package' do
|
describe 'custom java package' do
|
||||||
let(:facts) { { osfamily: 'Debian', operatingsystem: 'Debian', lsbdistcodename: 'jessie', operatingsystemrelease: '8.6', architecture: 'amd64' } }
|
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'jessie' }, release: { major: '8' }, architecture: 'amd64' } } }
|
||||||
|
|
||||||
context 'when all params provided' do
|
context 'when all params provided' do
|
||||||
let(:params) do
|
let(:params) do
|
||||||
{
|
{
|
||||||
'distribution' => 'custom',
|
'distribution' => 'custom',
|
||||||
'package' => 'custom_jdk',
|
'package' => 'custom_jdk',
|
||||||
'java_alternative' => 'java-custom_jdk',
|
'java_alternative' => 'java-custom_jdk',
|
||||||
'java_alternative_path' => '/opt/custom_jdk/bin/java',
|
'java_alternative_path' => '/opt/custom_jdk/bin/java',
|
||||||
@@ -190,34 +208,44 @@ describe 'java', type: :class do
|
|||||||
describe 'incompatible OSs' do
|
describe 'incompatible OSs' do
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
osfamily: 'windows',
|
os: {
|
||||||
operatingsystem: 'windows',
|
family: 'windows',
|
||||||
operatingsystemrelease: '8.1',
|
name: 'windows',
|
||||||
|
release: { full: '8.1' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
osfamily: 'Darwin',
|
os: {
|
||||||
operatingsystem: 'Darwin',
|
family: 'Darwin',
|
||||||
operatingsystemrelease: '13.3.0',
|
name: 'Darwin',
|
||||||
|
release: { full: '13.3.0' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
osfamily: 'AIX',
|
os: {
|
||||||
operatingsystem: 'AIX',
|
family: 'AIX',
|
||||||
operatingsystemrelease: '7100-02-00-000',
|
name: 'AIX',
|
||||||
|
release: { full: '7100-02-00-000' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
osfamily: 'AIX',
|
os: {
|
||||||
operatingsystem: 'AIX',
|
family: 'AIX',
|
||||||
operatingsystemrelease: '6100-07-04-1216',
|
name: 'AIX',
|
||||||
|
release: { full: '6100-07-04-1216' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
osfamily: 'AIX',
|
os: {
|
||||||
operatingsystem: 'AIX',
|
family: 'AIX',
|
||||||
operatingsystemrelease: '5300-12-01-1016',
|
name: 'AIX',
|
||||||
|
release: { full: '5300-12-01-1016' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
].each do |facts|
|
].each do |facts|
|
||||||
let(:facts) { facts }
|
let(:facts) { facts }
|
||||||
|
|
||||||
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
|
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||||
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,5 +3,6 @@
|
|||||||
# Facts specified here will override the values provided by rspec-puppet-facts.
|
# Facts specified here will override the values provided by rspec-puppet-facts.
|
||||||
---
|
---
|
||||||
ipaddress: "172.16.254.254"
|
ipaddress: "172.16.254.254"
|
||||||
|
ipaddress6: "FE80:0000:0000:0000:AAAA:AAAA:AAAA"
|
||||||
is_pe: false
|
is_pe: false
|
||||||
macaddress: "AA:AA:AA:AA:AA:AA"
|
macaddress: "AA:AA:AA:AA:AA:AA"
|
||||||
|
|||||||
360
spec/defines/adopt_spec.rb
Normal file
360
spec/defines/adopt_spec.rb
Normal file
@@ -0,0 +1,360 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'java::adopt', type: :define do
|
||||||
|
context 'with CentOS 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
||||||
|
|
||||||
|
context 'when manage_symlink is set to true' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '11',
|
||||||
|
java: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
manage_symlink: true,
|
||||||
|
symlink_name: 'java_home',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk11_symlink' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_file('/usr/java/java_home') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when manage_symlink is not set' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk11_nosymlink' }
|
||||||
|
|
||||||
|
it { is_expected.not_to contain_file('/usr/java/java_home') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 8 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 9 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '9', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 10 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '10', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 11 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 12 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '12', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 8 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '8', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 9 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '9', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 10 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '10', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 11 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 12 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '12', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when installing multiple versions' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version_major: '8u202',
|
||||||
|
version_minor: 'b08',
|
||||||
|
java: 'jdk',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
let(:pre_condition) do
|
||||||
|
<<-EOL
|
||||||
|
java::adopt {
|
||||||
|
'jdk8172':
|
||||||
|
ensure => 'present',
|
||||||
|
version_major => '8u172',
|
||||||
|
version_minor => 'b11',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
EOL
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to compile }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when specifying package_type tar.gz and basedir' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '8',
|
||||||
|
java: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
package_type: 'tar.gz',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||||
|
end
|
||||||
|
context 'when manage_basedir is set to true' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '8',
|
||||||
|
java: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
manage_basedir: true,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_file('/usr/java') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with Ubuntu 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 8 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK8U-jdk_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 9 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '9', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK9U-jdk_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 10 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '10', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK10U-jdk_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 11 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 12 JDK' do
|
||||||
|
let(:params) { { ensure: 'present', version: '12', java: 'jdk' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK12U-jdk_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 8 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '8', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 9 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '9', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK9U-jre_x64_linux_hotspot_9.0.4_11.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 10 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '10', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK10U-jre_x64_linux_hotspot_10.0.2_13.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 11 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK11U-jre_x64_linux_hotspot_11.0.2_9.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when AdoptOpenJDK Java 12 JRE' do
|
||||||
|
let(:params) { { ensure: 'present', version: '12', java: 'jre' } }
|
||||||
|
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').that_requires('Archive[/tmp/OpenJDK12U-jre_x64_linux_hotspot_12.0.1_12.tar.gz]') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when installing multiple versions' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version_major: '8u202',
|
||||||
|
version_minor: 'b08',
|
||||||
|
java: 'jdk',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
let(:pre_condition) do
|
||||||
|
<<-EOL
|
||||||
|
java::adopt {
|
||||||
|
'jdk8172':
|
||||||
|
ensure => 'present',
|
||||||
|
version_major => '8u172',
|
||||||
|
version_minor => 'b11',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
EOL
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to compile }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
describe 'incompatible OSes' do
|
||||||
|
[
|
||||||
|
{
|
||||||
|
kernel: 'Windows',
|
||||||
|
os: {
|
||||||
|
family: 'Windows',
|
||||||
|
name: 'Windows',
|
||||||
|
release: {
|
||||||
|
full: '8.1',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'Darwin',
|
||||||
|
os: {
|
||||||
|
family: 'Darwin',
|
||||||
|
name: 'Darwin',
|
||||||
|
release: {
|
||||||
|
full: '13.3.0',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '7100-02-00-000',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '6100-07-04-1216',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '5300-12-01-1016',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
].each do |facts|
|
||||||
|
let(:facts) { facts }
|
||||||
|
let(:title) { 'jdk' }
|
||||||
|
|
||||||
|
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||||
|
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
160
spec/defines/download_spec.rb
Normal file
160
spec/defines/download_spec.rb
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'java::download', type: :define do
|
||||||
|
let(:url) { 'http://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz' }
|
||||||
|
|
||||||
|
context 'with CentOS 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
||||||
|
|
||||||
|
context 'when passing URL to url parameter' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version_major: '8u201',
|
||||||
|
version_minor: 'b09',
|
||||||
|
java_se: 'jdk',
|
||||||
|
url: url,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it {
|
||||||
|
is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.rpm')
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when no url provided' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version_major: '8u201',
|
||||||
|
version_minor: 'b09',
|
||||||
|
java_se: 'jdk',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it {
|
||||||
|
is_expected.to raise_error Puppet::Error
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when manage_symlink is set to true' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '6',
|
||||||
|
java_se: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
manage_symlink: true,
|
||||||
|
symlink_name: 'java_home',
|
||||||
|
url: url,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk6' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_file('/usr/java/java_home') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when manage_symlink is not set' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '6',
|
||||||
|
java_se: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
url: url,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk6_nosymlink' }
|
||||||
|
|
||||||
|
it { is_expected.not_to contain_file('/usr/java/java_home') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with Ubuntu 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||||
|
|
||||||
|
context 'when passing URL to url parameter' do
|
||||||
|
let(:params) { { ensure: 'present', version_major: '8u201', version_minor: 'b09', java_se: 'jdk', url: url } }
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.tar.gz') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with Debian 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Debian', release: { full: '10.0' } } } }
|
||||||
|
|
||||||
|
context 'when passing URL to url parameter' do
|
||||||
|
let(:params) { { ensure: 'present', version_major: '8u201', version_minor: 'b09', java_se: 'jdk', url: url } }
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.tar.gz') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'incompatible OSes' do
|
||||||
|
[
|
||||||
|
{
|
||||||
|
kernel: 'Windows',
|
||||||
|
os: {
|
||||||
|
family: 'Windows',
|
||||||
|
name: 'Windows',
|
||||||
|
release: {
|
||||||
|
full: '8.1',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'Darwin',
|
||||||
|
os: {
|
||||||
|
family: 'Darwin',
|
||||||
|
name: 'Darwin',
|
||||||
|
release: {
|
||||||
|
full: '13.3.0',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '7100-02-00-000',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '6100-07-04-1216',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '5300-12-01-1016',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
].each do |facts|
|
||||||
|
let(:facts) { facts }
|
||||||
|
let(:title) { 'jdk' }
|
||||||
|
|
||||||
|
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||||
|
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,474 +0,0 @@
|
|||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz'
|
|
||||||
|
|
||||||
describe 'java::oracle', type: :define do
|
|
||||||
context 'with CentOS 64-bit' do
|
|
||||||
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 6 JDK' do
|
|
||||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64-rpm.bin') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6 6u45 b06').with_command('sh /tmp/jdk-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6 6u45 b06').that_requires('Archive[/tmp/jdk-6u45-linux-x64-rpm.bin]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 7 JDK' do
|
|
||||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk7' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7 7u80 b15').with_command('rpm --force -iv /tmp/jdk-7u80-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7 7u80 b15').that_requires('Archive[/tmp/jdk-7u80-linux-x64.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 8 JDK' do
|
|
||||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8 8u201 b09').with_command('rpm --force -iv /tmp/jdk-8u201-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8 8u201 b09').that_requires('Archive[/tmp/jdk-8u201-linux-x64.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 6 JRE' do
|
|
||||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre6' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64-rpm.bin') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6 6u45 b06').with_command('sh /tmp/jre-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6 6u45 b06').that_requires('Archive[/tmp/jre-6u45-linux-x64-rpm.bin]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 7 JRE' do
|
|
||||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre7' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7 7u80 b15').with_command('rpm --force -iv /tmp/jre-7u80-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7 7u80 b15').that_requires('Archive[/tmp/jre-7u80-linux-x64.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when select Oracle Java SE 8 JRE' do
|
|
||||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-8u201-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8 8u201 b09').with_command('rpm --force -iv /tmp/jre-8u201-linux-x64.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8 8u201 b09').that_requires('Archive[/tmp/jre-8u201-linux-x64.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when passing URL to url parameter' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version_major: '8u201',
|
|
||||||
version_minor: 'b09',
|
|
||||||
java_se: 'jdk',
|
|
||||||
url: 'http://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm',
|
|
||||||
url_hash: 'ignored',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it {
|
|
||||||
is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.rpm')
|
|
||||||
.with_source('http://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm')
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when passing a hash to url_hash parameter' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version_major: '8u201',
|
|
||||||
version_minor: 'b09',
|
|
||||||
java_se: 'jdk',
|
|
||||||
url_hash: '42970487e3af4f5aa5bca3f542482c60',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it {
|
|
||||||
is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.rpm')
|
|
||||||
.with_source('http://download.oracle.com/otn-pub/java/jdk//8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm')
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing multiple versions' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version_major: '8u201',
|
|
||||||
version_minor: 'b09',
|
|
||||||
java_se: 'jdk',
|
|
||||||
url_hash: '42970487e3af4f5aa5bca3f542482c60',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
let(:pre_condition) do
|
|
||||||
<<-EOL
|
|
||||||
java::oracle {
|
|
||||||
'jdk8121':
|
|
||||||
ensure => 'present',
|
|
||||||
version_major => '8u121',
|
|
||||||
version_minor => 'b13',
|
|
||||||
java_se => 'jdk',
|
|
||||||
url_hash => 'abcdef01234567890',
|
|
||||||
}
|
|
||||||
EOL
|
|
||||||
end
|
|
||||||
|
|
||||||
it { is_expected.to compile }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing Oracle Java SE 6 JRE with JCE' do
|
|
||||||
let(:params) { { ensure: 'present', jce: true, version: '6', version_major: '6u99', version_minor: '99', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre6jce' }
|
|
||||||
|
|
||||||
it do
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_source('http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip')
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_extract_path('/usr/java/jre1.6.0_99-amd64/lib/security')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing Oracle Java SE 6 JDK with JCE' do
|
|
||||||
let(:params) { { ensure: 'present', jce: true, version: '6', version_major: '6u99', version_minor: '99', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jre6jce' }
|
|
||||||
|
|
||||||
it do
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_source('http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip')
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_extract_path('/usr/java/jdk1.6.0_99-amd64/jre/lib/security')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when specifying package_type tar.gz and basedir' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version: '6',
|
|
||||||
java_se: 'jdk',
|
|
||||||
basedir: '/usr/java',
|
|
||||||
package_type: 'tar.gz',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
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 6u45 b06').with_command('tar -zxf /tmp/jdk-6u45-linux-x64.tar.gz -C /usr/java') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6 6u45 b06').that_requires('Archive[/tmp/jdk-6u45-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
context 'when manage_basedir is set to true' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version: '6',
|
|
||||||
java_se: 'jdk',
|
|
||||||
basedir: '/usr/java',
|
|
||||||
manage_basedir: true,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_file('/usr/java') }
|
|
||||||
end
|
|
||||||
context 'when manage_symlink is set to true' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version: '6',
|
|
||||||
java_se: 'jdk',
|
|
||||||
basedir: '/usr/java',
|
|
||||||
manage_symlink: true,
|
|
||||||
symlink_name: 'java_home',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_file('/usr/java/java_home') }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when on CentOS 32-bit' do
|
|
||||||
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'i386', name: 'CentOS', release: { full: '6.6' } } } }
|
|
||||||
|
|
||||||
context 'when selecting Oracle Java SE 6 JDK on RedHat family, 32-bit' do
|
|
||||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-i586-rpm.bin') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6 6u45 b06').with_command('sh /tmp/jdk-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 6 6u45 b06').that_requires('Archive[/tmp/jdk-6u45-linux-i586-rpm.bin]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when selecting Oracle Java SE 7 JDK on RedHat family, 32-bit' do
|
|
||||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk7' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7 7u80 b15').with_command('rpm --force -iv /tmp/jdk-7u80-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 7 7u80 b15').that_requires('Archive[/tmp/jdk-7u80-linux-i586.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when selecting Oracle Java SE 8 JDK on RedHat family, 32-bit' do
|
|
||||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u201-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8 8u201 b09').with_command('rpm --force -iv /tmp/jdk-8u201-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8 8u201 b09').that_requires('Archive[/tmp/jdk-8u201-linux-i586.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when selecting Oracle Java SE 6 JRE on RedHat family, 32-bit' do
|
|
||||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-i586-rpm.bin') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6 6u45 b06').with_command('sh /tmp/jre-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 6 6u45 b06').that_requires('Archive[/tmp/jre-6u45-linux-i586-rpm.bin]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when select Oracle Java SE 7 JRE on RedHat family, 32-bit' do
|
|
||||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jdk7' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7 7u80 b15').with_command('rpm --force -iv /tmp/jre-7u80-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 7 7u80 b15').that_requires('Archive[/tmp/jre-7u80-linux-i586.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when select Oracle Java SE 8 JRE on RedHat family, 32-bit' do
|
|
||||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-8u201-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8 8u201 b09').with_command('rpm --force -iv /tmp/jre-8u201-linux-i586.rpm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8 8u201 b09').that_requires('Archive[/tmp/jre-8u201-linux-i586.rpm]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing multiple versions' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version_major: '8u201',
|
|
||||||
version_minor: 'b09',
|
|
||||||
java_se: 'jdk',
|
|
||||||
url_hash: '42970487e3af4f5aa5bca3f542482c60',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
let(:pre_condition) do
|
|
||||||
<<-EOL
|
|
||||||
java::oracle {
|
|
||||||
'jdk8121':
|
|
||||||
ensure => 'present',
|
|
||||||
version_major => '8u121',
|
|
||||||
version_minor => 'b13',
|
|
||||||
java_se => 'jdk',
|
|
||||||
url_hash => 'abcdef01234567890',
|
|
||||||
}
|
|
||||||
EOL
|
|
||||||
end
|
|
||||||
|
|
||||||
it { is_expected.to compile }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing Oracle Java SE 6 JRE with JCE' do
|
|
||||||
let(:params) { { ensure: 'present', jce: true, version: '6', version_major: '6u99', version_minor: '99', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre6jce' }
|
|
||||||
|
|
||||||
it do
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_source('http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip')
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_extract_path('/usr/java/jre1.6.0_99-amd64/lib/security')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing Oracle Java SE 6 JDK with JCE' do
|
|
||||||
let(:params) { { ensure: 'present', jce: true, version: '6', version_major: '6u99', version_minor: '99', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jre6jce' }
|
|
||||||
|
|
||||||
it do
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_source('http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip')
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_extract_path('/usr/java/jdk1.6.0_99-amd64/jre/lib/security')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with Ubuntu 64-bit' do
|
|
||||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 6 JDK' do
|
|
||||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk6' }
|
|
||||||
|
|
||||||
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 6u45 b06').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 6u45 b06').that_requires('Archive[/tmp/jdk-6u45-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with Oracle Java SE 7 JDK' do
|
|
||||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk7' }
|
|
||||||
|
|
||||||
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 7u80 b15').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 7u80 b15').that_requires('Archive[/tmp/jdk-7u80-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with Oracle Java SE 8 JDK' do
|
|
||||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.tar.gz') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8 8u201 b09').with_command('tar -zxf /tmp/jdk-8u201-linux-x64.tar.gz -C /usr/lib/jvm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jdk 8 8u201 b09').that_requires('Archive[/tmp/jdk-8u201-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with Oracle Java SE 6 JRE' do
|
|
||||||
let(:params) { { ensure: 'present', version: '6', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre6' }
|
|
||||||
|
|
||||||
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 6u45 b06').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 6u45 b06').that_requires('Archive[/tmp/jre-6u45-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 7 JRE' do
|
|
||||||
let(:params) { { ensure: 'present', version: '7', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre7' }
|
|
||||||
|
|
||||||
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 7u80 b15').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 7u80 b15').that_requires('Archive[/tmp/jre-7u80-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when Oracle Java SE 8 JRE' do
|
|
||||||
let(:params) { { ensure: 'present', version: '8', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jre-8u201-linux-x64.tar.gz') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8 8u201 b09').with_command('tar -zxf /tmp/jre-8u201-linux-x64.tar.gz -C /usr/lib/jvm') }
|
|
||||||
it { is_expected.to contain_exec('Install Oracle java_se jre 8 8u201 b09').that_requires('Archive[/tmp/jre-8u201-linux-x64.tar.gz]') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when passing URL to url parameter' do
|
|
||||||
let(:params) { { ensure: 'present', version_major: '8u201', version_minor: 'b09', java_se: 'jdk', url: oracle_url.to_s } }
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
it { is_expected.to contain_archive('/tmp/jdk-8u201-linux-x64.tar.gz') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing multiple versions' do
|
|
||||||
let(:params) do
|
|
||||||
{
|
|
||||||
ensure: 'present',
|
|
||||||
version_major: '8u201',
|
|
||||||
version_minor: 'b09',
|
|
||||||
java_se: 'jdk',
|
|
||||||
url_hash: '42970487e3af4f5aa5bca3f542482c60',
|
|
||||||
}
|
|
||||||
end
|
|
||||||
let(:title) { 'jdk8' }
|
|
||||||
|
|
||||||
let(:pre_condition) do
|
|
||||||
<<-EOL
|
|
||||||
java::oracle {
|
|
||||||
'jdk8121':
|
|
||||||
ensure => 'present',
|
|
||||||
version_major => '8u121',
|
|
||||||
version_minor => 'b13',
|
|
||||||
java_se => 'jdk',
|
|
||||||
url_hash => 'abcdef01234567890',
|
|
||||||
}
|
|
||||||
EOL
|
|
||||||
end
|
|
||||||
|
|
||||||
it { is_expected.to compile }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing Oracle Java SE 6 JRE with JCE' do
|
|
||||||
let(:params) { { ensure: 'present', jce: true, version: '6', version_major: '6u99', version_minor: '99', java_se: 'jre' } }
|
|
||||||
let(:title) { 'jre6jce' }
|
|
||||||
|
|
||||||
it do
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_source('http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip')
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_extract_path('/usr/lib/jvm/jre1.6.0_99/lib/security')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when installing Oracle Java SE 6 JDK with JCE' do
|
|
||||||
let(:params) { { ensure: 'present', jce: true, version: '6', version_major: '6u99', version_minor: '99', java_se: 'jdk' } }
|
|
||||||
let(:title) { 'jre6jce' }
|
|
||||||
|
|
||||||
it do
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_source('http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip')
|
|
||||||
is_expected.to contain_archive('/tmp/jce-6.zip').with_extract_path('/usr/lib/jvm/jdk1.6.0_99/jre/lib/security')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
describe 'incompatible OSes' do
|
|
||||||
[
|
|
||||||
{
|
|
||||||
kernel: 'Windows',
|
|
||||||
os: {
|
|
||||||
family: 'Windows',
|
|
||||||
name: 'Windows',
|
|
||||||
release: {
|
|
||||||
full: '8.1',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
kernel: 'Darwin',
|
|
||||||
os: {
|
|
||||||
family: 'Darwin',
|
|
||||||
name: 'Darwin',
|
|
||||||
release: {
|
|
||||||
full: '13.3.0',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
kernel: 'AIX',
|
|
||||||
os: {
|
|
||||||
family: 'AIX',
|
|
||||||
name: 'AIX',
|
|
||||||
release: {
|
|
||||||
full: '7100-02-00-000',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
kernel: 'AIX',
|
|
||||||
os: {
|
|
||||||
family: 'AIX',
|
|
||||||
name: 'AIX',
|
|
||||||
release: {
|
|
||||||
full: '6100-07-04-1216',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
kernel: 'AIX',
|
|
||||||
os: {
|
|
||||||
family: 'AIX',
|
|
||||||
name: 'AIX',
|
|
||||||
release: {
|
|
||||||
full: '5300-12-01-1016',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
].each do |facts|
|
|
||||||
let(:facts) { facts }
|
|
||||||
let(:title) { 'jdk' }
|
|
||||||
|
|
||||||
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
|
||||||
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
257
spec/defines/sap_spec.rb
Normal file
257
spec/defines/sap_spec.rb
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'java::sap', type: :define do
|
||||||
|
context 'with CentOS 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
||||||
|
|
||||||
|
context 'when manage_symlink is set to true' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '11',
|
||||||
|
java: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
manage_symlink: true,
|
||||||
|
symlink_name: 'java_home',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk11_symlink' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_file('/usr/java/java_home') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when manage_symlink is not set' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk11_nosymlink' }
|
||||||
|
|
||||||
|
it { is_expected.not_to contain_file('/usr/java/java_home') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapjvm 7' do
|
||||||
|
let(:params) { { ensure: 'present', version: '7', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk7' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapjvm-7.1.072-linux-x64.zip') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapjvm 8' do
|
||||||
|
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapjvm-8.1.065-linux-x64.zip') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 11 jdk' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk11' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jdk-11.0.7_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 11 jre' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jre' } }
|
||||||
|
let(:title) { 'jre11' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jre-11.0.7_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 14 jdk' do
|
||||||
|
let(:params) { { ensure: 'present', version: '14', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk14' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jdk-14.0.1_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 14 jre' do
|
||||||
|
let(:params) { { ensure: 'present', version: '14', java: 'jre' } }
|
||||||
|
let(:title) { 'jre14' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jre-14.0.1_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when installing multiple versions' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version_full: '11.0.7',
|
||||||
|
java: 'jdk',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk1107' }
|
||||||
|
|
||||||
|
let(:pre_condition) do
|
||||||
|
<<-EOL
|
||||||
|
java::sap {
|
||||||
|
'jdk1106':
|
||||||
|
ensure => 'present',
|
||||||
|
version_full => '11.0.6',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
EOL
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to compile }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when specifying basedir' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '8',
|
||||||
|
java: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapjvm-8.1.065-linux-x64.zip') }
|
||||||
|
end
|
||||||
|
context 'when manage_basedir is set to true' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version: '8',
|
||||||
|
java: 'jdk',
|
||||||
|
basedir: '/usr/java',
|
||||||
|
manage_basedir: true,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_file('/usr/java') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with Ubuntu 64-bit' do
|
||||||
|
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||||
|
|
||||||
|
context 'when sapjvm 7' do
|
||||||
|
let(:params) { { ensure: 'present', version: '7', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk7' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapjvm-7.1.072-linux-x64.zip') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapjvm 8' do
|
||||||
|
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk8' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapjvm-8.1.065-linux-x64.zip') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 11 jdk' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk11' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jdk-11.0.7_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 11 jre' do
|
||||||
|
let(:params) { { ensure: 'present', version: '11', java: 'jre' } }
|
||||||
|
let(:title) { 'jre11' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jre-11.0.7_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 14 jdk' do
|
||||||
|
let(:params) { { ensure: 'present', version: '14', java: 'jdk' } }
|
||||||
|
let(:title) { 'jdk14' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jdk-14.0.1_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when sapmachine 14 jre' do
|
||||||
|
let(:params) { { ensure: 'present', version: '14', java: 'jre' } }
|
||||||
|
let(:title) { 'jre14' }
|
||||||
|
|
||||||
|
it { is_expected.to contain_archive('/tmp/sapmachine-jre-14.0.1_linux-x64_bin.tar.gz') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when installing multiple versions' do
|
||||||
|
let(:params) do
|
||||||
|
{
|
||||||
|
ensure: 'present',
|
||||||
|
version_full: '11.0.7',
|
||||||
|
java: 'jdk',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:title) { 'jdk1107' }
|
||||||
|
|
||||||
|
let(:pre_condition) do
|
||||||
|
<<-EOL
|
||||||
|
java::sap {
|
||||||
|
'jdk1106':
|
||||||
|
ensure => 'present',
|
||||||
|
version_full => '11.0.6',
|
||||||
|
java => 'jdk',
|
||||||
|
}
|
||||||
|
EOL
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to compile }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
describe 'incompatible OSes' do
|
||||||
|
[
|
||||||
|
{
|
||||||
|
kernel: 'Windows',
|
||||||
|
os: {
|
||||||
|
family: 'Windows',
|
||||||
|
name: 'Windows',
|
||||||
|
release: {
|
||||||
|
full: '8.1',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'Darwin',
|
||||||
|
os: {
|
||||||
|
family: 'Darwin',
|
||||||
|
name: 'Darwin',
|
||||||
|
release: {
|
||||||
|
full: '13.3.0',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '7100-02-00-000',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '6100-07-04-1216',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
kernel: 'AIX',
|
||||||
|
os: {
|
||||||
|
family: 'AIX',
|
||||||
|
name: 'AIX',
|
||||||
|
release: {
|
||||||
|
full: '5300-12-01-1016',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
].each do |facts|
|
||||||
|
let(:facts) { facts }
|
||||||
|
let(:title) { 'jdk' }
|
||||||
|
|
||||||
|
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||||
|
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
RSpec.configure do |c|
|
RSpec.configure do |c|
|
||||||
c.mock_with :rspec
|
c.mock_with :rspec
|
||||||
end
|
end
|
||||||
@@ -29,19 +31,39 @@ default_fact_files.each do |f|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# read default_facts and merge them over what is provided by facterdb
|
||||||
|
default_facts.each do |fact, value|
|
||||||
|
add_custom_fact fact, value
|
||||||
|
end
|
||||||
|
|
||||||
RSpec.configure do |c|
|
RSpec.configure do |c|
|
||||||
c.default_facts = default_facts
|
c.default_facts = default_facts
|
||||||
c.before :each do
|
c.before :each do
|
||||||
# set to strictest setting for testing
|
# set to strictest setting for testing
|
||||||
# by default Puppet runs at warning level
|
# by default Puppet runs at warning level
|
||||||
Puppet.settings[:strict] = :warning
|
Puppet.settings[:strict] = :warning
|
||||||
|
Puppet.settings[:strict_variables] = true
|
||||||
end
|
end
|
||||||
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
|
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
|
||||||
c.after(:suite) do
|
c.after(:suite) do
|
||||||
RSpec::Puppet::Coverage.report!(0)
|
RSpec::Puppet::Coverage.report!(0)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Filter backtrace noise
|
||||||
|
backtrace_exclusion_patterns = [
|
||||||
|
%r{spec_helper},
|
||||||
|
%r{gems},
|
||||||
|
]
|
||||||
|
|
||||||
|
if c.respond_to?(:backtrace_exclusion_patterns)
|
||||||
|
c.backtrace_exclusion_patterns = backtrace_exclusion_patterns
|
||||||
|
elsif c.respond_to?(:backtrace_clean_patterns)
|
||||||
|
c.backtrace_clean_patterns = backtrace_exclusion_patterns
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Ensures that a module is defined
|
||||||
|
# @param module_name Name of the module
|
||||||
def ensure_module_defined(module_name)
|
def ensure_module_defined(module_name)
|
||||||
module_name.split('::').reduce(Object) do |last_module, next_module|
|
module_name.split('::').reduce(Object) do |last_module, next_module|
|
||||||
last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module, false)
|
last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module, false)
|
||||||
|
|||||||
@@ -1,37 +1,6 @@
|
|||||||
require 'beaker-pe'
|
# frozen_string_literal: true
|
||||||
require 'beaker-puppet'
|
|
||||||
require 'beaker-rspec'
|
|
||||||
require 'beaker/puppet_install_helper'
|
|
||||||
require 'beaker/module_install_helper'
|
|
||||||
|
|
||||||
run_puppet_install_helper
|
require 'puppet_litmus'
|
||||||
configure_type_defaults_on(hosts)
|
require 'spec_helper_acceptance_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_acceptance_local.rb'))
|
||||||
install_module_on(hosts)
|
|
||||||
install_module_dependencies_on(hosts)
|
|
||||||
|
|
||||||
UNSUPPORTED_PLATFORMS = ['Darwin', 'windows'].freeze
|
PuppetLitmus.configure!
|
||||||
|
|
||||||
unless ENV['RS_PROVISION'] == 'no' || ENV['BEAKER_provision'] == 'no'
|
|
||||||
hosts.each do |host|
|
|
||||||
install_puppet_module_via_pmt_on(host, module_name: 'puppetlabs-apt')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RSpec.configure do |c|
|
|
||||||
# Readable test descriptions
|
|
||||||
c.formatter = :documentation
|
|
||||||
end
|
|
||||||
|
|
||||||
def idempotent_apply(hosts, manifest, opts = {}, &block)
|
|
||||||
block_on hosts, opts do |host|
|
|
||||||
file_path = host.tmpfile('apply_manifest.pp')
|
|
||||||
create_remote_file(host, file_path, manifest + "\n")
|
|
||||||
|
|
||||||
puppet_apply_opts = { :verbose => nil, 'detailed-exitcodes' => nil }
|
|
||||||
on_options = { acceptable_exit_codes: [0, 2] }
|
|
||||||
on host, puppet('apply', file_path, puppet_apply_opts), on_options, &block
|
|
||||||
puppet_apply_opts2 = { :verbose => nil, 'detailed-exitcodes' => nil }
|
|
||||||
on_options2 = { acceptable_exit_codes: [0] }
|
|
||||||
on host, puppet('apply', file_path, puppet_apply_opts2), on_options2, &block
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|||||||
3
spec/spec_helper_acceptance_local.rb
Normal file
3
spec/spec_helper_acceptance_local.rb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
UNSUPPORTED_PLATFORMS = ['darwin', 'windows'].freeze
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
if ENV['COVERAGE'] == 'yes'
|
if ENV['COVERAGE'] == 'yes'
|
||||||
require 'simplecov'
|
require 'simplecov'
|
||||||
require 'simplecov-console'
|
require 'simplecov-console'
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
|
java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'java_libjvm_path' do
|
describe 'java_libjvm_path' do
|
||||||
@@ -5,12 +7,13 @@ describe 'java_libjvm_path' do
|
|||||||
|
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
allow(Facter.fact(:kernel)).to receive(:value).once.and_return('Linux')
|
allow(Facter.fact(:kernel)).to receive(:value).and_return('Linux')
|
||||||
allow(Facter.fact(:java_default_home)).to receive(:value).once.and_return(java_default_home)
|
allow(Facter.fact(:java_default_home)).to receive(:value).and_return(java_default_home)
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when libjvm exists' do
|
context 'when libjvm exists' do
|
||||||
it do
|
it do
|
||||||
|
allow(Facter.fact(:java_major_version)).to receive(:value).and_return(8)
|
||||||
allow(Dir).to receive(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").and_return(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
allow(Dir).to receive(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").and_return(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
||||||
expect(Facter.value(:java_libjvm_path)).to eql '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server'
|
expect(Facter.value(:java_libjvm_path)).to eql '/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server'
|
||||||
end
|
end
|
||||||
@@ -18,7 +21,7 @@ describe 'java_libjvm_path' do
|
|||||||
|
|
||||||
context 'when libjvm does not exist' do
|
context 'when libjvm does not exist' do
|
||||||
it do
|
it do
|
||||||
allow(Dir).to receive(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").and_return([])
|
allow(Dir).to receive(:glob).with("#{java_default_home}/lib/**/libjvm.so").and_return([])
|
||||||
expect(Facter.value(:java_libjvm_path)).to be nil
|
expect(Facter.value(:java_libjvm_path)).to be nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'java_major_version' do
|
describe 'java_major_version' do
|
||||||
@@ -16,7 +18,7 @@ describe 'java_major_version' do
|
|||||||
|
|
||||||
context 'when java not present, returns nil' do
|
context 'when java not present, returns nil' do
|
||||||
before :each do
|
before :each do
|
||||||
allow(Facter.fact(:java_version)).to receive(:value).and_return('nil')
|
allow(Facter.fact(:java_version)).to receive(:value).and_return(nil)
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'java_patch_level' do
|
describe 'java_patch_level' do
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
|
openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
|
||||||
@@ -30,9 +32,9 @@ describe 'java_version' do
|
|||||||
end
|
end
|
||||||
context 'when on Darwin' do
|
context 'when on Darwin' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin')
|
allow(Facter.fact(:kernel)).to receive(:value).and_return('Darwin')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
let(:facts) { { kernel: 'Darwin' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
|
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
|
||||||
@@ -63,14 +65,15 @@ describe 'java_version' do
|
|||||||
|
|
||||||
it do
|
it do
|
||||||
allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls
|
allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls
|
||||||
|
allow(Facter::Util::Resolution).to receive(:which).and_return(nil)
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'when on Darwin' do
|
context 'when on Darwin' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin')
|
allow(Facter.fact(:kernel)).to receive(:value).and_return('Darwin')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
let(:facts) { { kernel: 'Darwin' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".')
|
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".')
|
||||||
|
|||||||
Reference in New Issue
Block a user