# Set up a repo of unsigned rpms
- block:
    - name: Ensure our test package isn't already installed
      dnf:
        name:
          - fpaste
        state: absent

    - name: Install rpm-sign
      dnf:
        name:
          - rpm-sign
        state: present

    - name: Create directory to use as local repo
      file:
        path: "{{ remote_tmp_dir }}/unsigned"
        state: directory

    - name: Download an RPM
      get_url:
        url: https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/dnf/fpaste-0.3.9.1-1.fc27.noarch.rpm
        dest: "{{ remote_tmp_dir }}/unsigned/fpaste-0.3.9.1-1.fc27.noarch.rpm"
        mode: 0644

    - name: Unsign the RPM
      command: rpmsign --delsign "{{ remote_tmp_dir }}/unsigned/fpaste-0.3.9.1-1.fc27.noarch.rpm"

    - name: createrepo
      command: createrepo .
      args:
        chdir: "{{ remote_tmp_dir }}/unsigned"

    - name: Add the repo
      yum_repository:
        name: unsigned
        description: unsigned rpms
        baseurl: "file://{{ remote_tmp_dir }}/unsigned/"
        # we want to ensure that signing is verified
        gpgcheck: true

    - name: Install fpaste from above
      dnf:
        name:
          - fpaste
        disablerepo: '*'
        enablerepo: unsigned
      register: res
      ignore_errors: yes

    - assert:
        that:
          - res is failed
          - "'Failed to validate GPG signature' in res.msg"

  always:
    - name: Remove rpm-sign (and fpaste if it got installed)
      dnf:
        name:
          - rpm-sign
          - fpaste
        state: absent

    - name: Remove test repo
      yum_repository:
        name: unsigned
        state: absent

    - name: Remove repo dir
      file:
        path: "{{ remote_tmp_dir }}/unsigned"
        state: absent
