From 591d64397b98c244216fa5c7000c74a5cadd3cc5 Mon Sep 17 00:00:00 2001 From: Pavan-Mudunuri Date: Tue, 25 Jul 2023 13:33:33 +0530 Subject: [PATCH 1/3] Ansible modules for PowerStore release version 2.1.0 --- CHANGELOG.rst | 9 +++ README.md | 92 +++++++++++------------ changelogs/changelog.yaml | 5 ++ docs/CONTRIBUTING.md | 8 +- docs/INSTALLATION.md | 4 +- docs/ISSUE_TRIAGE.md | 2 +- docs/MAINTAINER_GUIDE.md | 2 +- docs/Release Notes.md | 8 +- docs/SECURITY.md | 2 +- docs/modules/smtp_config.rst | 4 +- galaxy.yml | 8 +- plugins/modules/certificate.py | 2 +- plugins/modules/cluster.py | 2 +- plugins/modules/dns.py | 2 +- plugins/modules/email.py | 2 +- plugins/modules/filesystem.py | 2 +- plugins/modules/filesystem_snapshot.py | 2 +- plugins/modules/host.py | 2 +- plugins/modules/hostgroup.py | 2 +- plugins/modules/info.py | 2 +- plugins/modules/job.py | 2 +- plugins/modules/ldap_account.py | 2 +- plugins/modules/ldap_domain.py | 2 +- plugins/modules/local_user.py | 2 +- plugins/modules/nasserver.py | 2 +- plugins/modules/network.py | 2 +- plugins/modules/nfs.py | 2 +- plugins/modules/ntp.py | 2 +- plugins/modules/protectionpolicy.py | 2 +- plugins/modules/quota.py | 2 +- plugins/modules/remote_support.py | 2 +- plugins/modules/remote_support_contact.py | 2 +- plugins/modules/remotesystem.py | 2 +- plugins/modules/replicationrule.py | 2 +- plugins/modules/replicationsession.py | 2 +- plugins/modules/role.py | 2 +- plugins/modules/security_config.py | 2 +- plugins/modules/smbshare.py | 2 +- plugins/modules/smtp_config.py | 32 ++++---- plugins/modules/snapshot.py | 2 +- plugins/modules/snapshotrule.py | 2 +- plugins/modules/storage_container.py | 2 +- plugins/modules/vcenter.py | 2 +- plugins/modules/volume.py | 2 +- plugins/modules/volumegroup.py | 2 +- requirements.txt | 2 - 46 files changed, 129 insertions(+), 115 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3219bfd..6ab5dd2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,15 @@ Dellemc.Powerstore Change Logs .. contents:: Topics + +v2.1.0 +====== + +Minor Changes +------------- + +- Bug fix for initial SMTP configuration in smtp_config module. + v2.0.0 ====== diff --git a/README.md b/README.md index 0ad665f..008219b 100644 --- a/README.md +++ b/README.md @@ -4,29 +4,29 @@ The Ansible Modules for Dell Technologies (Dell) PowerStore allow Data Center an The capabilities of the Ansible modules are managing volumes, volume groups, vCenters, hosts, host groups, snapshots, snapshot rules, replication rules, replication sessions, protection policies, file systems, NAS servers, SMB shares, user and tree quotas, file system snapshots, NFS exports, Clusters, Networks, Local users, Jobs, Roles, Certificates, Remote systems, security configuration, DNS server, Email notification destination, NTP server, Remote support configuration, Remote support contacts, SMTP configuration, LDAP accounts, LDAP domain configuration and storage containers. It also allows gathering high level info from the array. The options available for each are list, show, create, modify and delete. These tasks can be executed by running simple playbooks written in yaml syntax. The modules are written so that all the operations are idempotent, so making multiple identical requests has the same effect as making a single request. ## Table of contents -* [Code of conduct](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/CODE_OF_CONDUCT.md) -* [Maintainer guide](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/MAINTAINER_GUIDE.md) -* [Committer guide](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/COMMITTER_GUIDE.md) -* [Contributing guide](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/CONTRIBUTING.md) -* [Branching strategy](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/BRANCHING.md) -* [List of adopters](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/ADOPTERS.md) -* [Maintainers](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/MAINTAINERS.md) -* [Support](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/SUPPORT.md) +* [Code of conduct](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/CODE_OF_CONDUCT.md) +* [Maintainer guide](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/MAINTAINER_GUIDE.md) +* [Committer guide](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/COMMITTER_GUIDE.md) +* [Contributing guide](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/CONTRIBUTING.md) +* [Branching strategy](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/BRANCHING.md) +* [List of adopters](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/ADOPTERS.md) +* [Maintainers](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/MAINTAINERS.md) +* [Support](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/SUPPORT.md) * [License](#license) -* [Security](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/SECURITY.md) +* [Security](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/SECURITY.md) * [Prerequisites](#prerequisites) * [List of Ansible modules for Dell PowerStore](#list-of-ansible-modules-for-dell-powerstore) * [Installation and execution of Ansible modules for Dell PowerStore](#installation-and-execution-of-ansible-modules-for-dell-powerstore) * [Maintenance](#maintenance) ## License -The Ansible collection for PowerStore is released and licensed under the GPL-3.0 license. See [LICENSE](https://github.com/dell/ansible-powerstore/blob/2.0.0/LICENSE) for the full terms. Ansible modules and modules utilities that are part of the Ansible collection for PowerStore are released and licensed under the Apache 2.0 license. See [MODULE-LICENSE](https://github.com/dell/ansible-powerstore/blob/2.0.0/MODULE-LICENSE) for the full terms. +The Ansible collection for PowerStore is released and licensed under the GPL-3.0 license. See [LICENSE](https://github.com/dell/ansible-powerstore/blob/2.1.0/LICENSE) for the full terms. Ansible modules and modules utilities that are part of the Ansible collection for PowerStore are released and licensed under the Apache 2.0 license. See [MODULE-LICENSE](https://github.com/dell/ansible-powerstore/blob/2.1.0/MODULE-LICENSE) for the full terms. ## Prerequisites | **Ansible Modules** | **PowerStore Version** | **SDK version** | **Python version** | **Ansible** | |---------------------|-----------------------|-----------------|--------------------|--------------------------| -| v2.0.0 | 3.0.x
3.2.x
3.5.x | 2.0.0 | 3.9.x
3.10.x
3.11.x | 2.13
2.14
2.15 | +| v2.1.0 | 3.0.x
3.2.x
3.5.x | 2.0.0 | 3.9.x
3.10.x
3.11.x | 2.13
2.14
2.15 | * Please follow PyPowerStore installation instructions on [PyPowerStore Documentation](https://github.com/dell/python-powerstore) @@ -35,43 +35,43 @@ The Ansible collection for PowerStore is released and licensed under the GPL-3.0 The modules are written in such a way that all requests are idempotent and hence fault-tolerant. It essentially means that the result of a successfully performed request is independent of the number of times it is executed. ## List of Ansible Modules for Dell PowerStore -* [Volume module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/volume.rst) -* [Volume group module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/volumegroup.rst) -* [Host module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/host.rst) -* [Host group module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/hostgroup.rst) -* [Snapshot module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/snapshot.rst) -* [Snapshot rule module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/snapshotrule.rst) -* [Replication rule module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/replicationrule.rst) -* [Replication session module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/replicationsession.rst) -* [Protection policy module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/protectionpolicy.rst) -* [Info module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/info.rst) -* [File system module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/filesystem.rst) -* [NAS server module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/nasserver.rst) -* [SMB share module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/smbshare.rst) -* [Quota module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/quota.rst) -* [File system snapshot module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/filesystem_snapshot.rst) -* [NFS export module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/nfs.rst) -* [Cluster module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/cluster.rst) -* [Network module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/network.rst) -* [Local user module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/local_user.rst) -* [Role module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/role.rst) -* [Job module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/job.rst) -* [Certificate module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/certificate.rst) -* [Remote system module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/remotesystem.rst) -* [Security config module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/security_config.rst) -* [DNS module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/dns.rst) -* [Email module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/email.rst) -* [NTP module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/ntp.rst) -* [Remote support module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/remote_support.rst) -* [Remote support contact module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/remote_support_contact.rst) -* [SMTP config module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/smtp_config.rst) -* [LDAP Account module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/ldap_account.rst) -* [LDAP Domain module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/ldap_domain.rst) -* [vCenter module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/vcenter.rst) -* [Storage container module](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/modules/storage_container.rst) +* [Volume module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/volume.rst) +* [Volume group module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/volumegroup.rst) +* [Host module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/host.rst) +* [Host group module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/hostgroup.rst) +* [Snapshot module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/snapshot.rst) +* [Snapshot rule module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/snapshotrule.rst) +* [Replication rule module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/replicationrule.rst) +* [Replication session module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/replicationsession.rst) +* [Protection policy module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/protectionpolicy.rst) +* [Info module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/info.rst) +* [File system module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/filesystem.rst) +* [NAS server module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/nasserver.rst) +* [SMB share module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/smbshare.rst) +* [Quota module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/quota.rst) +* [File system snapshot module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/filesystem_snapshot.rst) +* [NFS export module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/nfs.rst) +* [Cluster module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/cluster.rst) +* [Network module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/network.rst) +* [Local user module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/local_user.rst) +* [Role module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/role.rst) +* [Job module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/job.rst) +* [Certificate module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/certificate.rst) +* [Remote system module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/remotesystem.rst) +* [Security config module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/security_config.rst) +* [DNS module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/dns.rst) +* [Email module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/email.rst) +* [NTP module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/ntp.rst) +* [Remote support module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/remote_support.rst) +* [Remote support contact module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/remote_support_contact.rst) +* [SMTP config module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/smtp_config.rst) +* [LDAP Account module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/ldap_account.rst) +* [LDAP Domain module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/ldap_domain.rst) +* [vCenter module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/vcenter.rst) +* [Storage container module](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/modules/storage_container.rst) ## Installation and execution of Ansible modules for Dell PowerStore -The installation and execution steps of Ansible modules for Dell PowerStore can be found [here](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/INSTALLATION.md) +The installation and execution steps of Ansible modules for Dell PowerStore can be found [here](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/INSTALLATION.md) ## Maintenance Ansible Modules for Dell Technologies PowerStore deprecation cycle is aligned with [Ansible](https://docs.ansible.com/ansible/latest/dev_guide/module_lifecycle.html). \ No newline at end of file diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 12990b3..9fad2ef 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -199,3 +199,8 @@ releases: name: storage_container namespace: '' release_date: '2023-06-30' + 2.1.0: + changes: + minor_changes: + - Bug fix for initial SMTP configuration in smtp_config module. + release_date: '2023-07-31' diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index d7bd183..5d1f4f9 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -10,7 +10,7 @@ You may obtain a copy of the License at # How to contribute -Become one of the contributors to this project! We thrive to build a welcoming and open community for anyone who wants to use the project or contribute to it. There are just a few small guidelines you need to follow. To help us create a safe and positive community experience for all, we require all participants to adhere to the [Code of Conduct](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/CODE_OF_CONDUCT.md). +Become one of the contributors to this project! We thrive to build a welcoming and open community for anyone who wants to use the project or contribute to it. There are just a few small guidelines you need to follow. To help us create a safe and positive community experience for all, we require all participants to adhere to the [Code of Conduct](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/CODE_OF_CONDUCT.md). ## Table of contents @@ -76,7 +76,7 @@ Triage helps ensure that issues resolve quickly by: If you don't have the knowledge or time to code, consider helping with _issue triage_. The Ansible modules for Dell PowerStore community will thank you for saving them time by spending some of yours. -Read more about the ways you can [Triage issues](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/ISSUE_TRIAGE.md). +Read more about the ways you can [Triage issues](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/ISSUE_TRIAGE.md). ## Your first contribution @@ -89,7 +89,7 @@ When you're ready to contribute, it's time to create a pull request. ## Branching -* [Branching Strategy for Ansible modules for Dell PowerStore](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/BRANCHING.md) +* [Branching Strategy for Ansible modules for Dell PowerStore](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/BRANCHING.md) ## Signing your commits @@ -144,7 +144,7 @@ Make sure that the title for your pull request uses the same format as the subje ### Quality gates for pull requests -GitHub Actions are used to enforce quality gates when a pull request is created or when any commit is made to the pull request. These GitHub Actions enforce our minimum code quality requirement for any code that get checked into the repository. If any of the quality gates fail, it is expected that the contributor will look into the check log, understand the problem and resolve the issue. If help is needed, please feel free to reach out the maintainers of the project for [support](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/SUPPORT.md). +GitHub Actions are used to enforce quality gates when a pull request is created or when any commit is made to the pull request. These GitHub Actions enforce our minimum code quality requirement for any code that get checked into the repository. If any of the quality gates fail, it is expected that the contributor will look into the check log, understand the problem and resolve the issue. If help is needed, please feel free to reach out the maintainers of the project for [support](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/SUPPORT.md). #### Code sanitization diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 3a398cb..2bf42d2 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -41,7 +41,7 @@ You may obtain a copy of the License at * Download the latest tar build from any of the available distribution channel [Ansible Galaxy](https://galaxy.ansible.com/dellemc/powerstore) /[Automation Hub](https://console.redhat.com/ansible/automation-hub/repo/published/dellemc/powerstore) and use this command to install the collection anywhere in your system: - ansible-galaxy collection install dellemc-powerstore-2.0.0.tar.gz -p + ansible-galaxy collection install dellemc-powerstore-2.1.0.tar.gz -p * Set the environment variable: @@ -68,7 +68,7 @@ You may obtain a copy of the License at ## Ansible modules execution -The Ansible server must be configured with Python library for PowerStore to run the Ansible playbooks. The [Documents](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/) provide information on different Ansible modules along with their functions and syntax. The parameters table in the Product Guide provides information on various parameters which needs to be configured before running the modules. +The Ansible server must be configured with Python library for PowerStore to run the Ansible playbooks. The [Documents](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/) provide information on different Ansible modules along with their functions and syntax. The parameters table in the Product Guide provides information on various parameters which needs to be configured before running the modules. ## SSL certificate validation diff --git a/docs/ISSUE_TRIAGE.md b/docs/ISSUE_TRIAGE.md index cc7289a..4a07490 100644 --- a/docs/ISSUE_TRIAGE.md +++ b/docs/ISSUE_TRIAGE.md @@ -43,7 +43,7 @@ Should explain what happened, what was expected and how to reproduce it together - Ansible Version: [e.g. 2.14] - Python Version [e.g. 3.11] - - Ansible modules for Dell PowerStore Version: [e.g. 2.0.0] + - Ansible modules for Dell PowerStore Version: [e.g. 2.1.0] - PowerStore SDK version: [e.g. PyPowerStore 1.10.0] - Any other additional information... diff --git a/docs/MAINTAINER_GUIDE.md b/docs/MAINTAINER_GUIDE.md index f1e8438..c430677 100644 --- a/docs/MAINTAINER_GUIDE.md +++ b/docs/MAINTAINER_GUIDE.md @@ -27,7 +27,7 @@ If a candidate is approved, a Maintainer contacts the candidate to invite them t ## Maintainer policies * Lead by example -* Follow the [Code of Conduct](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/CODE_OF_CONDUCT.md) and the guidelines in the [Contributing](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/CONTRIBUTING.md) and [Committer](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/COMMITTER_GUIDE.md) guides +* Follow the [Code of Conduct](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/CODE_OF_CONDUCT.md) and the guidelines in the [Contributing](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/CONTRIBUTING.md) and [Committer](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/COMMITTER_GUIDE.md) guides * Promote a friendly and collaborative environment within our community * Be actively engaged in discussions, answering questions, updating defects, and reviewing pull requests * Criticize code, not people. Ideally, tell the contributor a better way to do what they need. diff --git a/docs/Release Notes.md b/docs/Release Notes.md index abe8cdc..4c2d0c4 100644 --- a/docs/Release Notes.md +++ b/docs/Release Notes.md @@ -1,6 +1,6 @@ **Ansible Modules for Dell Technologies PowerStore** ========================================= -### Release Notes 2.0.0 +### Release Notes 2.1.0 > © 2022 Dell Inc. or its subsidiaries. All rights reserved. Dell, > and other trademarks are trademarks of Dell Inc. or its @@ -28,7 +28,7 @@ Table 1. Revision history | Revision | Date | Description | |----------|------------|-----------------------------------------------------------| -| 01 | June 2023 | Current release of Ansible Modules for Dell PowerStore 2.0.0 | +| 01 | July 2023 | Current release of Ansible Modules for Dell PowerStore 2.1.0 | Product Description ------------------- @@ -65,11 +65,11 @@ Limitations Distribution ---------------- The software package is available for download from the [Ansible Modules -for PowerStore GitHub](https://github.com/dell/ansible-powerstore/tree/2.0.0) page. +for PowerStore GitHub](https://github.com/dell/ansible-powerstore/tree/2.1.0) page. Documentation ------------- -The documentation is available on [Ansible Modules for PowerStore GitHub](https://github.com/dell/ansible-powerstore/tree/2.0.0/docs) +The documentation is available on [Ansible Modules for PowerStore GitHub](https://github.com/dell/ansible-powerstore/tree/2.1.0/docs) page. It includes these: - README - Release Notes (this document) diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 5a7f91e..92282f5 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -12,7 +12,7 @@ You may obtain a copy of the License at The Ansible modules for Dell PowerStore repository are inspected for security vulnerabilities via blackduck scans and static code analysis. -In addition to this, there are various security checks that get executed against a branch when a pull request is created/updated. Please refer to [pull request](https://github.com/dell/ansible-powerstore/blob/2.0.0/docs/CONTRIBUTING.md#Pull-requests) for more information. +In addition to this, there are various security checks that get executed against a branch when a pull request is created/updated. Please refer to [pull request](https://github.com/dell/ansible-powerstore/blob/2.1.0/docs/CONTRIBUTING.md#Pull-requests) for more information. ## Reporting a vulnerability diff --git a/docs/modules/smtp_config.rst b/docs/modules/smtp_config.rst index 57e1b1b..971811a 100644 --- a/docs/modules/smtp_config.rst +++ b/docs/modules/smtp_config.rst @@ -32,8 +32,8 @@ The below requirements are needed on the host that executes this module. Parameters ---------- - smtp_id (True, int, None) - Unique identifier of the SMTP configuration. + smtp_id (optional, int, 0) + Unique identifier of the SMTP configuration. This value is always '0'. smtp_address (optional, str, None) diff --git a/galaxy.yml b/galaxy.yml index dcc905d..60ecf6f 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -9,7 +9,7 @@ namespace: dellemc name: powerstore # The version of the collection. Must be compatible with semantic versioning -version: 2.0.0 +version: 2.1.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md @@ -50,13 +50,13 @@ tags: [storage] dependencies: {} # The URL of the originating SCM repository -repository: https://github.com/dell/ansible-powerstore/tree/2.0.0 +repository: https://github.com/dell/ansible-powerstore/tree/2.1.0 # The URL to any online docs -documentation: https://github.com/dell/ansible-powerstore/tree/2.0.0/docs +documentation: https://github.com/dell/ansible-powerstore/tree/2.1.0/docs # The URL to the homepage of the collection/project -homepage: https://github.com/dell/ansible-powerstore/tree/2.0.0 +homepage: https://github.com/dell/ansible-powerstore/tree/2.1.0 # The URL to the collection issue tracker issues: https://www.dell.com/community/Automation/bd-p/Automation diff --git a/plugins/modules/certificate.py b/plugins/modules/certificate.py index 3d2f105..389b0c2 100644 --- a/plugins/modules/certificate.py +++ b/plugins/modules/certificate.py @@ -262,7 +262,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreCertificate(object): diff --git a/plugins/modules/cluster.py b/plugins/modules/cluster.py index f6b1657..a9f281c 100644 --- a/plugins/modules/cluster.py +++ b/plugins/modules/cluster.py @@ -627,7 +627,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreCluster(object): diff --git a/plugins/modules/dns.py b/plugins/modules/dns.py index 95f4f8e..b98aa0c 100644 --- a/plugins/modules/dns.py +++ b/plugins/modules/dns.py @@ -127,7 +127,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreDns(object): diff --git a/plugins/modules/email.py b/plugins/modules/email.py index 4d5a7db..787a48c 100644 --- a/plugins/modules/email.py +++ b/plugins/modules/email.py @@ -205,7 +205,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreEmail(object): diff --git a/plugins/modules/filesystem.py b/plugins/modules/filesystem.py index d1a6f77..b5f4bf9 100644 --- a/plugins/modules/filesystem.py +++ b/plugins/modules/filesystem.py @@ -552,7 +552,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreFileSystem(object): diff --git a/plugins/modules/filesystem_snapshot.py b/plugins/modules/filesystem_snapshot.py index 387087d..27bcb73 100644 --- a/plugins/modules/filesystem_snapshot.py +++ b/plugins/modules/filesystem_snapshot.py @@ -253,7 +253,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreFilesystemSnapshot(object): diff --git a/plugins/modules/host.py b/plugins/modules/host.py index 3ea4042..3f76d96 100644 --- a/plugins/modules/host.py +++ b/plugins/modules/host.py @@ -373,7 +373,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' # DO NOT CHANGE BELOW PORT_TYPES SEQUENCE AS ITS USED IN SCRIPT USING INDEX PORT_TYPES = ["iSCSI", "FC", "NVMe"] diff --git a/plugins/modules/hostgroup.py b/plugins/modules/hostgroup.py index bf85f60..01ad3e7 100644 --- a/plugins/modules/hostgroup.py +++ b/plugins/modules/hostgroup.py @@ -224,7 +224,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreHostgroup(object): diff --git a/plugins/modules/info.py b/plugins/modules/info.py index 827d156..45647ca 100644 --- a/plugins/modules/info.py +++ b/plugins/modules/info.py @@ -1388,7 +1388,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreInfo(object): diff --git a/plugins/modules/job.py b/plugins/modules/job.py index abd61c5..7554a24 100644 --- a/plugins/modules/job.py +++ b/plugins/modules/job.py @@ -174,7 +174,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreJob(object): diff --git a/plugins/modules/ldap_account.py b/plugins/modules/ldap_account.py index 881f006..ab6c167 100644 --- a/plugins/modules/ldap_account.py +++ b/plugins/modules/ldap_account.py @@ -173,7 +173,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreLDAPAccount(object): diff --git a/plugins/modules/ldap_domain.py b/plugins/modules/ldap_domain.py index 28a9ccd..2b13610 100644 --- a/plugins/modules/ldap_domain.py +++ b/plugins/modules/ldap_domain.py @@ -354,7 +354,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreLDAPDomain(object): diff --git a/plugins/modules/local_user.py b/plugins/modules/local_user.py index 5dd7242..5bc2f4b 100644 --- a/plugins/modules/local_user.py +++ b/plugins/modules/local_user.py @@ -185,7 +185,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreLocalUser(object): diff --git a/plugins/modules/nasserver.py b/plugins/modules/nasserver.py index 681073b..caa0085 100644 --- a/plugins/modules/nasserver.py +++ b/plugins/modules/nasserver.py @@ -299,7 +299,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreNasServer(object): diff --git a/plugins/modules/network.py b/plugins/modules/network.py index b4292d4..57db7d0 100644 --- a/plugins/modules/network.py +++ b/plugins/modules/network.py @@ -498,7 +498,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreNetwork(object): diff --git a/plugins/modules/nfs.py b/plugins/modules/nfs.py index 1fd9801..414f3b8 100644 --- a/plugins/modules/nfs.py +++ b/plugins/modules/nfs.py @@ -380,7 +380,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreNfsExport(object): diff --git a/plugins/modules/ntp.py b/plugins/modules/ntp.py index 0341933..7d14276 100644 --- a/plugins/modules/ntp.py +++ b/plugins/modules/ntp.py @@ -128,7 +128,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreNtp(object): diff --git a/plugins/modules/protectionpolicy.py b/plugins/modules/protectionpolicy.py index aef511b..0b2f548 100644 --- a/plugins/modules/protectionpolicy.py +++ b/plugins/modules/protectionpolicy.py @@ -241,7 +241,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreProtectionpolicy(object): diff --git a/plugins/modules/quota.py b/plugins/modules/quota.py index e2be1b6..fbb3d68 100644 --- a/plugins/modules/quota.py +++ b/plugins/modules/quota.py @@ -364,7 +364,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreQuota(object): diff --git a/plugins/modules/remote_support.py b/plugins/modules/remote_support.py index 4bdf0ac..429d1c9 100644 --- a/plugins/modules/remote_support.py +++ b/plugins/modules/remote_support.py @@ -357,7 +357,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreRemoteSupport(object): diff --git a/plugins/modules/remote_support_contact.py b/plugins/modules/remote_support_contact.py index 33d34b6..95fff07 100644 --- a/plugins/modules/remote_support_contact.py +++ b/plugins/modules/remote_support_contact.py @@ -137,7 +137,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreRemoteSupportContact(object): diff --git a/plugins/modules/remotesystem.py b/plugins/modules/remotesystem.py index 6fe8fa2..89704c8 100644 --- a/plugins/modules/remotesystem.py +++ b/plugins/modules/remotesystem.py @@ -308,7 +308,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreRemoteSystem(object): diff --git a/plugins/modules/replicationrule.py b/plugins/modules/replicationrule.py index fbcaede..59b1bac 100644 --- a/plugins/modules/replicationrule.py +++ b/plugins/modules/replicationrule.py @@ -197,7 +197,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreReplicationRule(object): diff --git a/plugins/modules/replicationsession.py b/plugins/modules/replicationsession.py index 1829589..8415849 100644 --- a/plugins/modules/replicationsession.py +++ b/plugins/modules/replicationsession.py @@ -230,7 +230,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' """ =============================================================================== Idempotency table for the replication session ansible module on the basis of diff --git a/plugins/modules/role.py b/plugins/modules/role.py index c2d8279..dd78a31 100644 --- a/plugins/modules/role.py +++ b/plugins/modules/role.py @@ -113,7 +113,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreRole(object): diff --git a/plugins/modules/security_config.py b/plugins/modules/security_config.py index 013ddaa..9a4c478 100644 --- a/plugins/modules/security_config.py +++ b/plugins/modules/security_config.py @@ -116,7 +116,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreSecurityConfig(object): diff --git a/plugins/modules/smbshare.py b/plugins/modules/smbshare.py index be62d41..c0e1529 100644 --- a/plugins/modules/smbshare.py +++ b/plugins/modules/smbshare.py @@ -311,7 +311,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreSMBShare(object): diff --git a/plugins/modules/smtp_config.py b/plugins/modules/smtp_config.py index f1ffb7a..fb09c84 100644 --- a/plugins/modules/smtp_config.py +++ b/plugins/modules/smtp_config.py @@ -24,8 +24,8 @@ options: smtp_id: description: - - Unique identifier of the SMTP configuration. - required: true + - Unique identifier of the SMTP configuration. This value is always '0'. + default: 0 type: int smtp_address: description: @@ -139,7 +139,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreSmtpConfig(object): @@ -185,7 +185,7 @@ def get_smtp_config_details(self, smtp_id): resp = self.configuration.get_smtp_config_details(smtp_id) LOG.info('Successfully got the details of SMTP configuration ' 'with id: %s', smtp_id) - return resp + return resp if resp else [] except Exception as e: msg = 'Get details of SMTP configuration: {0}' \ @@ -232,7 +232,8 @@ def modify_smtp_required(self, smtp_details): err_msg = "Invalid source email address: {0}".format(source_address) LOG.error(err_msg) self.module.fail_json(msg=err_msg) - + if not smtp_details: + return modify_smtp_config_dict for key in keys: if modify_smtp_config_dict[key] is not None and\ smtp_details[key] != modify_smtp_config_dict[key]: @@ -269,27 +270,28 @@ def perform_module_operation(self): state = self.module.params['state'] result = dict( - smtp_config_details=None + smtp_config_details=[] ) changed = False modify_params = None - smtp_details = self.get_smtp_config_details(smtp_id=smtp_id) - LOG.info(smtp_details) - if smtp_details: - modify_params = self.modify_smtp_required(smtp_details=smtp_details) - - if not smtp_details and state == 'present': + if smtp_id != 0: msg = "SMTP configuration with ID: {0} does not exist".format(smtp_id) LOG.error(msg) self.module.fail_json(msg=msg) - elif state == 'absent' and smtp_details: + smtp_details = self.get_smtp_config_details(smtp_id=smtp_id) + if smtp_details or (smtp_details is None and (self.module.params['source_email'] or + self.module.params['smtp_port'] or + self.module.params['smtp_address'])): + modify_params = self.modify_smtp_required(smtp_details=smtp_details) + + if state == 'absent' and smtp_details: msg = " Deletion of SMTP configuration is not supported" LOG.error(msg) self.module.fail_json(msg=msg) - elif state == 'present' and smtp_details and modify_params: + elif state == 'present' and modify_params: changed = self.modify_smtp_config_details( smtp_id=smtp_id, modify_params=modify_params) @@ -308,7 +310,7 @@ def get_powerstore_smtp_config_parameters(): smtp_config operations for PowerStore""" return dict( - smtp_id=dict(required=True, type='int'), smtp_address=dict(required=False, type='str'), + smtp_id=dict(type='int', default=0), smtp_address=dict(required=False, type='str'), smtp_port=dict(required=False, type='int'), source_email=dict(required=False, type='str'), destination_email=dict(required=False, type='str'), diff --git a/plugins/modules/snapshot.py b/plugins/modules/snapshot.py index c9538ba..77e6454 100644 --- a/plugins/modules/snapshot.py +++ b/plugins/modules/snapshot.py @@ -344,7 +344,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreSnapshot(object): diff --git a/plugins/modules/snapshotrule.py b/plugins/modules/snapshotrule.py index 427856f..4bf91bf 100644 --- a/plugins/modules/snapshotrule.py +++ b/plugins/modules/snapshotrule.py @@ -254,7 +254,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreSnapshotrule(object): diff --git a/plugins/modules/storage_container.py b/plugins/modules/storage_container.py index 52df8e1..7f77987 100644 --- a/plugins/modules/storage_container.py +++ b/plugins/modules/storage_container.py @@ -361,7 +361,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreStorageContainer(object): diff --git a/plugins/modules/vcenter.py b/plugins/modules/vcenter.py index b8d6f5a..93de5a1 100644 --- a/plugins/modules/vcenter.py +++ b/plugins/modules/vcenter.py @@ -215,7 +215,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerstoreVCenter(object): diff --git a/plugins/modules/volume.py b/plugins/modules/volume.py index 0b51edd..c3660f8 100644 --- a/plugins/modules/volume.py +++ b/plugins/modules/volume.py @@ -631,7 +631,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreVolume(object): diff --git a/plugins/modules/volumegroup.py b/plugins/modules/volumegroup.py index 0a43b6e..5de5a56 100644 --- a/plugins/modules/volumegroup.py +++ b/plugins/modules/volumegroup.py @@ -398,7 +398,7 @@ VERSION_ERROR = py4ps_version['unsupported_version_message'] # Application type -APPLICATION_TYPE = 'Ansible/2.0.0' +APPLICATION_TYPE = 'Ansible/2.1.0' class PowerStoreVolumeGroup(object): diff --git a/requirements.txt b/requirements.txt index 4218a35..2cbca82 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,2 @@ PyPowerStore urllib3>=1.26.7 -requests>=2.23.0 -setuptools \ No newline at end of file From 5827e250824dd15f8eeaf27b06730188848c62ae Mon Sep 17 00:00:00 2001 From: Pavan-Mudunuri Date: Wed, 26 Jul 2023 18:35:41 +0530 Subject: [PATCH 2/3] Ansible modules for PowerStore release version 2.1.0 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 008219b..b78276f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Ansible Modules for Dell Technologies PowerStore + The Ansible Modules for Dell Technologies (Dell) PowerStore allow Data Center and IT administrators to use RedHat Ansible to automate and orchestrate the configuration and management of Dell PowerStore arrays. +> **NOTE:** The Ansible Modules for Dell PowerStore are released on a monthly cadence starting July '23 The capabilities of the Ansible modules are managing volumes, volume groups, vCenters, hosts, host groups, snapshots, snapshot rules, replication rules, replication sessions, protection policies, file systems, NAS servers, SMB shares, user and tree quotas, file system snapshots, NFS exports, Clusters, Networks, Local users, Jobs, Roles, Certificates, Remote systems, security configuration, DNS server, Email notification destination, NTP server, Remote support configuration, Remote support contacts, SMTP configuration, LDAP accounts, LDAP domain configuration and storage containers. It also allows gathering high level info from the array. The options available for each are list, show, create, modify and delete. These tasks can be executed by running simple playbooks written in yaml syntax. The modules are written so that all the operations are idempotent, so making multiple identical requests has the same effect as making a single request. ## Table of contents From d89f1899163dbfd0347860c5c38dc2ef747a2e31 Mon Sep 17 00:00:00 2001 From: Pavan-Mudunuri Date: Fri, 28 Jul 2023 10:40:32 +0530 Subject: [PATCH 3/3] Ansible modules for PowerStore release version 2.1.0 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b78276f..2b5c335 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Ansible Modules for Dell Technologies PowerStore The Ansible Modules for Dell Technologies (Dell) PowerStore allow Data Center and IT administrators to use RedHat Ansible to automate and orchestrate the configuration and management of Dell PowerStore arrays. -> **NOTE:** The Ansible Modules for Dell PowerStore are released on a monthly cadence starting July '23 The capabilities of the Ansible modules are managing volumes, volume groups, vCenters, hosts, host groups, snapshots, snapshot rules, replication rules, replication sessions, protection policies, file systems, NAS servers, SMB shares, user and tree quotas, file system snapshots, NFS exports, Clusters, Networks, Local users, Jobs, Roles, Certificates, Remote systems, security configuration, DNS server, Email notification destination, NTP server, Remote support configuration, Remote support contacts, SMTP configuration, LDAP accounts, LDAP domain configuration and storage containers. It also allows gathering high level info from the array. The options available for each are list, show, create, modify and delete. These tasks can be executed by running simple playbooks written in yaml syntax. The modules are written so that all the operations are idempotent, so making multiple identical requests has the same effect as making a single request. ## Table of contents