Compare commits
71 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdf8c34b02 | ||
|
|
c76a66eb7e | ||
|
|
312f5469cb | ||
|
|
69e9ffb19e | ||
|
|
2d9ff91e1c | ||
|
|
57c94e86e3 | ||
|
|
d595362de6 | ||
|
|
56f3f10b1d | ||
|
|
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 |
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",
|
||||
}
|
||||
86
.github/workflows/auto_release.yml
vendored
Normal file
86
.github/workflows/auto_release.yml
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
name: "Auto release"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 3 * * 6'
|
||||
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'
|
||||
104
.github/workflows/release.yml
vendored
104
.github/workflows/release.yml
vendored
@@ -1,71 +1,47 @@
|
||||
name: "release"
|
||||
name: "Publish module"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'release'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
LitmusAcceptancePuppet5:
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
runs-on: self-hosted
|
||||
strategy:
|
||||
matrix:
|
||||
ruby_version: [2.5.x]
|
||||
puppet_gem_version: [~> 6.0]
|
||||
platform: [release_checks_5]
|
||||
agent_family: ['puppet5']
|
||||
|
||||
create-github-release:
|
||||
name: Deploy GitHub Release
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Litmus Parallel
|
||||
uses: puppetlabs/action-litmus_parallel@master
|
||||
with:
|
||||
platform: ${{ matrix.platform }}
|
||||
agent_family: ${{ matrix.agent_family }}
|
||||
LitmusAcceptancePuppet6:
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
runs-on: self-hosted
|
||||
strategy:
|
||||
matrix:
|
||||
ruby_version: [2.5.x]
|
||||
puppet_gem_version: [~> 6.0]
|
||||
platform: [release_checks_6]
|
||||
agent_family: ['puppet6']
|
||||
- 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:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Litmus Parallel
|
||||
uses: puppetlabs/action-litmus_parallel@master
|
||||
with:
|
||||
platform: ${{ matrix.platform }}
|
||||
agent_family: ${{ matrix.agent_family }}
|
||||
|
||||
Spec:
|
||||
runs-on: self-hosted
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
check: [spec, 'syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop']
|
||||
ruby_version: [2.4.x, 2.5.x]
|
||||
puppet_gem_version: [~> 5.0, ~> 6.0]
|
||||
exclude:
|
||||
- puppet_gem_version: ~> 5.0
|
||||
check: 'syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop'
|
||||
- ruby_version: 2.4.x
|
||||
puppet_gem_version: ~> 6.0
|
||||
- ruby_version: 2.5.x
|
||||
puppet_gem_version: ~> 5.0
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: Spec Tests
|
||||
uses: puppetlabs/action-litmus_spec@master
|
||||
with:
|
||||
puppet_gem_versionm: ${{ matrix.puppet_gem_version }}
|
||||
check: ${{ matrix.check }}
|
||||
- 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'
|
||||
|
||||
128
.github/workflows/spec.yml
vendored
Normal file
128
.github/workflows/spec.yml
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
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 }}
|
||||
|
||||
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
|
||||
64
.github/workflows/weekly.yml
vendored
64
.github/workflows/weekly.yml
vendored
@@ -1,64 +0,0 @@
|
||||
name: "weekly"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 5 * * 5'
|
||||
|
||||
jobs:
|
||||
LitmusAcceptancePuppet5:
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
runs-on: self-hosted
|
||||
strategy:
|
||||
matrix:
|
||||
ruby_version: [2.5.x]
|
||||
puppet_gem_version: [~> 6.0]
|
||||
platform: [release_checks_5]
|
||||
agent_family: ['puppet5']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Litmus Parallel
|
||||
uses: puppetlabs/action-litmus_parallel@master
|
||||
with:
|
||||
platform: ${{ matrix.platform }}
|
||||
agent_family: ${{ matrix.agent_family }}
|
||||
LitmusAcceptancePuppet6:
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
runs-on: self-hosted
|
||||
strategy:
|
||||
matrix:
|
||||
ruby_version: [2.5.x]
|
||||
puppet_gem_version: [~> 6.0]
|
||||
platform: [release_checks_6]
|
||||
agent_family: ['puppet6']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Litmus Parallel
|
||||
uses: puppetlabs/action-litmus_parallel@master
|
||||
with:
|
||||
platform: ${{ matrix.platform }}
|
||||
agent_family: ${{ matrix.agent_family }}
|
||||
Spec:
|
||||
runs-on: self-hosted
|
||||
strategy:
|
||||
matrix:
|
||||
check: [parallel_spec, 'syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop']
|
||||
ruby_version: [2.5.x]
|
||||
puppet_gem_version: [~> 5.0, ~> 6.0]
|
||||
exclude:
|
||||
- puppet_gem_version: ~> 5.0
|
||||
check: 'syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop'
|
||||
- ruby_version: 2.5.x
|
||||
puppet_gem_version: ~> 5.0
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Spec Tests
|
||||
uses: puppetlabs/action-litmus_spec@master
|
||||
with:
|
||||
puppet_gem_version: ${{ matrix.puppet_gem_version }}
|
||||
check: ${{ matrix.check }}
|
||||
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.0.0:oSzfTkDf6Cmc1jOjgW33VA==
|
||||
@@ -32,6 +32,7 @@
|
||||
/.gitignore
|
||||
/.gitlab-ci.yml
|
||||
/.pdkignore
|
||||
/.puppet-lint.rc
|
||||
/Rakefile
|
||||
/rakelib/
|
||||
/.rspec
|
||||
@@ -40,3 +41,5 @@
|
||||
/.yardopts
|
||||
/spec/
|
||||
/.vscode/
|
||||
/.sync.yml
|
||||
/.devcontainer/
|
||||
|
||||
424
.rubocop.yml
424
.rubocop.yml
@@ -1,12 +1,12 @@
|
||||
---
|
||||
require:
|
||||
- rubocop-performance
|
||||
- rubocop-rspec
|
||||
- rubocop-i18n
|
||||
AllCops:
|
||||
DisplayCopNames: true
|
||||
TargetRubyVersion: '2.1'
|
||||
TargetRubyVersion: '2.4'
|
||||
Include:
|
||||
- "./**/*.rb"
|
||||
- "**/*.rb"
|
||||
Exclude:
|
||||
- bin/*
|
||||
- ".vendor/**/*"
|
||||
@@ -18,16 +18,9 @@ AllCops:
|
||||
- "**/Puppetfile"
|
||||
- "**/Vagrantfile"
|
||||
- "**/Guardfile"
|
||||
Metrics/LineLength:
|
||||
Layout/LineLength:
|
||||
Description: People have wide screens, use them.
|
||||
Max: 200
|
||||
GetText:
|
||||
Enabled: false
|
||||
GetText/DecorateString:
|
||||
Description: We don't want to decorate test output.
|
||||
Exclude:
|
||||
- spec/**/*
|
||||
Enabled: false
|
||||
RSpec/BeforeAfterAll:
|
||||
Description: Beware of using after(:all) as it may cause state to leak between tests.
|
||||
A necessary evil in acceptance testing.
|
||||
@@ -36,14 +29,13 @@ RSpec/BeforeAfterAll:
|
||||
RSpec/HookArgument:
|
||||
Description: Prefer explicit :each argument, matching existing module's style
|
||||
EnforcedStyle: each
|
||||
RSpec/DescribeSymbol:
|
||||
Exclude:
|
||||
- spec/unit/facter/**/*.rb
|
||||
Style/BlockDelimiters:
|
||||
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
|
||||
be consistent then.
|
||||
EnforcedStyle: braces_for_chaining
|
||||
Style/BracesAroundHashParameters:
|
||||
Description: Braces are required by Ruby 2.7. Cop removed from RuboCop v0.80.0.
|
||||
See https://github.com/rubocop-hq/rubocop/pull/7643
|
||||
Enabled: true
|
||||
Style/ClassAndModuleChildren:
|
||||
Description: Compact style reduces the required amount of indentation.
|
||||
EnforcedStyle: compact
|
||||
@@ -72,7 +64,7 @@ Style/TrailingCommaInArguments:
|
||||
Description: Prefer always trailing comma on multiline argument lists. This makes
|
||||
diffs, and re-ordering nicer.
|
||||
EnforcedStyleForMultiline: comma
|
||||
Style/TrailingCommaInLiteral:
|
||||
Style/TrailingCommaInArrayLiteral:
|
||||
Description: Prefer always trailing comma on multiline literals. This makes diffs,
|
||||
and re-ordering nicer.
|
||||
EnforcedStyleForMultiline: comma
|
||||
@@ -87,26 +79,170 @@ Style/Documentation:
|
||||
- spec/**/*
|
||||
Style/WordArray:
|
||||
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:
|
||||
Enabled: true
|
||||
Style/MethodCalledOnDoEndBlock:
|
||||
Enabled: true
|
||||
Style/StringMethods:
|
||||
Enabled: true
|
||||
GetText/DecorateFunctionMessage:
|
||||
Bundler/InsecureProtocolSource:
|
||||
Enabled: false
|
||||
GetText/DecorateStringFormattingUsingInterpolation:
|
||||
Gemspec/DuplicatedAssignment:
|
||||
Enabled: false
|
||||
GetText/DecorateStringFormattingUsingPercent:
|
||||
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:
|
||||
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
|
||||
Metrics/AbcSize:
|
||||
Enabled: false
|
||||
Metrics/BlockLength:
|
||||
Enabled: false
|
||||
Metrics/BlockNesting:
|
||||
Enabled: false
|
||||
Metrics/ClassLength:
|
||||
Enabled: false
|
||||
Metrics/CyclomaticComplexity:
|
||||
@@ -119,19 +255,265 @@ Metrics/ParameterLists:
|
||||
Enabled: false
|
||||
Metrics/PerceivedComplexity:
|
||||
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:
|
||||
Enabled: false
|
||||
RSpec/EmptyHook:
|
||||
Enabled: false
|
||||
RSpec/EmptyLineAfterExample:
|
||||
Enabled: false
|
||||
RSpec/EmptyLineAfterExampleGroup:
|
||||
Enabled: false
|
||||
RSpec/EmptyLineAfterHook:
|
||||
Enabled: false
|
||||
RSpec/ExampleLength:
|
||||
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
|
||||
RSpec/MultipleExpectations:
|
||||
Enabled: false
|
||||
RSpec/MultipleMemoizedHelpers:
|
||||
Enabled: false
|
||||
RSpec/MultipleSubjects:
|
||||
Enabled: false
|
||||
RSpec/NestedGroups:
|
||||
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:
|
||||
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:
|
||||
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:
|
||||
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
|
||||
|
||||
50
.sync.yml
50
.sync.yml
@@ -1,44 +1,30 @@
|
||||
---
|
||||
".gitlab-ci.yml":
|
||||
delete: true
|
||||
".travis.yml":
|
||||
global_env:
|
||||
- HONEYCOMB_WRITEKEY="7f3c63a70eecc61d635917de46bea4e6",HONEYCOMB_DATASET="litmus tests"
|
||||
deploy_to_forge:
|
||||
enabled: false
|
||||
branches:
|
||||
- release
|
||||
use_litmus: true
|
||||
litmus:
|
||||
provision_list:
|
||||
- ---travis_el
|
||||
- travis_deb
|
||||
- travis_el6
|
||||
- travis_el7
|
||||
complex:
|
||||
- collection:
|
||||
puppet_collection:
|
||||
- puppet6
|
||||
provision_list:
|
||||
- travis_ub_6
|
||||
- collection:
|
||||
puppet_collection:
|
||||
- puppet5
|
||||
provision_list:
|
||||
- travis_ub_5
|
||||
simplecov: true
|
||||
notifications:
|
||||
slack:
|
||||
secure: Wf7Wz3KC0G9ngPiDcOIpSqcCfdvwKQqZdNH/z3GMcj/OipMAdyFSAVnBvikIl7L1c0LMU9ATEpub+jYzViT7RZywaNyer6SRAfs6MIgAYo4xxF/mOnDHAxXeUYAsBXXL4sS3NX2XWMPa9ZWUeuUQKth8O4STWgAX298QZLyYx5k=
|
||||
appveyor.yml:
|
||||
delete: true
|
||||
|
||||
Gemfile:
|
||||
optional:
|
||||
":development":
|
||||
- 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')
|
||||
spec/spec_helper.rb:
|
||||
mock_with: ":rspec"
|
||||
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
|
||||
|
||||
137
.travis.yml
137
.travis.yml
@@ -1,137 +0,0 @@
|
||||
---
|
||||
os: linux
|
||||
dist: xenial
|
||||
language: ruby
|
||||
cache: bundler
|
||||
before_install:
|
||||
- bundle -v
|
||||
- rm -f Gemfile.lock
|
||||
- "# Update system gems if requested. This is useful to temporarily workaround troubles in the test runner"
|
||||
- "# See https://github.com/puppetlabs/pdk-templates/commit/705154d5c437796b821691b707156e1b056d244f for an example of how this was used"
|
||||
- "# Ignore exit code of SIGPIPE'd yes to not fail with shell's pipefail set"
|
||||
- '[ -z "$RUBYGEMS_VERSION" ] || (yes || true) | gem update --system $RUBYGEMS_VERSION'
|
||||
- gem --version
|
||||
- bundle -v
|
||||
script:
|
||||
- 'SIMPLECOV=yes bundle exec rake $CHECK'
|
||||
bundler_args: --without system_tests
|
||||
rvm:
|
||||
- 2.5.7
|
||||
env:
|
||||
global:
|
||||
- HONEYCOMB_WRITEKEY="7f3c63a70eecc61d635917de46bea4e6",HONEYCOMB_DATASET="litmus tests"
|
||||
stages:
|
||||
- static
|
||||
- spec
|
||||
- acceptance
|
||||
jobs:
|
||||
fast_finish: true
|
||||
include:
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_ub_6]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_ub_6_puppet6
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_ub_5]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_ub_5_puppet5
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_deb]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_deb_puppet5
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el6]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_el6_puppet5
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el7]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet5]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_el7_puppet5
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_deb]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_deb_puppet6
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el6]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_el6_puppet6
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
before_script:
|
||||
- "bundle exec rake 'litmus:provision_list[travis_el7]'"
|
||||
- "bundle exec rake 'litmus:install_agent[puppet6]'"
|
||||
- "bundle exec rake litmus:install_module"
|
||||
bundler_args:
|
||||
env: PLATFORMS=travis_el7_puppet6
|
||||
rvm: 2.5.7
|
||||
script: ["travis_wait 45 bundle exec rake litmus:acceptance:parallel"]
|
||||
services: docker
|
||||
stage: acceptance
|
||||
-
|
||||
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.7
|
||||
stage: spec
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- /^v\d/
|
||||
- release
|
||||
notifications:
|
||||
email: false
|
||||
slack:
|
||||
secure: Wf7Wz3KC0G9ngPiDcOIpSqcCfdvwKQqZdNH/z3GMcj/OipMAdyFSAVnBvikIl7L1c0LMU9ATEpub+jYzViT7RZywaNyer6SRAfs6MIgAYo4xxF/mOnDHAxXeUYAsBXXL4sS3NX2XWMPa9ZWUeuUQKth8O4STWgAX298QZLyYx5k=
|
||||
47
CHANGELOG.md
47
CHANGELOG.md
@@ -2,9 +2,50 @@
|
||||
|
||||
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).
|
||||
|
||||
## [v6.3.0](https://github.com/puppetlabs/puppetlabs-java/tree/v6.2.0) (2020-05-27)
|
||||
## [v7.0.1](https://github.com/puppetlabs/puppetlabs-java/tree/v7.0.1) (2021-04-17)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v6.2.0...v6.2.0)
|
||||
[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
|
||||
|
||||
@@ -442,4 +483,4 @@ Jeff McCune <jeff@puppetlabs.com>
|
||||
[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)*
|
||||
|
||||
@@ -108,7 +108,7 @@ process as easy as possible.
|
||||
|
||||
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".
|
||||
directly on "main".
|
||||
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.
|
||||
|
||||
32
Gemfile
32
Gemfile
@@ -17,20 +17,18 @@ ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
|
||||
minor_version = ruby_version_segments[0..1].join('.')
|
||||
|
||||
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 "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
||||
gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
||||
gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
|
||||
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
||||
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 "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-posix-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-win-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-win-dev-r#{minor_version}", '~> 0.4', 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')
|
||||
gem 'ed25519', '>= 1.2', '< 2.0'
|
||||
gem 'bcrypt_pbkdf', '>= 1.0', '< 2.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 "puppet-module-posix-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "github_changelog_generator", require: false
|
||||
end
|
||||
group :system_tests do
|
||||
gem "puppet-module-posix-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-win-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
end
|
||||
|
||||
puppet_version = ENV['PUPPET_GEM_VERSION']
|
||||
@@ -47,16 +45,6 @@ gems['puppet'] = location_for(puppet_version)
|
||||
gems['facter'] = location_for(facter_version) if facter_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|
|
||||
gem gem_name, *gem_params
|
||||
end
|
||||
|
||||
73
README.md
73
README.md
@@ -55,6 +55,8 @@ java::download { 'jdk8' :
|
||||
}
|
||||
```
|
||||
|
||||
## 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
|
||||
@@ -70,7 +72,7 @@ java::adopt { 'jdk11' :
|
||||
java => 'jdk',
|
||||
}
|
||||
```
|
||||
#TODO
|
||||
|
||||
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
|
||||
@@ -105,9 +107,61 @@ java::adopt { 'jdk8' :
|
||||
}
|
||||
```
|
||||
|
||||
## 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,
|
||||
basedir => '/custom/java',
|
||||
}
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
@@ -123,7 +177,7 @@ The java module includes a few facts to describe the version of Java installed o
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -140,7 +194,7 @@ OpenJDK is supported on:
|
||||
* Oracle Linux 6, 7
|
||||
* Scientific Linux 6
|
||||
* Debian 8, 9
|
||||
* Ubuntu 14.04, 16.04, 18.04
|
||||
* Ubuntu 14.04, 16.04, 18.04, 20.04
|
||||
* Solaris 11
|
||||
* SLES 11, 12
|
||||
|
||||
@@ -161,6 +215,17 @@ AdoptOpenJDK Java is supported on:
|
||||
* 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
|
||||
|
||||
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.
|
||||
|
||||
298
REFERENCE.md
298
REFERENCE.md
@@ -1,37 +1,47 @@
|
||||
# Reference
|
||||
|
||||
<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
|
||||
|
||||
## Table of Contents
|
||||
|
||||
**Classes**
|
||||
### Classes
|
||||
|
||||
_Public Classes_
|
||||
#### Public Classes
|
||||
|
||||
* [`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)
|
||||
alternatives. For wheezy/precise, we provide Oracle JDK/JRE
|
||||
options, even though those are not in the package repositories.
|
||||
|
||||
**Defined types**
|
||||
### Defined types
|
||||
|
||||
* [`java::adopt`](#javaadopt): Install one or more versions of AdoptOpenJDK Java.
|
||||
* [`java::download`](#javadownload): Installs Java from a url location.
|
||||
* [`java::sap`](#javasap): Install one or more versions of SAPJVM or Sapmachine
|
||||
|
||||
## Classes
|
||||
|
||||
### java
|
||||
### <a name="java"></a>`java`
|
||||
|
||||
This module manages the Java runtime package
|
||||
|
||||
#### 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`
|
||||
|
||||
@@ -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
|
||||
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:~-]+$/]`
|
||||
|
||||
The version of java to install. By default, this module simply ensures
|
||||
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]`
|
||||
|
||||
The name of the java package. This is configurable in case a non-standard
|
||||
java package is desired.
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `package_options`
|
||||
##### <a name="package_options"></a>`package_options`
|
||||
|
||||
Data type: `Optional[Array]`
|
||||
|
||||
Array of strings to pass installation options to the 'package' Puppet resource.
|
||||
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]`
|
||||
|
||||
@@ -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
|
||||
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]`
|
||||
|
||||
@@ -89,102 +99,115 @@ alternatives system makes it difficult to verify which
|
||||
alternative is actually enabled, this is required to ensure the
|
||||
correct JVM is enabled.
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `java_home`
|
||||
##### <a name="java_home"></a>`java_home`
|
||||
|
||||
Data type: `Optional[String]`
|
||||
|
||||
The path to where the JRE is installed. This will be set as an
|
||||
environment variable.
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
## Defined types
|
||||
|
||||
### java::adopt
|
||||
### <a name="javaadopt"></a>`java::adopt`
|
||||
|
||||
Defined Type java::adopt
|
||||
|
||||
#### Parameters
|
||||
|
||||
The following parameters are available in the `java::adopt` 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)
|
||||
* [`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'
|
||||
Default value: `'present'`
|
||||
|
||||
##### `version`
|
||||
##### <a name="version"></a>`version`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
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`
|
||||
|
||||
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`
|
||||
|
||||
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`
|
||||
##### <a name="java"></a>`java`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
Type of Java Standard Edition to install, jdk or jre.
|
||||
|
||||
Default value: 'jdk'
|
||||
Default value: `'jdk'`
|
||||
|
||||
##### `proxy_server`
|
||||
##### <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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `proxy_type`
|
||||
##### <a name="proxy_type"></a>`proxy_type`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
Proxy server type (none|http|https|ftp). (passed to archive)
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `basedir`
|
||||
##### <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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `manage_basedir`
|
||||
##### <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`
|
||||
Default value: ``true``
|
||||
|
||||
##### `package_type`
|
||||
##### <a name="package_type"></a>`package_type`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
@@ -192,131 +215,147 @@ 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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `manage_symlink`
|
||||
##### <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`
|
||||
Default value: ``false``
|
||||
|
||||
##### `symlink_name`
|
||||
##### <a name="symlink_name"></a>`symlink_name`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
The name for the optional symlink in the installation directory.
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
### java::download
|
||||
### <a name="javadownload"></a>`java::download`
|
||||
|
||||
Defined Type java::download
|
||||
|
||||
#### Parameters
|
||||
|
||||
The following parameters are available in the `java::download` defined type.
|
||||
The following parameters are available in the `java::download` defined type:
|
||||
|
||||
##### `ensure`
|
||||
* [`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'
|
||||
Default value: `'present'`
|
||||
|
||||
##### `version`
|
||||
##### <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'
|
||||
Default value: `'8'`
|
||||
|
||||
##### `version_major`
|
||||
##### <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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `version_minor`
|
||||
##### <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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `java_se`
|
||||
##### <a name="java_se"></a>`java_se`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
Type of Java Standard Edition to install, jdk or jre.
|
||||
|
||||
Default value: 'jdk'
|
||||
Default value: `'jdk'`
|
||||
|
||||
##### `proxy_server`
|
||||
##### <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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `proxy_type`
|
||||
##### <a name="proxy_type"></a>`proxy_type`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
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`
|
||||
|
||||
Full URL
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `jce`
|
||||
##### <a name="jce"></a>`jce`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
Install Oracles Java Cryptographic Extensions into the JRE or JDK
|
||||
|
||||
Default value: `false`
|
||||
Default value: ``false``
|
||||
|
||||
##### `jce_url`
|
||||
##### <a name="jce_url"></a>`jce_url`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
Full URL to the jce zip file
|
||||
|
||||
Default value: `undef`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `basedir`
|
||||
##### <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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `manage_basedir`
|
||||
##### <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`
|
||||
Default value: ``false``
|
||||
|
||||
##### `package_type`
|
||||
##### <a name="package_type"></a>`package_type`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
@@ -324,21 +363,122 @@ 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`
|
||||
Default value: ``undef``
|
||||
|
||||
##### `manage_symlink`
|
||||
##### <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`
|
||||
Default value: ``false``
|
||||
|
||||
##### `symlink_name`
|
||||
##### <a name="symlink_name"></a>`symlink_name`
|
||||
|
||||
Data type: `Any`
|
||||
|
||||
The name for the optional symlink in the installation directory.
|
||||
|
||||
Default value: `undef`
|
||||
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``
|
||||
|
||||
|
||||
14
Rakefile
14
Rakefile
@@ -1,5 +1,6 @@
|
||||
# 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 'puppet-syntax/tasks/puppet-syntax'
|
||||
@@ -52,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.add_pr_wo_labels = true
|
||||
config.issues = false
|
||||
config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM"
|
||||
config.merge_prefix = "### UNCATEGORIZED PRS; LABEL THEM ON GITHUB"
|
||||
config.configure_sections = {
|
||||
"Changed" => {
|
||||
"prefix" => "### Changed",
|
||||
@@ -60,11 +61,11 @@ if Bundler.rubygems.find_name('github_changelog_generator').any?
|
||||
},
|
||||
"Added" => {
|
||||
"prefix" => "### Added",
|
||||
"labels" => ["feature", "enhancement"],
|
||||
"labels" => ["enhancement", "feature"],
|
||||
},
|
||||
"Fixed" => {
|
||||
"prefix" => "### Fixed",
|
||||
"labels" => ["bugfix"],
|
||||
"labels" => ["bug", "documentation", "bugfix"],
|
||||
},
|
||||
}
|
||||
end
|
||||
@@ -72,16 +73,15 @@ else
|
||||
desc 'Generate a Changelog from GitHub'
|
||||
task :changelog do
|
||||
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`:
|
||||
---
|
||||
Gemfile:
|
||||
optional:
|
||||
':development':
|
||||
- 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')"
|
||||
version: '~> 1.15'
|
||||
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.3.0')"
|
||||
EOM
|
||||
end
|
||||
end
|
||||
|
||||
1
data/common.yaml
Normal file
1
data/common.yaml
Normal file
@@ -0,0 +1 @@
|
||||
--- {}
|
||||
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
|
||||
#
|
||||
# Purpose: get absolute path of java system home
|
||||
@@ -19,7 +21,7 @@ Facter.add(:java_default_home) do
|
||||
nil
|
||||
else
|
||||
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)))
|
||||
else
|
||||
File.dirname(File.dirname(java_path))
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Fact: java_libjvm_path
|
||||
#
|
||||
# Purpose: get path to libjvm.so
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Fact: java_major_version
|
||||
#
|
||||
# Purpose: get Java's major version
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Fact: java_patch_level
|
||||
#
|
||||
# Purpose: get Java's patch level
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Fact: java_version
|
||||
#
|
||||
# Purpose: get full java version string
|
||||
@@ -21,7 +23,7 @@ Facter.add(:java_version) do
|
||||
# Additionally, facter versions prior to 2.0.1 only support
|
||||
# positive matches, so this needs to be done manually in setcode.
|
||||
setcode do
|
||||
unless ['darwin'].include? Facter.value(:operatingsystem).downcase
|
||||
unless ['darwin'].include? Facter.value(:kernel).downcase
|
||||
version = nil
|
||||
if Facter::Util::Resolution.which('java')
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
|
||||
@@ -32,10 +34,10 @@ Facter.add(:java_version) do
|
||||
end
|
||||
|
||||
Facter.add(:java_version) do
|
||||
confine operatingsystem: 'Darwin'
|
||||
confine kernel: 'Darwin'
|
||||
has_weight 100
|
||||
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
|
||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = Regexp.last_match(1) if %r{^.+ version \"(.+)\"} =~ line }
|
||||
version
|
||||
|
||||
@@ -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'
|
||||
|
||||
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",
|
||||
"version": "6.3.0",
|
||||
"version": "7.0.1",
|
||||
"author": "puppetlabs",
|
||||
"summary": "Installs the correct Java package on various platforms.",
|
||||
"license": "Apache-2.0",
|
||||
@@ -10,18 +10,17 @@
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "puppetlabs/stdlib",
|
||||
"version_requirement": ">= 4.13.1 < 7.0.0"
|
||||
"version_requirement": ">= 4.13.1 < 8.0.0"
|
||||
},
|
||||
{
|
||||
"name": "puppet/archive",
|
||||
"version_requirement": ">= 1.1.0 < 5.0.0"
|
||||
"version_requirement": ">= 1.1.0 < 6.0.0"
|
||||
}
|
||||
],
|
||||
"operatingsystem_support": [
|
||||
{
|
||||
"operatingsystem": "RedHat",
|
||||
"operatingsystemrelease": [
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8"
|
||||
@@ -30,7 +29,6 @@
|
||||
{
|
||||
"operatingsystem": "CentOS",
|
||||
"operatingsystemrelease": [
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8"
|
||||
@@ -69,7 +67,6 @@
|
||||
{
|
||||
"operatingsystem": "SLES",
|
||||
"operatingsystemrelease": [
|
||||
"11",
|
||||
"12",
|
||||
"15"
|
||||
]
|
||||
@@ -78,10 +75,10 @@
|
||||
"requirements": [
|
||||
{
|
||||
"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-ref": "heads/master-0-g88b05c7",
|
||||
"pdk-version": "1.17.0"
|
||||
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
|
||||
"template-ref": "heads/main-0-g12a5dea",
|
||||
"pdk-version": "1.18.1"
|
||||
}
|
||||
|
||||
@@ -1,29 +1,69 @@
|
||||
---
|
||||
default:
|
||||
provisioner: docker
|
||||
images: ['litmusimage/debian:8']
|
||||
images:
|
||||
- litmusimage/debian:8
|
||||
vagrant:
|
||||
provisioner: vagrant
|
||||
images: ['centos/7', 'generic/ubuntu1804']
|
||||
images:
|
||||
- centos/7
|
||||
- generic/ubuntu1804
|
||||
travis_deb:
|
||||
provisioner: docker
|
||||
images: ['litmusimage/debian:8', 'litmusimage/debian:9', 'litmusimage/debian:10']
|
||||
travis_ub_5:
|
||||
provisioner: docker
|
||||
images: ['litmusimage/ubuntu:14.04', 'litmusimage/ubuntu:16.04', 'litmusimage/ubuntu:18.04']
|
||||
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_el6:
|
||||
provisioner: docker
|
||||
images: ['litmusimage/centos:6', 'litmusimage/oraclelinux:6', 'litmusimage/scientificlinux:6']
|
||||
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']
|
||||
release_checks_5:
|
||||
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', 'sles-11-x86_64', 'sles-12-x86_64', 'sles-15-x86_64']
|
||||
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-11-x86_64', 'sles-12-x86_64', 'sles-15-x86_64']
|
||||
|
||||
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,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper_acceptance'
|
||||
require 'pry'
|
||||
|
||||
@@ -138,84 +140,145 @@ install_adopt_jdk_jre = <<EOL
|
||||
}
|
||||
EOL
|
||||
|
||||
context 'installing java jre', unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
it 'installs jre' do
|
||||
idempotent_apply(java_class_jre)
|
||||
end
|
||||
end
|
||||
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'
|
||||
|
||||
context 'installing java jdk', unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
it 'installs jdk' do
|
||||
idempotent_apply(java_class)
|
||||
end
|
||||
end
|
||||
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
|
||||
|
||||
context 'with failure cases' do
|
||||
it 'fails to install java with a blank version' do
|
||||
apply_manifest(blank_version, expect_failures: true)
|
||||
describe 'installing' do
|
||||
context 'installing java jre' do
|
||||
it 'installs jre' do
|
||||
idempotent_apply(java_class_jre)
|
||||
end
|
||||
end
|
||||
|
||||
it 'fails to install java with an incorrect distribution' do
|
||||
apply_manifest(incorrect_distro, expect_failures: true)
|
||||
context 'installing java jdk' do
|
||||
it 'installs jdk' do
|
||||
idempotent_apply(java_class)
|
||||
end
|
||||
end
|
||||
|
||||
it 'fails to install java with a blank distribution' do
|
||||
apply_manifest(blank_distro, expect_failures: true)
|
||||
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
|
||||
|
||||
it 'fails to install java with an incorrect package' do
|
||||
apply_manifest(incorrect_package, expect_failures: true)
|
||||
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
|
||||
|
||||
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)
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java', type: :class do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java::adopt', type: :define do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java::download', type: :define do
|
||||
|
||||
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 +1,3 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
UNSUPPORTED_PLATFORMS = ['darwin', 'windows'].freeze
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
if ENV['COVERAGE'] == 'yes'
|
||||
require 'simplecov'
|
||||
require 'simplecov-console'
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
java_7_path = '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java_libjvm_path' do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java_major_version' do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java_patch_level' do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
openjdk_7_output = "Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true\n"\
|
||||
@@ -30,9 +32,9 @@ describe 'java_version' do
|
||||
end
|
||||
context 'when on Darwin' 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
|
||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||
let(:facts) { { kernel: 'Darwin' } }
|
||||
|
||||
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')
|
||||
@@ -69,9 +71,9 @@ describe 'java_version' do
|
||||
end
|
||||
context 'when on Darwin' 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
|
||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||
let(:facts) { { kernel: 'Darwin' } }
|
||||
|
||||
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)".')
|
||||
|
||||
Reference in New Issue
Block a user