From d857784d1ecf4a5f151c053c7b1fab8e786a4a58 Mon Sep 17 00:00:00 2001 From: Mike DePaulo Date: Thu, 20 Feb 2020 11:35:41 -0500 Subject: [PATCH] Problem: ansible-pulp CI is failing as of molecule 3.0's release Solution: Follow molecule 3.0 migration guide: https://github.com/ansible-community/molecule/issues/2560 Implementation includes: 1. Installing molecule-inspec and ansible-lint 2. Reworking lint sections of molecule.yml files 3. Renaming playbook.yml symlinks to converge.yml 4. Resolve some lint errors fixes: #6211 --- .ansible-lint | 2 ++ .yamllint | 5 +++++ README.md | 8 ++++++-- .../default-upgrade/{playbook.yml => converge.yml} | 0 molecule/default-upgrade/molecule.yml | 12 ++++-------- molecule/default/{playbook.yml => converge.yml} | 0 molecule/default/molecule.yml | 12 ++++-------- molecule/dynamic/{playbook.yml => converge.yml} | 0 molecule/dynamic/molecule.yml | 12 ++++-------- molecule/scenario_resources/verify.yml | 4 ++++ .../source-dynamic/{playbook.yml => converge.yml} | 0 molecule/source-dynamic/molecule.yml | 12 ++++-------- .../source-upgrade/{playbook.yml => converge.yml} | 0 molecule/source-upgrade/molecule.yml | 12 ++++-------- molecule/source/{playbook.yml => converge.yml} | 0 molecule/source/molecule.yml | 12 ++++-------- molecule/source/prepare.yml | 2 ++ tox.ini | 4 +++- 18 files changed, 46 insertions(+), 51 deletions(-) rename molecule/default-upgrade/{playbook.yml => converge.yml} (100%) rename molecule/default/{playbook.yml => converge.yml} (100%) rename molecule/dynamic/{playbook.yml => converge.yml} (100%) rename molecule/source-dynamic/{playbook.yml => converge.yml} (100%) rename molecule/source-upgrade/{playbook.yml => converge.yml} (100%) rename molecule/source/{playbook.yml => converge.yml} (100%) diff --git a/.ansible-lint b/.ansible-lint index e592f4a0f..7d927963d 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -2,6 +2,8 @@ # systemctl subcommands that actually manage services. skip_list: - '303' + - '401' exclude_paths: - ./roles/geerlingguy.postgresql/ + - ../../.ansible/roles/geerlingguy.postgresql/ - ./.github/ diff --git a/.yamllint b/.yamllint index 2094a684c..b8d0e601d 100644 --- a/.yamllint +++ b/.yamllint @@ -1,3 +1,4 @@ +--- extends: default rules: @@ -13,3 +14,7 @@ rules: brackets: min-spaces-inside-empty: 0 max-spaces-inside-empty: 1 + +ignore: | + .tox + .git diff --git a/README.md b/README.md index be565d6c0..6a0a043d5 100644 --- a/README.md +++ b/README.md @@ -119,8 +119,12 @@ and so on. **Using Molecule:** -1. Install [molecule](https://molecule.readthedocs.io/en/latest/). It is recommended that you do so - with `pip` in a virtualenv. +1. Install [molecule](https://molecule.readthedocs.io/en/latest/), +[molecule-inspec](https://github.com/ansible-community/molecule-inspec), +and [ansible-lint](https://docs.ansible.com/ansible-lint/). + + +It is recommended that you do so with `pip` in a virtualenv. 2. Run molecule commands. Test all scenarios on all hosts. diff --git a/molecule/default-upgrade/playbook.yml b/molecule/default-upgrade/converge.yml similarity index 100% rename from molecule/default-upgrade/playbook.yml rename to molecule/default-upgrade/converge.yml diff --git a/molecule/default-upgrade/molecule.yml b/molecule/default-upgrade/molecule.yml index 5c5f7d445..63311189f 100644 --- a/molecule/default-upgrade/molecule.yml +++ b/molecule/default-upgrade/molecule.yml @@ -4,8 +4,10 @@ dependency: role-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + yamllint . + ansible-lint + # rubocop # This is ignored by molecule, but can be reused in yaml .platform_base: &platform_base privileged: False @@ -43,10 +45,7 @@ provisioner: inventory: links: host_vars: ../scenario_resources/host_vars/ - lint: - name: ansible-lint scenario: - name: default-upgrade test_sequence: - lint - dependency @@ -59,6 +58,3 @@ scenario: - verify verifier: name: inspec - lint: - name: rubocop - enabled: false diff --git a/molecule/default/playbook.yml b/molecule/default/converge.yml similarity index 100% rename from molecule/default/playbook.yml rename to molecule/default/converge.yml diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index baa514c47..9a3a1bf8d 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -4,8 +4,10 @@ dependency: role-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + yamllint . + ansible-lint + # rubocop # This is ignored by molecule, but can be reused in yaml .platform_base: &platform_base privileged: False @@ -40,10 +42,7 @@ provisioner: links: host_vars: ../scenario_resources/host_vars/ group_vars: ../scenario_resources/group_vars/ - lint: - name: ansible-lint scenario: - name: default test_sequence: - lint - dependency @@ -56,6 +55,3 @@ scenario: - verify verifier: name: inspec - lint: - name: rubocop - enabled: false diff --git a/molecule/dynamic/playbook.yml b/molecule/dynamic/converge.yml similarity index 100% rename from molecule/dynamic/playbook.yml rename to molecule/dynamic/converge.yml diff --git a/molecule/dynamic/molecule.yml b/molecule/dynamic/molecule.yml index 0c294d8cc..9a3a1bf8d 100644 --- a/molecule/dynamic/molecule.yml +++ b/molecule/dynamic/molecule.yml @@ -4,8 +4,10 @@ dependency: role-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + yamllint . + ansible-lint + # rubocop # This is ignored by molecule, but can be reused in yaml .platform_base: &platform_base privileged: False @@ -40,10 +42,7 @@ provisioner: links: host_vars: ../scenario_resources/host_vars/ group_vars: ../scenario_resources/group_vars/ - lint: - name: ansible-lint scenario: - name: dynamic test_sequence: - lint - dependency @@ -56,6 +55,3 @@ scenario: - verify verifier: name: inspec - lint: - name: rubocop - enabled: false diff --git a/molecule/scenario_resources/verify.yml b/molecule/scenario_resources/verify.yml index c215ea3c2..ba673baea 100644 --- a/molecule/scenario_resources/verify.yml +++ b/molecule/scenario_resources/verify.yml @@ -27,6 +27,8 @@ package: name: "{{ inspec_download_source_dir }}/{{ inspec_package_name }}" state: latest + tags: + - skip_ansible_lint - name: Create Molecule directory for test files file: @@ -43,12 +45,14 @@ - name: Register test files shell: "ls {{ inspec_test_directory }}/test_*.rb" register: test_files + changed_when: false - name: Execute Inspec tests command: "{{ inspec_bin }} exec {{ item }}" register: test_results with_items: "{{ test_files.stdout_lines }}" ignore_errors: true + changed_when: true - name: Display details about the Inspec results debug: diff --git a/molecule/source-dynamic/playbook.yml b/molecule/source-dynamic/converge.yml similarity index 100% rename from molecule/source-dynamic/playbook.yml rename to molecule/source-dynamic/converge.yml diff --git a/molecule/source-dynamic/molecule.yml b/molecule/source-dynamic/molecule.yml index 581ba3d4f..3767179a4 100644 --- a/molecule/source-dynamic/molecule.yml +++ b/molecule/source-dynamic/molecule.yml @@ -4,8 +4,10 @@ dependency: role-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + yamllint . + ansible-lint + # rubocop # This is ignored by molecule, but can be reused in yaml .platform_base: &platform_base privileged: False @@ -36,10 +38,7 @@ provisioner: links: host_vars: ../scenario_resources/host_vars/ group_vars: ../scenario_resources/group_vars/ - lint: - name: ansible-lint scenario: - name: source-dynamic test_sequence: - lint - dependency @@ -55,6 +54,3 @@ scenario: verifier: name: inspec - lint: - name: rubocop - enabled: false diff --git a/molecule/source-upgrade/playbook.yml b/molecule/source-upgrade/converge.yml similarity index 100% rename from molecule/source-upgrade/playbook.yml rename to molecule/source-upgrade/converge.yml diff --git a/molecule/source-upgrade/molecule.yml b/molecule/source-upgrade/molecule.yml index 3b2e9e979..e829aceaa 100644 --- a/molecule/source-upgrade/molecule.yml +++ b/molecule/source-upgrade/molecule.yml @@ -4,8 +4,10 @@ dependency: role-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + yamllint . + ansible-lint + # rubocop # This is ignored by molecule, but can be reused in yaml .platform_base: &platform_base privileged: False @@ -38,10 +40,7 @@ provisioner: inventory: links: host_vars: ../scenario_resources/host_vars/ - lint: - name: ansible-lint scenario: - name: source-upgrade test_sequence: - lint - dependency @@ -60,6 +59,3 @@ scenario: prepare: prepare.yml verifier: name: inspec - lint: - name: rubocop - enabled: false diff --git a/molecule/source/playbook.yml b/molecule/source/converge.yml similarity index 100% rename from molecule/source/playbook.yml rename to molecule/source/converge.yml diff --git a/molecule/source/molecule.yml b/molecule/source/molecule.yml index ff9f7749d..3767179a4 100644 --- a/molecule/source/molecule.yml +++ b/molecule/source/molecule.yml @@ -4,8 +4,10 @@ dependency: role-file: requirements.yml driver: name: docker -lint: - name: yamllint +lint: | + yamllint . + ansible-lint + # rubocop # This is ignored by molecule, but can be reused in yaml .platform_base: &platform_base privileged: False @@ -36,10 +38,7 @@ provisioner: links: host_vars: ../scenario_resources/host_vars/ group_vars: ../scenario_resources/group_vars/ - lint: - name: ansible-lint scenario: - name: source test_sequence: - lint - dependency @@ -55,6 +54,3 @@ scenario: verifier: name: inspec - lint: - name: rubocop - enabled: false diff --git a/molecule/source/prepare.yml b/molecule/source/prepare.yml index b6a57bfef..afd31b129 100644 --- a/molecule/source/prepare.yml +++ b/molecule/source/prepare.yml @@ -18,12 +18,14 @@ git: repo: 'https://github.com/pulp/pulpcore.git' dest: '{{ pulp_source_dir }}' + version: master update: yes - name: Clone pulp_file repository git: repo: 'https://github.com/pulp/pulp_file.git' dest: '{{ item.value.source_dir }}' + version: master update: yes with_dict: '{{ pulp_install_plugins }}' diff --git a/tox.ini b/tox.ini index e5215947f..a3e5e9241 100644 --- a/tox.ini +++ b/tox.ini @@ -8,8 +8,10 @@ skipsdist = true sitepackages = true deps = ansible + ansible-lint docker - molecule<3.0 + molecule + molecule-inspec passenv = TRAVIS_WAIT whitelist_externals = travis-wait-enhanced