Multiple test conditions for when: not working

Hi All

I was running an apt_update task and only wanted the server to reboot when it it saw neither of the two lines. Now, what is happening it only sees the first “test” I put in the when: section and ignores the second string to test. The reason for the two tests is I noticed that Debian and Ubuntu have different lines for when they have nothing to update.

I know Ive done something stupid…

  • name: Run Apt update safe
    command: sudo apt_upgrade_safe
    register: apt_update

  • name: Reboot Server
    #command: sudo reboot
    command: echo “test”
    when: “‘0 to upgrade, 0 to newly install’ or ‘0 upgraded, 0 newly installed’ not in apt_update.stdout”
    register: reboot

I have also tried

“( ‘0 to upgrade, 0 to newly install’ not in ruby_installed_version.stdout) or ( ‘0 upgraded, 0 newly installed’ not in ruby_installed_version.stdout)”

maybe I missed something… or there is a better way to test for this… :confused:

This seemed to fix my issue but not sure if this is the way I should do it… any feedback would be lovely

when:

  • (‘0 upgraded, 0 newly installed’ not in apt_update.stdout)
  • (‘0 to upgrade, 0 to newly install’ not in apt_update.stdout)

seems like you wanted:

when: “( ‘0 to upgrade, 0 to newly install’ not in ruby_installed_version.stdout) and ( ‘0 upgraded, 0 newly installed’ not in ruby_installed_version.stdout)”

making them a list ( -) is an implicit AND.