Repository: ansible-collections/community.aws

Issue:
Invalid import path for BotoCoreError in redshift_info module
### Summary

In case of any AWS related error (like missing permissions) the module will throw a gigantic python stack trace with error summary as:
```
line 304, in find_clusters
NameError: name 'BotoCoreError' is not defined
```
This is due to an invalid import path that is present in the module https://github.com/ansible-collections/community.aws/blob/main/plugins/modules/redshift_info.py#L280
Instead of `from botocore.exception` it should be `from botocore.exceptions`. Once that is done, ansible no longer hides the real error with the stack trace.

### Issue Type

Bug Report

### Component Name

redshift_info

### Ansible Version

```console (paste below)
$ ansible --version
ansible 2.10.8
  config file = None
  configured module search path = ['/home/wojtek/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.9 (default, Jan 26 2021, 15:33:00) [GCC 8.4.0]
```


### Collection Versions

Non-relevant


### AWS SDK versions

```console (paste below)
$ pip show boto boto3 botocore
Name: boto
Version: 2.49.0
Summary: Amazon Web Services Library
Home-page: https://github.com/boto/boto/
Author: Mitch Garnaat
Author-email: mitch@garnaat.com
License: MIT
Location: /home/wojtek/.local/lib/python3.6/site-packages
Requires:
---
Name: boto3
Version: 1.20.54
Summary: The AWS SDK for Python
Home-page: https://github.com/boto/boto3
Author: Amazon Web Services
Author-email: None
License: Apache License 2.0
Location: /home/wojtek/.local/lib/python3.6/site-packages
Requires: jmespath, s3transfer, botocore
---
Name: botocore
Version: 1.23.54
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
Author-email: None
License: Apache License 2.0
Location: /home/wojtek/.local/lib/python3.6/site-packages
Requires: jmespath, urllib3, python-dateutil
```


### Configuration

```console (paste below)
$ ansible-config dump --only-changed

```


### OS / Environment

Ubuntu 20.04

### Steps to Reproduce

Run the module without DescribeClusters permission.

### Expected Results

AWS API error on missing permissions is shown.

### Actual Results

Python stack trace ending with
```
line 304, in find_clusters
NameError: name 'BotoCoreError' is not defined
```


### Code of Conduct

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


Discussion:
Files identified in the description:
* [`plugins/modules/redshift_info.py`](https://github.com/['ansible-collections/amazon.aws', 'ansible-collections/community.aws', 'ansible-collections/community.vmware']/blob/main/plugins/modules/redshift_info.py)

If these files are inaccurate, please update the `component name` section of the description or use the `!component` bot command.

[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: components_banner --->
cc @j-carl @jillr @markuman @s-hertel @tremble
[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: notify --->
@winglot Thank for your bringing this. Would you be willing to open a pull request that fixes this import error?

Resolving patch:
diff --git a/plugins/modules/redshift_info.py b/plugins/modules/redshift_info.py
--- a/plugins/modules/redshift_info.py
+++ b/plugins/modules/redshift_info.py
@@ -277,7 +277,7 @@
 import re
 
 try:
-    from botocore.exception import BotoCoreError, ClientError
+    from botocore.exceptions import BotoCoreError, ClientError
 except ImportError:
     pass  # caught by AnsibleAWSModule
 


Test patch: