# Copyright (c) 2023 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

- name: Verify
  hosts: all
  gather_facts: false
  vars:
    image_manifest_file: /tmp/atmosphere_images.yml
  tasks:
    - name: Check if the image manifest file exists
      ansible.builtin.stat:
        path: "{{ image_manifest_file }}"
      register: image_manifest_file_stat

    - name: Assert that the image manifest file exists
      ansible.builtin.assert:
        that:
          - image_manifest_file_stat.stat.exists
          - image_manifest_file_stat.stat.isreg
        msg: "The image manifest file '{{ image_manifest_file }}' does not exist"
