Blame test/data/ansible/check_ostree.yaml

Packit Service 509fd4
---
Packit Service 509fd4
- hosts: ostree_guest
Packit Service 509fd4
  become: no
Packit Service 509fd4
  vars:
Packit Service 509fd4
    workspace: "{{ lookup('env', 'WORKSPACE') }}"
Packit Service 509fd4
    total_counter: "0"
Packit Service 509fd4
    failed_counter: "0"
Packit Service 509fd4
Packit Service 509fd4
  tasks:
Packit Service 15f37d
    # default kernel or rt kernel
Packit Service 15f37d
    - name: check installed kernel
Packit Service 15f37d
      command: uname -r
Packit Service 15f37d
      register: result_kernel
Packit Service 15f37d
Packit Service 15f37d
    # case: check rt kernel installed (rt kernel only)
Packit Service 15f37d
    - name: check rt kernel installed
Packit Service 15f37d
      block:
Packit Service 15f37d
        - assert:
Packit Service 15f37d
            that:
Packit Service 15f37d
              - "'rt' in result_kernel.stdout"
Packit Service 15f37d
            fail_msg: "rt kernel not installed, ostree upgrade might be failed"
Packit Service 15f37d
            success_msg: "rt kernel installed in ostree upgrade"
Packit Service 15f37d
      always:
Packit Service 15f37d
        - set_fact:
Packit Service 15f37d
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 15f37d
      rescue:
Packit Service 15f37d
        - name: failed count + 1
Packit Service 15f37d
          set_fact:
Packit Service 15f37d
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 15f37d
      when: "'rt' in result_kernel.stdout"
Packit Service 15f37d
Packit Service 509fd4
    # case: check ostree commit correctly updated
Packit Service 509fd4
    - name: get deployed ostree commit
Packit Service 509fd4
      command: rpm-ostree status --json
Packit Service 509fd4
      register: result_commit
Packit Service 509fd4
Packit Service 509fd4
    - name: make a json result
Packit Service 509fd4
      set_fact:
Packit Service 509fd4
        deploy_commit: "{{ result_commit.stdout | from_json | json_query('deployments[0].checksum') }}"
Packit Service 509fd4
Packit Service 509fd4
    - name: check commit deployed and built
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - deploy_commit == ostree_commit
Packit Service 509fd4
            fail_msg: "deployed ostree commit is not commit built by osbuild-composer"
Packit Service 509fd4
            success_msg: "successful building and deployment"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case from bug: https://bugzilla.redhat.com/show_bug.cgi?id=1848453
Packit Service 509fd4
    - name: check ostree-remount status
Packit Service 509fd4
      command: systemctl is-active ostree-remount.service
Packit Service 509fd4
      register: result_remount
Packit Service 509fd4
Packit Service 509fd4
    - name: ostree-remount should be started
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_remount.stdout == "active"
Packit Service 509fd4
            fail_msg: "ostree-remount is not started by default"
Packit Service 509fd4
            success_msg: "starting ostree-remount successful"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check /sysroot moutn point
Packit Service 509fd4
    - name: check /sysroot mount point
Packit Service 509fd4
      command: findmnt -r -o SOURCE -n /sysroot
Packit Service 509fd4
      register: result_sysroot_mount_point
Packit Service 509fd4
Packit Service 509fd4
    - name: /sysroot should be mounted on /dev/vda2
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_sysroot_mount_point.stdout == "/dev/vda2"
Packit Service 509fd4
            fail_msg: "/var does not mount on /dev/vda2"
Packit Service 509fd4
            success_msg: "/var mounts on /dev/vda2"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check /sysroot mount status
Packit Service 509fd4
    - name: check /sysroot mount status
Packit Service 509fd4
      shell: findmnt -r -o OPTIONS -n /sysroot | awk -F "," '{print $1}'
Packit Service 509fd4
      register: result_sysroot_mount_status
Packit Service 509fd4
Packit Service 509fd4
    - name: /sysroot should be mount with rw permission
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_sysroot_mount_status.stdout == "rw"
Packit Service 509fd4
            fail_msg: "/sysroot is not mounted with rw permission"
Packit Service 509fd4
            success_msg: "/sysroot is mounted with rw permission"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check /var mount point
Packit Service 509fd4
    - name: check /var mount point
Packit Service 509fd4
      command: findmnt -r -o SOURCE -n /var
Packit Service 509fd4
      register: result_var_mount_point
