Repository: ansible-collections/community.general

Issue:
`community.general.rax_clb_nodes` not working with python3
### Summary

If you try to run the `community.general.rax_clb_nodes` task against a host that has python3 installed (and no python2 installed), it'll fail with `RuntimeError: dictionary changed size during iteration`.

I was able to replicate this error on an Ubuntu 20.04 LTS host

### Issue Type

Bug Report

### Component Name

`community.general.rax_clb_nodes` defined here: https://github.com/ansible-collections/community.general/blob/main/plugins/modules/cloud/rackspace/rax_clb_nodes.py

### Ansible Version

```console
ansible [core 2.11.6] 
  config file = /Users/teddycaddy/ops/ansible.cfg
  configured module search path = ['/Users/teddycaddy/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/4.8.0/libexec/lib/python3.10/site-packages/ansible
  ansible collection location = /Users/teddycaddy/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.0 (default, Oct 13 2021, 06:45:00) [Clang 13.0.0 (clang-1300.0.29.3)]
  jinja version = 3.0.2
  libyaml = True
```


### Community.general Version

```
# /usr/local/Cellar/ansible/4.8.0/libexec/lib/python3.10/site-packages/ansible_collections
Collection        Version
----------------- -------
community.general 3.8.1  

# /Users/teddycaddy/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
community.general 5.2.0 
```


### Configuration

```
CALLBACKS_ENABLED(/Users/some_user/ops/ansible.cfg) = ['datadog_callback']
DEFAULT_LOAD_CALLBACK_PLUGINS(/Users/some_user/ops/ansible.cfg) = True
DEFAULT_ROLES_PATH(/Users/some_user/ops/ansible.cfg) = ['/Users/some_user/ops/roles']
DEFAULT_VAULT_IDENTITY_LIST(/Users/some_user/ops/ansible.cfg) = ['dev@~/.vault_pass.txt', 'prod@~/.vault_pass_prod.txt']
```


### OS / Environment

Host is OSX, target is Ubuntu 20.04 LTS

### Steps to Reproduce

assuming you have the vars defined first and you run this against a host that has Python3 installed and does not have Python2 installed:
```yaml
- name: disable node on Load Balancer
  community.general.rax_clb_nodes:
    region: '{{ rax_region }}'
    username: '{{ rackspace_username }}'
    api_key: '{{ rackspace_api_key }}'
    verify_ssl: yes
    load_balancer_id: '{{ rackspace_load_balancer.id }}'
    node_id: '{{ rackspace_node.id }}'
    wait: yes
    wait_timeout: 60
    condition: disabled
```


### Expected Results

I expect it to make the change to the load balancer without raising an error

### Actual Results

Summary
```console
RuntimeError: dictionary changed size during iteration
```

Full error:
```console
Traceback (most recent call last):
  File "/home/gitdeploy/.ansible/tmp/ansible-tmp-1657134923.484274-28165-79490236335878/AnsiballZ_rax_clb_nodes.py", line 100, in <module>
    _ansiballz_main()
  File "/home/gitdeploy/.ansible/tmp/ansible-tmp-1657134923.484274-28165-79490236335878/AnsiballZ_rax_clb_nodes.py", line 92, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/gitdeploy/.ansible/tmp/ansible-tmp-1657134923.484274-28165-79490236335878/AnsiballZ_rax_clb_nodes.py", line 40, in invoke_module
    runpy.run_module(mod_name='ansible_collections.community.general.plugins.modules.rax_clb_nodes', init_globals=dict(_module_fqn='ansible_collections.community.general.plugins.modules.rax_clb_nodes', _modlib_path=modlib_path),
  File "/usr/lib/python3.8/runpy.py", line 207, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_rax_clb_nodes_payload_0awjge1p/ansible_rax_clb_nodes_payload.zip/ansible_collections/community/general/plugins/modules/rax_clb_nodes.py", line 283, in <module>
  File "/tmp/ansible_rax_clb_nodes_payload_0awjge1p/ansible_rax_clb_nodes_payload.zip/ansible_collections/community/general/plugins/modules/rax_clb_nodes.py", line 255, in main
RuntimeError: dictionary changed size during iteration
```



### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct


Discussion:
FYI I have a fix for this that I'll submit as a PR soon.
cc @neuroid
[click here for bot help](https://github.com/ansible/ansibullbot/blob/devel/ISSUE_HELP.md)
<!--- boilerplate: notify --->

Resolving patch:
diff --git a/plugins/modules/cloud/rackspace/rax_clb_nodes.py b/plugins/modules/cloud/rackspace/rax_clb_nodes.py
--- a/plugins/modules/cloud/rackspace/rax_clb_nodes.py
+++ b/plugins/modules/cloud/rackspace/rax_clb_nodes.py
@@ -252,7 +252,8 @@ def main():
                 'weight': weight,
             }
 
-            for name, value in mutable.items():
+            for name in list(mutable):
+                value = mutable[name]
                 if value is None or value == getattr(node, name):
                     mutable.pop(name)
 


Test patch: