<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
<!--- Explain the problem briefly below -->
The yum module is improperly reporting an error when successfully removing packages, even when the return code is 0, and the output shown clearly indicates success.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
yum

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ansible/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
centos-release-7-7.1908.0.el7.centos.x86_64
centos-release-7-8.2003.0.el7.centos.x86_64

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Run the playbook included below, which switches from the CentOS stock kernel to the elrepo mainline kernel.  The external vars file is not actually necessary within this playbook, and is part of a playbook template.  The sole variable defined within is not used in this sub-playbook.

<!--- Paste example playbooks or commands between quotes below -->
```yaml
# Migrate to elrepo mainline kernel.
---
- hosts: "{{ current_targets }}"
  become: yes
  gather_facts: no
  vars_files:
    - "external_vars.yaml"
  tasks:
    - name: grub_set_default - Set the grub default.
      command: grub2-set-default 0
    - name: set_default_kernel - Set the default kernel in sysconfig.
      replace:
        path: /etc/sysconfig/kernel
        regexp: '^(\s*DEFAULTKERNEL\s*=\s*).*$'
        replace: \1kernel-ml
        backup: yes
      register: changed_sysconfig
    - name: remake_grub - Re-make the grub configuration, if necessary.
      command: grub2-mkconfig -o /boot/grub2/grub.cfg
      when: changed_sysconfig is changed
    - name: install_elrepo_repository - Install the elrepo repositories.
      yum:
        name: http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
        state: present
      register: added_elrepo
    - name: enable_elrepo_kernel - Enable the elrepo kernel repository, if necessary.
      command: 'yum-config-manager --enable elrepo-kernel'
    - name: disable_elrepo - Disable the elrepo general repository, if necessary.
      command: 'yum-config-manager --disable elrepo'
    - name: install_kernel_ml - Install kernel-ml package.
      yum:
        name: kernel-ml
        state: latest
      register: installed_kernel_ml
    - name: adjust_sysctl - Adjust sysctl settings for elrepo kernel.
      template:
        src: ../templates/elrepo_sysctl.conf
        dest: /etc/sysctl.d/90_aljex.conf
        owner: root
        group: root
        mode: '0644'
      register: added_sysctl_block
    - name: 'reboot_server - Reboot the server.'
      reboot:
        msg: 'Reboot initiated by Ansible.'
        connect_timeout: 5
        reboot_timeout: 600
        pre_reboot_delay: 0
        post_reboot_delay: 30
        test_command: whoami
      when: added_sysctl_block is changed
    - name: erase_old_packages - Erase old, unneeded kernel dev packages.
      yum:
        name:
          - kernel-devel
          - systemtap
          - systemtap-devel
        state: absent
      register: erased_old_kernel_dev_packages
      when: installed_kernel_ml is changed
    - name: remove_stock_kernel - Remove the stock CentOS kernel.
      yum:
        name: kernel
        state: absent
      when: added_sysctl_block is changed
    - name: 'reboot_server - Reboot the server.'
      reboot:
        msg: 'Reboot initiated by Ansible.'
        connect_timeout: 5
        reboot_timeout: 600
        pre_reboot_delay: 0
        post_reboot_delay: 30
        test_command: whoami
      when: added_sysctl_block is changed
    - name: erase_rpms - Erase specific RPMs manually, rather than via yum.
      command: rpm -e compat-glibc-headers glibc-headers compat-glibc glibc-devel.x86_64 glibc-devel.i686 gcc libtool libquadmath-devel gcc-gfortran gcc-c++ kernel-headers kernel-tools kernel-tools-libs
      args:
        warn: false
      when: erased_old_kernel_dev_packages is changed
    - name: install_new_kernel_dev_packages
      yum:
        name:
          - compat-glibc-headers
          - glibc-headers
          - compat-glibc
          - glibc-devel.x86_64
          - glibc-devel.i686
          - gcc
          - libtool
          - libquadmath-devel
          - gcc-gfortran
          - gcc-c++
          - systemtap-devel
          - systemtap
          - kernel-ml-headers
          - kernel-ml-devel
          - kernel-ml-tools
          - kernel-ml-tools-libs
          - python-perf
        state: latest
      register: installed_new_kernel_dev_packages
    - name: 'reboot_server - Reboot the server.'
      reboot:
        msg: 'Reboot initiated by Ansible.'
        connect_timeout: 5
        reboot_timeout: 600
        pre_reboot_delay: 0
        post_reboot_delay: 30
        test_command: whoami
      when: installed_new_kernel_dev_packages is changed

```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
All tasks should be completed successfully, including the one which is actually succeeding, but getting flagged as a failure.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
The remove_stock_kernel task erroneously gets flagged as a failure:

```
fatal: [REDACTED]: FAILED! => {"changed": false, "changes": {"removed": ["kernel"]}, "msg": "Package 'kernel' couldn't be removed!", "rc": 0, "results": ["Loaded plugins: fastestmirror\nResolving Dependencies\n--> Running transaction check\n---> Package kernel.x86_64 0:3.10.0-1062.el7 will be erased\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package        Arch           Version                  Repository         Size\n================================================================================\nRemoving:\n kernel         x86_64         3.10.0-1062.el7          @anaconda          64 M\n\nTransaction Summary\n================================================================================\nRemove  1 Package\n\nInstalled size: 64 M\nDownloading packages:\nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n  Erasing    : kernel-3.10.0-1062.el7.x86_64                                1/1 \n  Verifying  : kernel-3.10.0-1062.el7.x86_64                                1/1 \n\nRemoved:\n  kernel.x86_64 0:3.10.0-1062.el7        
```
The rest of the playbook is never executed due to the 'error'.

I have confirmed that the kernel packages are no longer installed, and were removed successfully.
                
<!--- Paste verbatim command output between quotes -->
```paste below
ansible-playbook -i inventory -e 'current_targets=testing' playbooks/elrepo_kernel.yaml

```

#
    
    
    
    
    
    
    yumdnf_argument_spec['argument_spec']['use_backend'] = dict(default='auto', choices=['auto', 'yum', 'yum4', 'dnf'])
    module = AnsibleModule(
        **yumdnf_argument_spec
    )
    module_implementation = YumModule(module)
    module_implementation.run()
if __name__ == '__main__':
    main()