Packit Service 509fd4
Packit Service 509fd4
    - name: "/var should be mounted on /dev/vda2[/ostree/deploy/{{ image_type }}/var]"
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_var_mount_point.stdout == "/dev/vda2[/ostree/deploy/{{ image_type }}/var]"
Packit Service 509fd4
            fail_msg: "/var does not mount on /dev/vda2[/ostree/deploy/{{ image_type }}/var]"
Packit Service 509fd4
            success_msg: "/var mounts on /dev/vda2[/ostree/deploy/{{ image_type }}/var]"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check /var mount status
Packit Service 509fd4
    - name: check /var mount status
Packit Service 509fd4
      shell: findmnt -r -o OPTIONS -n /var | awk -F "," '{print $1}'
Packit Service 509fd4
      register: result_var_mount_status
Packit Service 509fd4
Packit Service 509fd4
    - name: /var should be mount with rw permission
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_var_mount_status.stdout == "rw"
Packit Service 509fd4
            fail_msg: "/var is not mounted with rw permission"
Packit Service 509fd4
            success_msg: "/var is mounted with rw permission"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check /usr mount point
Packit Service 509fd4
    - name: check /usr mount point
Packit Service 509fd4
      command: findmnt -r -o SOURCE -n /usr
Packit Service 509fd4
      register: result_usr_mount_point
Packit Service 509fd4
Packit Service 509fd4
    - name: "/usr should be mounted on /dev/vda2[/ostree/deploy/{{ image_type }}/deploy/{{ deploy_commit }}.0/usr]"
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_usr_mount_point.stdout == "/dev/vda2[/ostree/deploy/{{ image_type }}/deploy/{{ deploy_commit }}.0/usr]"
Packit Service 509fd4
            fail_msg: "/usr does not mount on /dev/vda2[/ostree/deploy/{{ image_type }}/deploy/{{ deploy_commit }}.0/usr]"
Packit Service 509fd4
            success_msg: "/usr mounts on /dev/vda2[/ostree/deploy/{{ image_type }}/deploy/{{ deploy_commit }}.0/usr]"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check /usr mount status
Packit Service 509fd4
    - name: check /usr mount status
Packit Service 509fd4
      shell: findmnt -r -o OPTIONS -n /usr | awk -F "," '{print $1}'
Packit Service 509fd4
      register: result_usr_mount_status
Packit Service 509fd4
Packit Service 509fd4
    - name: /usr should be mount with rw permission
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_usr_mount_status.stdout == "ro"
Packit Service 509fd4
            fail_msg: "/usr is not mounted with ro permission"
Packit Service 509fd4
            success_msg: "/usr is mounted with ro permission"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    - name: get the first 10 chars in commit hash
Packit Service 509fd4
      set_fact:
Packit Service 509fd4
        commit_log: "{{ deploy_commit[:11] }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check wget installed after upgrade
Packit Service 509fd4
    - name: check installed package
Packit Service 509fd4
      shell: rpm -qa | sort
Packit Service 509fd4
      register: result_packages
Packit Service 509fd4
Packit Service 509fd4
    - name: check wget installed
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'wget' in result_packages.stdout"
Packit Service 509fd4
            fail_msg: "wget not installed, ostree upgrade might be failed"
Packit Service 509fd4
            success_msg: "wget installed in ostree upgrade"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    - name: save installed package to log file
Packit Service 509fd4
      copy:
Packit Service 509fd4
        content: "{{ result_packages.stdout }}"
Packit Service 509fd4
        dest: "{{ workspace }}/{{ commit_log }}.installed.ostree.log"
Packit Service 509fd4
      delegate_to: localhost
Packit Service 509fd4
Packit Service 509fd4
    # case: check ostree-remount mount log
Packit Service 509fd4
    - name: check ostree-remount mount log
Packit Service 509fd4
      command: journalctl -u ostree-remount
Packit Service 509fd4
      register: result_remount_jounalctl
Packit Service 509fd4
Packit Service 509fd4
    - name: ostree-remount should remount /var and /sysroot
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'/sysroot' in result_remount_jounalctl.stdout"
Packit Service 509fd4
              - "'/var' in result_remount_jounalctl.stdout"
Packit Service 509fd4
            fail_msg: "/sysroot or /var are not remounted by ostree-remount"
Packit Service 509fd4
            success_msg: "/sysroot and /var are remount"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check dmesg error and failed log
Packit Service 509fd4
    - name: check dmesg output
Packit Service 509fd4
      command: dmesg
Packit Service 509fd4
      register: result_dmesg
Packit Service 509fd4
Packit Service 509fd4
    - name: save dmesg output to log file
Packit Service 509fd4
      copy:
Packit Service 509fd4
        content: "{{ result_dmesg.stdout }}"
Packit Service 509fd4
        dest: "{{ workspace }}/{{ commit_log }}.dmesg.ostree.log"
Packit Service 509fd4
      delegate_to: localhost
Packit Service 509fd4
Packit Service 509fd4
    - name: check dmesg error and fail log
Packit Service 15f37d
      shell: dmesg --notime | grep -i "error\|fail" || true
Packit Service 509fd4
      register: result_dmesg_error
Packit Service 509fd4
Packit Service 15f37d
    # (RHEL)default kernel has error and fail log
Packit Service 509fd4
    - name: no more error or failed log
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 15f37d
              - result_dmesg_error.stdout_lines | length <= 2
Packit Service 15f37d
              - "'pcieport 0000:00:01.6: Failed to check link status' in result_dmesg_error.stdout or 'Error: Driver \\'pcspkr\\' is already registered, aborting' in result_dmesg_error.stdout"
Packit Service 509fd4
            fail_msg: "more or less error and failed log"
Packit Service 509fd4
            success_msg: "everything works as expected"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 15f37d
      when:
Packit Service 15f37d
        - ansible_facts['distribution'] == "RedHat"
Packit Service 15f37d
        - "'rt' not in result_kernel.stdout"
Packit Service 15f37d
Packit Service 15f37d
    # (RHEL)rt kernel does not have any error or fail log
Packit Service 15f37d
    - name: no any error or fail log
Packit Service 15f37d
      block:
Packit Service 15f37d
        - assert:
Packit Service 15f37d
            that:
Packit Service 15f37d
              - result_dmesg_error.stdout == ""
Packit Service 15f37d
            fail_msg: "found error or fail log in rt kernel test"
Packit Service 15f37d
            success_msg: "no error or fail log found"
Packit Service 15f37d
      always:
Packit Service 15f37d
        - set_fact:
Packit Service 15f37d
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 15f37d
      rescue:
Packit Service 15f37d
        - name: failed count + 1
Packit Service 15f37d
          set_fact:
Packit Service 15f37d
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 15f37d
      when:
Packit Service 15f37d
        - "'rt' in result_kernel.stdout"
Packit Service 509fd4
Packit Service 15f37d
    # (Fedora)default kernel has error and fail log
Packit Service 509fd4
    - name: no more error or failed log
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_dmesg_error.stdout_lines | length == 2
Packit Service 509fd4
              - "'pcieport 0000:00:01.6: pciehp: Failed to check link status' in result_dmesg_error.stdout"
Packit Service 509fd4
              - "'RAS: Correctable Errors collector initialized' in result_dmesg_error.stdout"
Packit Service 509fd4
            fail_msg: "more or less error and failed log"
Packit Service 509fd4
            success_msg: "everything works as expected"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 15f37d
      when:
Packit Service 15f37d
        - ansible_facts['distribution'] == "Fedora"
Packit Service 15f37d
        - "'rt' not in result_kernel.stdout"
Packit Service 509fd4
Packit Service 509fd4
    # case: check running container with podman
Packit Service 509fd4
    - name: run ubi8 image
Packit Service 15f37d
      command: podman run registry.access.redhat.com/ubi8/ubi-minimal:latest cat /etc/redhat-release
Packit Service 509fd4
      register: podman_result
Packit Service 509fd4
      become: yes
Packit Service 15f37d
      ignore_errors: yes  # due to https://bugzilla.redhat.com/show_bug.cgi?id=1903983
Packit Service 509fd4
Packit Service 509fd4
    - name: run container test
Packit Service 509fd4
      block:
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - podman_result is succeeded
Packit Service 509fd4
              - "'Red Hat Enterprise Linux release' in podman_result.stdout"
Packit Service 509fd4
            fail_msg: "failed run container with podman"
Packit Service 509fd4
            success_msg: "running container with podman successed"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check dnf package and it should not be installed
Packit Service 509fd4
    # https://github.com/osbuild/osbuild-composer/blob/master/internal/distro/rhel8/distro.go#L642
Packit Service 509fd4
    - name: dnf should not be installed
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: dnf should not be installed
Packit Service 509fd4
          shell: rpm -qa | grep dnf || echo -n PASS
Packit Service 509fd4
          register: result_dnf
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_dnf.stdout == "PASS"
Packit Service 509fd4
            fail_msg: "dnf is installed"
Packit Service 509fd4
            success_msg: "No dnf installed"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service bcdfb1
      when: ansible_facts['distribution'] != 'RedHat' and ansible_facts ['distribution_version'] != '8.4'
Packit Service 509fd4
Packit Service 509fd4
    # case: check installed greenboot packages
Packit Service 509fd4
    # https://github.com/osbuild/osbuild-composer/blob/master/internal/distro/rhel8/distro.go#L634
Packit Service 509fd4
    - name: greenboot and it's related packages should be installed
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: greenboot and it's related packages should be installed
Packit Service 509fd4
          shell: rpm -qa | grep greenboot
Packit Service 509fd4
          register: result_greenboot_packages
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'greenboot-0' in result_greenboot_packages.stdout"
Packit Service 509fd4
              - "'greenboot-grub2' in result_greenboot_packages.stdout"
Packit Service 509fd4
              - "'greenboot-rpm-ostree-grub2' in result_greenboot_packages.stdout"
Packit Service 509fd4
              - "'greenboot-reboot' in result_greenboot_packages.stdout"
Packit Service 509fd4
              - "'greenboot-status' in result_greenboot_packages.stdout"
Packit Service 509fd4
            fail_msg: "Some of greenboot and its related packages are not installed"
Packit Service 509fd4
            success_msg: "All greenboot and its related packages are installed"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check greenboot* services
Packit Service 509fd4
    - name: a list of greenboot* service should be enabled
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: a list of greenboot* service should be enabled
Packit Service 509fd4
          command: systemctl is-enabled greenboot-grub2-set-counter greenboot-grub2-set-success greenboot-healthcheck greenboot-rpm-ostree-grub2-check-fallback greenboot-status greenboot-task-runner redboot-auto-reboot redboot-task-runner
Packit Service 509fd4
          register: result_greenboot_service
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_greenboot_service.stdout == 'enabled\nenabled\nenabled\nenabled\nenabled\nenabled\nenabled\nenabled'
Packit Service 509fd4
            fail_msg: "Some of greenboot* services are not enabled"
Packit Service 509fd4
            success_msg: "All greenboot* services are enabled"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check greenboot* services log
Packit Service 509fd4
    - name: all greenboot* service should run without error
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: all greenboot* service should run without error
Packit Service 509fd4
          command: journalctl -b -0 -u boot-complete.target -u greenboot -u greenboot-healthcheck -u greenboot-rpm-ostree-grub2-check-fallback -u greenboot-grub2-set-counter -u greenboot-grub2-set-success -u greenboot-status -u redboot -u redboot-auto-reboot -u redboot.target
Packit Service 509fd4
          register: result_greenboot_log
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'Script \\'00_required_scripts_start.sh\\' SUCCESS' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Script \\'00_wanted_scripts_start.sh\\' SUCCESS' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'greenboot Health Checks Runner' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Reached target Boot Completion Check' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Mark boot as successful in grubenv' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Boot Status is GREEN - Health Check SUCCESS' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'greenboot MotD Generator' in result_greenboot_log.stdout"
Packit Service 509fd4
            fail_msg: "Some errors happened in service boot"
Packit Service 509fd4
            success_msg: "All greenboot services booted success"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check grubenv variables
Packit Service 509fd4
    - name: grubenv variables should contain boot_success=1
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: grubenv variables should contain boot_success=1
Packit Service 509fd4
          command: grub2-editenv list
Packit Service 509fd4
          register: result_grubenv
Packit Service 509fd4
          become: yes
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'boot_success=1' in result_grubenv.stdout"
Packit Service 509fd4
            fail_msg: "Not found boot_success=1"
Packit Service 509fd4
            success_msg: "Found boot_success=1"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check rollback function if boot error found
Packit Service 509fd4
    - name: install sanely failing health check unit to test red boot status behavior
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: install sanely failing health check unit to test red boot status behavior
Packit Service 509fd4
          command: rpm-ostree install http://file-server-virt-qe-3rd.cloud.paas.psi.redhat.com/greenboot-failing-unit-1.0-1.el8.noarch.rpm
Packit Service 509fd4
          become: yes
Packit Service 509fd4
Packit Service 509fd4
        - name: reboot to deploy new ostree commit
Packit Service 509fd4
          reboot:
Packit Service 509fd4
          become: yes
Packit Service 509fd4
Packit Service 509fd4
        - name: waits until instance is reachable
Packit Service 509fd4
          wait_for:
Packit Service 509fd4
            host: "192.168.100.50"
Packit Service 509fd4
            port: 22
Packit Service 509fd4
            search_regex: OpenSSH
Packit Service 509fd4
            delay: 10
Packit Service 509fd4
          register: result_rollback
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - result_rollback is succeeded
Packit Service 509fd4
            fail_msg: "Rollback failed"
Packit Service 509fd4
            success_msg: "Rollback success"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
Packit Service 509fd4
    # case: check ostree commit after rollback
Packit Service 509fd4
    - name: check ostree commit after rollback
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: check ostree commit after rollback
Packit Service 509fd4
          command: rpm-ostree status --json
Packit Service 509fd4
          register: result_commit
Packit Service 509fd4
Packit Service 509fd4
        - name: make a json result
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            deploy_commit: "{{ result_commit.stdout | from_json | json_query('deployments[0].checksum') }}"
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - deploy_commit == ostree_commit
Packit Service 509fd4
            fail_msg: "Not rollback to last commit"
Packit Service 509fd4
            success_msg: "Rollback success"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
      when: result_rollback is succeeded
Packit Service 509fd4
Packit Service 509fd4
    # case: check greenboot* services log again
Packit Service 509fd4
    - name: fallback log should be found here
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: fallback log should be found here
Packit Service 509fd4
          command: journalctl -b -0 -u boot-complete.target -u greenboot -u greenboot-healthcheck -u greenboot-rpm-ostree-grub2-check-fallback -u greenboot-grub2-set-counter -u greenboot-grub2-set-success -u greenboot-status -u redboot -u redboot-auto-reboot -u redboot.target
Packit Service 509fd4
          register: result_greenboot_log
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'FALLBACK BOOT DETECTED! Default rpm-ostree deployment has been rolled back' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Script \\'00_required_scripts_start.sh\\' SUCCESS' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Script \\'00_wanted_scripts_start.sh\\' SUCCESS' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'greenboot Health Checks Runner' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Reached target Boot Completion Check' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Mark boot as successful in grubenv' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'Boot Status is GREEN - Health Check SUCCESS' in result_greenboot_log.stdout"
Packit Service 509fd4
              - "'greenboot MotD Generator' in result_greenboot_log.stdout"
Packit Service 509fd4
            fail_msg: "Fallback log not found"
Packit Service 509fd4
            success_msg: "Found fallback log"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
      when: result_rollback is succeeded
Packit Service 509fd4
Packit Service 509fd4
    # case: check grubenv variables again
Packit Service 509fd4
    - name: grubenv variables should contain boot_success=1
Packit Service 509fd4
      block:
Packit Service 509fd4
        - name: grubenv variables should contain boot_success=1
Packit Service 509fd4
          command: grub2-editenv list
Packit Service 509fd4
          register: result_grubenv
Packit Service 509fd4
          become: yes
Packit Service 509fd4
Packit Service 509fd4
        - assert:
Packit Service 509fd4
            that:
Packit Service 509fd4
              - "'boot_success=1' in result_grubenv.stdout"
Packit Service 509fd4
            fail_msg: "Not found boot_success=1"
Packit Service 509fd4
            success_msg: "Found boot_success=1"
Packit Service 509fd4
      always:
Packit Service 509fd4
        - set_fact:
Packit Service 509fd4
            total_counter: "{{ total_counter | int + 1 }}"
Packit Service 509fd4
      rescue:
Packit Service 509fd4
        - name: failed count + 1
Packit Service 509fd4
          set_fact:
Packit Service 509fd4
            failed_counter: "{{ failed_counter | int + 1 }}"
Packit Service 509fd4
      when: result_rollback is succeeded
Packit Service 509fd4
Packit Service 509fd4
    - assert:
Packit Service 509fd4
        that:
Packit Service 509fd4
          - failed_counter == "0"
Packit Service 509fd4
        fail_msg: "Run {{ total_counter }} tests, but {{ failed_counter }} of them failed"
Packit Service 509fd4
        success_msg: "Totally {{ total_counter }} test passed"