From 4501f5e69bc2135f86d9f3d631c1cfd13773544e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 19:58:36 +0200 Subject: [PATCH 01/21] use new ansible lint action, bump some versions, fix indentation --- .github/workflows/ansible-lint.yml | 92 +++++++++++++++--------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/ansible-lint.yml b/.github/workflows/ansible-lint.yml index 5d91d0b6..b4a7bb03 100644 --- a/.github/workflows/ansible-lint.yml +++ b/.github/workflows/ansible-lint.yml @@ -11,51 +11,51 @@ jobs: runs-on: ubuntu-latest steps: - # Important: This sets up your GITHUB_WORKSPACE environment variable - - name: checkout - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 + # Important: This sets up your GITHUB_WORKSPACE environment variable + - name: checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Lint Ansible Playbook - # replace "master" with any valid ref - uses: ansible/ansible-lint-action@27c37f9001153675ee6abcadcd722bcbdafaba08 # v6.8.2 - with: - # [required] - # Paths to ansible files (i.e., playbooks, tasks, handlers etc..) - # or valid Ansible directories according to the Ansible role - # directory structure. - # If you want to lint multiple ansible files, use the following syntax - # targets: | - # playbook_1.yml - # playbook_2.yml - targets: "*.yml inventory/group_vars/*.yml" - # [optional] - # Arguments to override a package and its version to be set explicitly. - # Must follow the example syntax. - # stick to older version of rich, as the new one is not compatible (yet) with ansible-lint - override-deps: | - rich>=9.5.1,<11.0.0 - # ansible==2.9 - # ansible-lint==4.2.0 - # [optional] - # Arguments to be passed to the ansible-lint + - name: Lint Ansible Playbook + # replace "master" with any valid ref + uses: ansible/ansible-lint@4114ad63edbc25dcd9afc4f41b29dbcbebdf21ca # v25.5.0 + with: + # [required] + # Paths to ansible files (i.e., playbooks, tasks, handlers etc..) + # or valid Ansible directories according to the Ansible role + # directory structure. + # If you want to lint multiple ansible files, use the following syntax + # targets: | + # playbook_1.yml + # playbook_2.yml + targets: "*.yml inventory/group_vars/*.yml" + # [optional] + # Arguments to override a package and its version to be set explicitly. + # Must follow the example syntax. + # stick to older version of rich, as the new one is not compatible (yet) with ansible-lint + # override-deps: | + # rich>=9.5.1,<11.0.0 + # ansible==2.9 + # ansible-lint==4.2.0 + # [optional] + # Arguments to be passed to the ansible-lint - # Options: - # -q quieter, although not silent output - # -p parseable output in the format of pep8 - # --parseable-severity parseable output including severity of rule - # -r RULESDIR specify one or more rules directories using one or - # more -r arguments. Any -r flags override the default - # rules in ansiblelint/rules, unless -R is also used. - # -R Use default rules in ansiblelint/rules in addition to - # any extra - # rules directories specified with -r. There is no need - # to specify this if no -r flags are used - # -t TAGS only check rules whose id/tags match these values - # -x SKIP_LIST only check rules whose id/tags do not match these - # values - # --nocolor disable colored output - # --exclude=EXCLUDE_PATHS - # path to directories or files to skip. This option is - # repeatable. - # -c C Specify configuration file to use. Defaults to ".ansible-lint" - args: "" + # Options: + # -q quieter, although not silent output + # -p parseable output in the format of pep8 + # --parseable-severity parseable output including severity of rule + # -r RULESDIR specify one or more rules directories using one or + # more -r arguments. Any -r flags override the default + # rules in ansiblelint/rules, unless -R is also used. + # -R Use default rules in ansiblelint/rules in addition to + # any extra + # rules directories specified with -r. There is no need + # to specify this if no -r flags are used + # -t TAGS only check rules whose id/tags match these values + # -x SKIP_LIST only check rules whose id/tags do not match these + # values + # --nocolor disable colored output + # --exclude=EXCLUDE_PATHS + # path to directories or files to skip. This option is + # repeatable. + # -c C Specify configuration file to use. Defaults to ".ansible-lint" + args: "" From e8db91d16714bfca4cc96e16c322464fc21af095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:04:45 +0200 Subject: [PATCH 02/21] disable targets, this has been removed --- .github/workflows/ansible-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ansible-lint.yml b/.github/workflows/ansible-lint.yml index b4a7bb03..72e4d417 100644 --- a/.github/workflows/ansible-lint.yml +++ b/.github/workflows/ansible-lint.yml @@ -27,7 +27,7 @@ jobs: # targets: | # playbook_1.yml # playbook_2.yml - targets: "*.yml inventory/group_vars/*.yml" + # targets: "*.yml inventory/group_vars/*.yml" # [optional] # Arguments to override a package and its version to be set explicitly. # Must follow the example syntax. From 7ffb3e72685e705a84144eb5d56a5b349f8b3b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:05:59 +0200 Subject: [PATCH 03/21] missing spaces --- .github/workflows/build-publish-containers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-publish-containers.yml b/.github/workflows/build-publish-containers.yml index 99a6f521..4c2c6709 100644 --- a/.github/workflows/build-publish-containers.yml +++ b/.github/workflows/build-publish-containers.yml @@ -25,7 +25,7 @@ permissions: read-all jobs: build_and_publish: name: Build and publish image - #runs-on: self-hosted + # runs-on: self-hosted runs-on: ubuntu-24.04-arm timeout-minutes: 720 permissions: @@ -77,7 +77,7 @@ jobs: echo DOCKERFILE=Dockerfile.EESSI-${tag//:/-} >> $GITHUB_ENV - name: Build and push to GitHub Packages - uses: docker/build-push-action@c56af957549030174b10d6867f20e78cfd7debc5 #v3.2.0 + uses: docker/build-push-action@c56af957549030174b10d6867f20e78cfd7debc5 # v3.2.0 with: tags: ghcr.io/${{ env.REPOSITORY_OWNER }}/${{ matrix.tag }}-${{ matrix.platform }} file: containers/${{ env.DOCKERFILE }} From 2066f77058ca5eb1297bd38b091587e1b7351c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:10:20 +0200 Subject: [PATCH 04/21] missing spaces, split long lines --- .../build-test-release-client-packages.yml | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 524ae6e6..26ec3728 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -49,19 +49,25 @@ jobs: uses: bpicode/github-action-fpm@7502b06a5a58390398d4002bd284f8cb3caae6eb with: fpm_args: "etc" - fpm_opts: "--debug -n cvmfs-config-eessi -v ${{ steps.get_version.outputs.version }} -t rpm -a all -s dir -C ./package --description 'CVMFS configuration package for EESSI.'" + fpm_opts: > + --debug -n cvmfs-config-eessi -v ${{ steps.get_version.outputs.version }} -t rpm -a all -s dir + -C ./package --description 'CVMFS configuration package for EESSI.' - name: Build Deb package uses: bpicode/github-action-fpm@7502b06a5a58390398d4002bd284f8cb3caae6eb with: fpm_args: "etc" - fpm_opts: "--debug -n cvmfs-config-eessi -v ${{ steps.get_version.outputs.version }} -t deb -a all -s dir -C ./package --description 'CVMFS configuration package for EESSI.'" + fpm_opts: > + --debug -n cvmfs-config-eessi -v ${{ steps.get_version.outputs.version }} -t deb -a all -s dir + -C ./package --description 'CVMFS configuration package for EESSI.' - name: Build tar package uses: bpicode/github-action-fpm@7502b06a5a58390398d4002bd284f8cb3caae6eb with: fpm_args: "etc" - fpm_opts: "--debug -n cvmfs-config-eessi-${{ steps.get_version.outputs.version }} -t tar -a all -s dir -C ./package --description 'CVMFS configuration package for EESSI.'" + fpm_opts: > + --debug -n cvmfs-config-eessi-${{ steps.get_version.outputs.version }} -t tar -a all -s dir + -C ./package --description 'CVMFS configuration package for EESSI.' - name: Upload packages as build artifacts uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 @@ -103,7 +109,9 @@ jobs: # run: gem install --no-document fpm # # - name: Build package -# run: "fpm --debug -n cvmfs-config-eessi -v ${{ steps.get_version.outputs.version }} -t osxpkg -a all -s dir -C ./package --description 'CVMFS configuration package for EESSI.' etc" +# run: > +# fpm --debug -n cvmfs-config-eessi -v ${{ steps.get_version.outputs.version }} -t osxpkg -a all -s dir +# -C ./package --description 'CVMFS configuration package for EESSI.' etc # # - name: Find filename of generated package # id: find_filename @@ -192,7 +200,7 @@ jobs: run: echo "CVMFS_CLIENT_PROFILE=single" | tee /etc/cvmfs/default.local - name: Mount the repositories - #run: cvmfs_config setup + # run: cvmfs_config setup run: mkdir -p /cvmfs/software.eessi.io && mount -t cvmfs software.eessi.io /cvmfs/software.eessi.io - name: Test repository access @@ -273,7 +281,7 @@ jobs: # run: ls /Users/Shared/cvmfs/software.eessi.io/ release: - #needs: [build-linux-packages, build-macos-package, test-deb-package, test-rpm-package, test-macos-package, test-tar-package] + # needs: [build-linux-packages, build-macos-package, test-deb-package, test-rpm-package, test-macos-package, test-tar-package] needs: [build-linux-packages, test-deb-package, test-rpm-package, test-tar-package] if: startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest @@ -351,8 +359,10 @@ jobs: tag: latest name: Filesystem Layer latest release body: | - Filesystem Layer release ${{ steps.find_version.outputs.version }} (see: https://github.com/${{github.repository}}/releases/tag/${{ steps.find_version.outputs.version }}) + Filesystem Layer release ${{ steps.find_version.outputs.version }} + (see: https://github.com/${{github.repository}}/releases/tag/${{ steps.find_version.outputs.version }}) - This `latest` tag is a moving tag that is updated automatically for each release, and provides easy access to the latest `cvmfs-config-eessi` packages. + This `latest` tag is a moving tag that is updated automatically for each release, + and provides easy access to the latest `cvmfs-config-eessi` packages. files: ${{ steps.find_filenames.outputs.package_filenames }} gzip: false From 3be689f12c29756dc7c9ea282079df762b35a90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:11:46 +0200 Subject: [PATCH 05/21] bump geerlinguy.repo-epel to 3.1.1 --- requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.yml b/requirements.yml index 82cdcb27..7d0a7c0e 100644 --- a/requirements.yml +++ b/requirements.yml @@ -8,4 +8,4 @@ roles: version: 34b6e07 - name: geerlingguy.repo-epel - version: 3.0.0 + version: 3.1.1 From 8902fa6a7aec1c53232b75bef21097aa5b2f72a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:17:43 +0200 Subject: [PATCH 06/21] add requirement on community.general collection for geerlingguy.repo-epel --- requirements.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/requirements.yml b/requirements.yml index 7d0a7c0e..2711983f 100644 --- a/requirements.yml +++ b/requirements.yml @@ -9,3 +9,9 @@ roles: - name: geerlingguy.repo-epel version: 3.1.1 + +collections: + + - name: community.general + version: '>=8.6.1' + From 71d8bb44a03572852198de3b125007d3532715ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:19:24 +0200 Subject: [PATCH 07/21] add and remove space --- .github/workflows/check-stratum-servers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-stratum-servers.yml b/.github/workflows/check-stratum-servers.yml index d596c665..7cdaa7f0 100644 --- a/.github/workflows/check-stratum-servers.yml +++ b/.github/workflows/check-stratum-servers.yml @@ -9,7 +9,7 @@ on: - main schedule: # * is a special character in YAML so you have to quote this string - - cron: '30 5 * * *' + - cron: '30 5 * * *' # Declare default permissions as read only. permissions: read-all @@ -39,4 +39,4 @@ jobs: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} SLACK_MESSAGE: ${{ env.STRATUM_ERRORS }} SLACK_COLOR: 'danger' - SLACK_FOOTER: + SLACK_FOOTER: From a2dd082d7c9cf273df7175ee6b1d7bd8e6059618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:22:42 +0200 Subject: [PATCH 08/21] quotes around modes, use ansible.builtin --- prepare-client-packages.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/prepare-client-packages.yml b/prepare-client-packages.yml index 5696fb34..96b06825 100644 --- a/prepare-client-packages.yml +++ b/prepare-client-packages.yml @@ -9,19 +9,19 @@ package_source_dir: "{{ lookup('env', 'GITHUB_WORKSPACE') | default('/tmp', True) }}/package" tasks: - name: Check the number of defined domains (should be one!) - fail: + ansible.builtin.fail: msg: "Cannot build a client package when eessi_cvmfs_server_urls contains different domains" when: eessi_cvmfs_server_urls | selectattr('domain') | list | unique | count > 1 - name: Determine domain name - set_fact: + ansible.builtin.set_fact: eessi_domain: "{{ eessi_cvmfs_server_urls[0].domain }}" - name: Create directory structure for the CVMFS config - file: + ansible.builtin.file: path: "{{ item }}" state: directory - mode: 0775 + mode: "0775" with_items: - "{{ package_source_dir }}" - "{{ package_source_dir }}/etc" @@ -31,14 +31,14 @@ - "{{ package_source_dir }}/etc/cvmfs/domain.d" - name: Make EESSI CVMFS public key files - copy: + ansible.builtin.copy: content: "{{ item.key }}" dest: "{{ package_source_dir }}{{ item.path }}" - mode: 0644 + mode: "0644" with_items: "{{ eessi_cvmfs_keys }}" - name: Make EESSI CVMFS domain configuration file - copy: + ansible.builtin.copy: content: | # Stratum 1 servers for the eessi.io domain CVMFS_SERVER_URL="{{ item.urls|join(';') }}" @@ -59,5 +59,5 @@ fi dest: "{{ package_source_dir }}/etc/cvmfs/domain.d/{{ item.domain }}.conf" - mode: 0644 + mode: "0644" with_items: "{{ eessi_cvmfs_server_urls }}" From 67fd609612aa8a903e4fc3110b6f0c3c72f1f479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:25:05 +0200 Subject: [PATCH 09/21] add spaces --- prepare-client-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prepare-client-packages.yml b/prepare-client-packages.yml index 96b06825..4afbd800 100644 --- a/prepare-client-packages.yml +++ b/prepare-client-packages.yml @@ -41,7 +41,7 @@ ansible.builtin.copy: content: | # Stratum 1 servers for the eessi.io domain - CVMFS_SERVER_URL="{{ item.urls|join(';') }}" + CVMFS_SERVER_URL="{{ item.urls | join(';') }}" # Public keys for the eessi.io domain CVMFS_KEYS_DIR="/etc/cvmfs/keys/{{ item.domain }}" From f09179b9ee7ead288fb6c0a21f852c228b064721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:25:46 +0200 Subject: [PATCH 10/21] remove blank lines --- requirements.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/requirements.yml b/requirements.yml index 2711983f..07589455 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,17 +1,12 @@ --- - # ansible-galaxy role install -r requirements.yml roles: - - name: eessi.cvmfs src: https://github.com/EESSI/ansible-cvmfs version: 34b6e07 - - name: geerlingguy.repo-epel version: 3.1.1 collections: - - name: community.general version: '>=8.6.1' - From 2cc68de7130074cd7ef3f64e48aec9b47b3db830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:36:28 +0200 Subject: [PATCH 11/21] dont treat this as a playbook, add noqa comment --- .github/workflows/test-playbooks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-playbooks.yml b/.github/workflows/test-playbooks.yml index 7e327d9f..07716c1f 100644 --- a/.github/workflows/test-playbooks.yml +++ b/.github/workflows/test-playbooks.yml @@ -1,4 +1,4 @@ -name: Test Ansible Playbooks +name: Test Ansible Playbooks # noqa: syntax-check[specific] on: push: From b2a7e288f6288a4bb4d761c19bfcfa10c680fc67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:39:38 +0200 Subject: [PATCH 12/21] prefix role vars with role name --- roles/create_cvmfs_content_structure/defaults/main.yml | 6 +++--- roles/create_cvmfs_content_structure/tasks/do_repo.yml | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/roles/create_cvmfs_content_structure/defaults/main.yml b/roles/create_cvmfs_content_structure/defaults/main.yml index c59b0b34..ce2e01ee 100644 --- a/roles/create_cvmfs_content_structure/defaults/main.yml +++ b/roles/create_cvmfs_content_structure/defaults/main.yml @@ -1,3 +1,3 @@ -cvmfs_start_transaction: true -cvmfs_publish_transaction: true -cvmfs_abort_transaction_on_failures: true +create_cvmfs_content_structure_start_transaction: true +create_cvmfs_content_structure_publish_transaction: true +create_cvmfs_content_structure_abort_transaction_on_failures: true diff --git a/roles/create_cvmfs_content_structure/tasks/do_repo.yml b/roles/create_cvmfs_content_structure/tasks/do_repo.yml index 06ccf2d4..cd90ac95 100644 --- a/roles/create_cvmfs_content_structure/tasks/do_repo.yml +++ b/roles/create_cvmfs_content_structure/tasks/do_repo.yml @@ -6,7 +6,7 @@ - name: Start transaction ansible.builtin.command: "cvmfs_server transaction {{ cvmfs_repo }}" - when: cvmfs_start_transaction + when: create_cvmfs_content_structure_start_transaction - name: Apply changes to CVMFS repository, if there are any block: @@ -30,8 +30,8 @@ - name: Publish transaction ansible.builtin.command: "cvmfs_server publish {{ cvmfs_repo }}" when: - - cvmfs_start_transaction - - cvmfs_publish_transaction + - create_cvmfs_content_structure_start_transaction + - create_cvmfs_content_structure_publish_transaction - create_symlinks.changed or create_files.changed register: publish @@ -42,7 +42,9 @@ rescue: - name: Abort transaction ansible.builtin.command: "cvmfs_server abort {{ cvmfs_repo }}" - when: cvmfs_start_transaction and cvmfs_abort_transaction_on_failures + when: + - create_cvmfs_content_structure_start_transaction + - create_cvmfs_content_structure_abort_transaction_on_failures - name: Exit because of failure ansible.builtin.fail: From ab43f4b8834948f3df8c7757b8e1a39c732b1908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:45:56 +0200 Subject: [PATCH 13/21] add creates/removes for commands --- .../tasks/do_repo.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/roles/create_cvmfs_content_structure/tasks/do_repo.yml b/roles/create_cvmfs_content_structure/tasks/do_repo.yml index cd90ac95..7985eb34 100644 --- a/roles/create_cvmfs_content_structure/tasks/do_repo.yml +++ b/roles/create_cvmfs_content_structure/tasks/do_repo.yml @@ -5,7 +5,9 @@ ansible.builtin.include_vars: "{{ cvmfs_repo }}.yml" - name: Start transaction - ansible.builtin.command: "cvmfs_server transaction {{ cvmfs_repo }}" + ansible.builtin.command: + cmd: "cvmfs_server transaction {{ cvmfs_repo }}" + creates: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" when: create_cvmfs_content_structure_start_transaction - name: Apply changes to CVMFS repository, if there are any @@ -28,7 +30,9 @@ register: create_files - name: Publish transaction - ansible.builtin.command: "cvmfs_server publish {{ cvmfs_repo }}" + ansible.builtin.command: + cmd: "cvmfs_server publish {{ cvmfs_repo }}" + removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" when: - create_cvmfs_content_structure_start_transaction - create_cvmfs_content_structure_publish_transaction @@ -36,12 +40,16 @@ register: publish - name: Abort transaction - ansible.builtin.command: "cvmfs_server abort {{ cvmfs_repo }}" + ansible.builtin.command: + cmd: "cvmfs_server abort {{ cvmfs_repo }}" + removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" when: publish is skipped rescue: - name: Abort transaction - ansible.builtin.command: "cvmfs_server abort {{ cvmfs_repo }}" + ansible.builtin.command: + cmd: "cvmfs_server abort {{ cvmfs_repo }}" + removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" when: - create_cvmfs_content_structure_start_transaction - create_cvmfs_content_structure_abort_transaction_on_failures From b00050ca803cdd579d002a9c0756bd021021d453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:47:22 +0200 Subject: [PATCH 14/21] fix indentation of block --- .../tasks/do_repo.yml | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/roles/create_cvmfs_content_structure/tasks/do_repo.yml b/roles/create_cvmfs_content_structure/tasks/do_repo.yml index 7985eb34..cdfac729 100644 --- a/roles/create_cvmfs_content_structure/tasks/do_repo.yml +++ b/roles/create_cvmfs_content_structure/tasks/do_repo.yml @@ -12,38 +12,38 @@ - name: Apply changes to CVMFS repository, if there are any block: - - name: "Create symlinks" - ansible.builtin.file: - path: "/cvmfs/{{ cvmfs_repo }}/{{ item }}" - src: "{{ symlinks[item] }}" - state: link - force: true - with_items: "{{ symlinks }}" - register: create_symlinks - - - name: "Copy files" - ansible.builtin.copy: - src: "{{ item.name }}" - dest: "/cvmfs/{{ cvmfs_repo }}/{{ item.dest }}" - mode: "{{ item.mode }}" - with_items: "{{ files }}" - register: create_files - - - name: Publish transaction - ansible.builtin.command: - cmd: "cvmfs_server publish {{ cvmfs_repo }}" - removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" - when: - - create_cvmfs_content_structure_start_transaction - - create_cvmfs_content_structure_publish_transaction - - create_symlinks.changed or create_files.changed - register: publish - - - name: Abort transaction - ansible.builtin.command: - cmd: "cvmfs_server abort {{ cvmfs_repo }}" - removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" - when: publish is skipped + - name: "Create symlinks" + ansible.builtin.file: + path: "/cvmfs/{{ cvmfs_repo }}/{{ item }}" + src: "{{ symlinks[item] }}" + state: link + force: true + with_items: "{{ symlinks }}" + register: create_symlinks + + - name: "Copy files" + ansible.builtin.copy: + src: "{{ item.name }}" + dest: "/cvmfs/{{ cvmfs_repo }}/{{ item.dest }}" + mode: "{{ item.mode }}" + with_items: "{{ files }}" + register: create_files + + - name: Publish transaction + ansible.builtin.command: + cmd: "cvmfs_server publish {{ cvmfs_repo }}" + removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" + when: + - create_cvmfs_content_structure_start_transaction + - create_cvmfs_content_structure_publish_transaction + - create_symlinks.changed or create_files.changed + register: publish + + - name: Abort transaction + ansible.builtin.command: + cmd: "cvmfs_server abort {{ cvmfs_repo }}" + removes: "/var/spool/cvmfs/{{ cvmfs_repo }}/in_transaction.lock" + when: publish is skipped rescue: - name: Abort transaction From c892d75bfd2d2176bbb62bba210fdaccb1f27464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:51:20 +0200 Subject: [PATCH 15/21] add noqa for files/symlinks variables --- .../vars/pilot.eessi-hpc.org.yml | 4 ++-- roles/create_cvmfs_content_structure/vars/riscv.eessi.io.yml | 4 ++-- .../create_cvmfs_content_structure/vars/software.eessi.io.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/roles/create_cvmfs_content_structure/vars/pilot.eessi-hpc.org.yml b/roles/create_cvmfs_content_structure/vars/pilot.eessi-hpc.org.yml index 84d5b7a8..95d4ec7d 100644 --- a/roles/create_cvmfs_content_structure/vars/pilot.eessi-hpc.org.yml +++ b/roles/create_cvmfs_content_structure/vars/pilot.eessi-hpc.org.yml @@ -1,11 +1,11 @@ # Specifications of files and symlinks for the pilot.eessi-hpc.org CVMFS repository. # Paths for files and symlinks should be relative to the root of the repository. --- -files: +files: # noqa: var-naming[no-role-prefix] - name: .cvmfsdirtab dest: '' mode: '644' -symlinks: +symlinks: # noqa: var-naming[no-role-prefix] latest: versions/2021.12 host_injections: '$(EESSI_HOST_INJECTIONS:-/opt/eessi)' diff --git a/roles/create_cvmfs_content_structure/vars/riscv.eessi.io.yml b/roles/create_cvmfs_content_structure/vars/riscv.eessi.io.yml index fb74ec86..ab0e442a 100644 --- a/roles/create_cvmfs_content_structure/vars/riscv.eessi.io.yml +++ b/roles/create_cvmfs_content_structure/vars/riscv.eessi.io.yml @@ -1,7 +1,7 @@ # Specifications of files and symlinks for the riscv.eessi.io CVMFS repository. # Paths for files and symlinks should be relative to the root of the repository. --- -files: +files: # noqa: var-naming[no-role-prefix] - name: .cvmfsdirtab dest: '' mode: '644' @@ -10,5 +10,5 @@ files: dest: 'README.eessi' mode: '644' -symlinks: +symlinks: # noqa: var-naming[no-role-prefix] host_injections: '$(EESSI_HOST_INJECTIONS:-/opt/eessi)' diff --git a/roles/create_cvmfs_content_structure/vars/software.eessi.io.yml b/roles/create_cvmfs_content_structure/vars/software.eessi.io.yml index 745e1145..f8b59dfa 100644 --- a/roles/create_cvmfs_content_structure/vars/software.eessi.io.yml +++ b/roles/create_cvmfs_content_structure/vars/software.eessi.io.yml @@ -1,7 +1,7 @@ # Specifications of files and symlinks for the software.eessi.io CVMFS repository. # Paths for files and symlinks should be relative to the root of the repository. --- -files: +files: # noqa: var-naming[no-role-prefix] - name: .cvmfsdirtab dest: '' mode: '644' @@ -10,5 +10,5 @@ files: dest: '' mode: '644' -symlinks: +symlinks: # noqa: var-naming[no-role-prefix] host_injections: '$(EESSI_HOST_INJECTIONS:-/opt/eessi)' From 93b4ec7f609fb176333233faf4a5d18304900f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:54:04 +0200 Subject: [PATCH 16/21] prefix variables with role name --- roles/cvmfs_server_meta_info/defaults/main.yml | 4 ++-- roles/cvmfs_server_meta_info/tasks/main.yml | 4 ++-- roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/cvmfs_server_meta_info/defaults/main.yml b/roles/cvmfs_server_meta_info/defaults/main.yml index 6bf29641..198baaaa 100644 --- a/roles/cvmfs_server_meta_info/defaults/main.yml +++ b/roles/cvmfs_server_meta_info/defaults/main.yml @@ -1,11 +1,11 @@ --- -cvmfs_server_meta: +cvmfs_server_meta_info_server: administrator: "{{ cvmfs_server_meta_administrator | default('Your Name') }}" email: "{{ cvmfs_server_meta_email | default('you@organisation.org') }}" organisation: "{{ cvmfs_server_meta_organisation | default('Your Organisation') }}" custom: "{{ cvmfs_server_meta_custom | default({'_comment': 'Put arbitrary structured data here'}) }}" -cvmfs_repo_meta: +cvmfs_server_meta_info_repo: administrator: "{{ cvmfs_server_meta_administrator | default('Your Name') }}" email: "{{ cvmfs_server_meta_email | default('you@organisation.org') }}" organisation: "{{ cvmfs_server_meta_organisation | default('Your Organisation') }}" diff --git a/roles/cvmfs_server_meta_info/tasks/main.yml b/roles/cvmfs_server_meta_info/tasks/main.yml index 93c7ce02..5d4ba3a5 100644 --- a/roles/cvmfs_server_meta_info/tasks/main.yml +++ b/roles/cvmfs_server_meta_info/tasks/main.yml @@ -1,11 +1,11 @@ --- - name: Create a meta.json containing the CVMFS Server Meta Information ansible.builtin.copy: - content: "{{ cvmfs_server_meta | to_nice_json(indent=2, sort_keys=false) }}" + content: "{{ cvmfs_server_meta_info_server | to_nice_json(indent=2, sort_keys=false) }}" dest: "{{ cvmfs_srv_mount }}/cvmfs/info/v1/meta.json" owner: root group: root - mode: 0644 + mode: "0644" become: true when: (cvmfs_repositories | length) > 0 diff --git a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml index 56a8a59c..d794a50e 100644 --- a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml +++ b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml @@ -7,7 +7,7 @@ - name: Add meta information for repository to temporary json file ansible.builtin.copy: - content: "{{ cvmfs_repo_meta | combine(this_cvmfs_repo_meta) | to_nice_json(indent=2, sort_keys=false) }}" + content: "{{ cvmfs_server_meta_info_repo | combine(this_cvmfs_repo_meta) | to_nice_json(indent=2, sort_keys=false) }}" dest: "{{ tmp_json_file.path }}" mode: 0644 From 2172fc802fc9b9ffc988aaab5e8adaabd39a2940 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:55:50 +0200 Subject: [PATCH 17/21] octal as string --- roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml index d794a50e..781ec988 100644 --- a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml +++ b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml @@ -9,7 +9,7 @@ ansible.builtin.copy: content: "{{ cvmfs_server_meta_info_repo | combine(this_cvmfs_repo_meta) | to_nice_json(indent=2, sort_keys=false) }}" dest: "{{ tmp_json_file.path }}" - mode: 0644 + mode: "0644" - name: Calculate the checksum of the json file ansible.builtin.stat: From 30cbda1b7c1458ac49019bbc0512418c84325ef4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:58:10 +0200 Subject: [PATCH 18/21] add changed_when true when the metadata is updated --- roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml index 781ec988..37f9ef35 100644 --- a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml +++ b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml @@ -25,6 +25,7 @@ - name: Update the repository's meta information ansible.builtin.command: cmd: "cvmfs_server update-repoinfo -f {{ tmp_json_file.path }} {{ this_cvmfs_repo.repository }}" + changed_when: true when: (current_repo_meta.stdout | checksum) != json_file_stat.stat.checksum become_user: "{{ cvmfs_repo_owner | default('root') }}" From fa384c522f97ed794992ed902631347f5a5376d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 20:59:31 +0200 Subject: [PATCH 19/21] add become: true --- roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml index 37f9ef35..4d9681be 100644 --- a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml +++ b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml @@ -28,6 +28,7 @@ changed_when: true when: (current_repo_meta.stdout | checksum) != json_file_stat.stat.checksum become_user: "{{ cvmfs_repo_owner | default('root') }}" + become: true - name: Remove temporary json file ansible.builtin.file: From 0b4b55cd5eb3af075028d7fbdc54356713891763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 21:02:30 +0200 Subject: [PATCH 20/21] make lint exception --- roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml index 4d9681be..11ed1850 100644 --- a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml +++ b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml @@ -22,10 +22,9 @@ changed_when: false register: current_repo_meta -- name: Update the repository's meta information +- name: Update the repository's meta information # noqa: [inline-env-var, no-changed-when] ansible.builtin.command: cmd: "cvmfs_server update-repoinfo -f {{ tmp_json_file.path }} {{ this_cvmfs_repo.repository }}" - changed_when: true when: (current_repo_meta.stdout | checksum) != json_file_stat.stat.checksum become_user: "{{ cvmfs_repo_owner | default('root') }}" become: true From 1b567a68b2f10eb3b70138bce2bb463ca56d8aa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 20 Jun 2025 21:04:45 +0200 Subject: [PATCH 21/21] space-separated list for noqa --- roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml index 11ed1850..a3b5a6a2 100644 --- a/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml +++ b/roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml @@ -22,7 +22,7 @@ changed_when: false register: current_repo_meta -- name: Update the repository's meta information # noqa: [inline-env-var, no-changed-when] +- name: Update the repository's meta information # noqa: inline-env-var no-changed-when ansible.builtin.command: cmd: "cvmfs_server update-repoinfo -f {{ tmp_json_file.path }} {{ this_cvmfs_repo.repository }}" when: (current_repo_meta.stdout | checksum) != json_file_stat.stat.checksum