From 2cfbbdf58ae1cb224b9080ff4bb84196e13cdc34 Mon Sep 17 00:00:00 2001 From: Datta Date: Tue, 19 Mar 2024 20:23:20 +0530 Subject: [PATCH 1/6] Adding support for OneFS 9.7.0 --- plugins/module_utils/storage/dell/utils.py | 5 ++++- plugins/modules/accesszone.py | 4 ++-- plugins/modules/server_certificate.py | 6 +++++- plugins/modules/synciqjob.py | 2 +- plugins/modules/user.py | 11 +++++++++-- plugins/modules/user_mapping_rule.py | 4 ++-- 6 files changed, 23 insertions(+), 9 deletions(-) diff --git a/plugins/module_utils/storage/dell/utils.py b/plugins/module_utils/storage/dell/utils.py index e95594a0..ac904ecc 100644 --- a/plugins/module_utils/storage/dell/utils.py +++ b/plugins/module_utils/storage/dell/utils.py @@ -311,7 +311,10 @@ def find_compatible_powerscale_sdk(module_params, module=None): # Adding a workaround for home_directory_template failure in later versions of SDK. compatible_powerscale_sdk = "isilon_sdk.v9_1_0" else: - compatible_powerscale_sdk = "isilon_sdk.v" + array_version + if int(minor) >= 5: + compatible_powerscale_sdk = "isilon_sdk.v9_5_0" + else: + compatible_powerscale_sdk = "isilon_sdk.v" + array_version import_powerscale_sdk(compatible_powerscale_sdk) except Exception as e: HAS_POWERSCALE_SDK = False diff --git a/plugins/modules/accesszone.py b/plugins/modules/accesszone.py index 94bf1953..d212dc3f 100644 --- a/plugins/modules/accesszone.py +++ b/plugins/modules/accesszone.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright: (c) 2019, Dell Technologies +# Copyright: (c) 2024, Dell Technologies # Apache License version 2.0 (see MODULE-LICENSE or http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -918,7 +918,7 @@ def delete_access_zone(self, name=None): def validate_input(self, az_params): if not az_params['path']: - error_message = 'Please provide a valid path to create an access zone' + error_message = 'Provide a valid path to create an access zone' LOG.error(error_message) self.module.fail_json(msg=error_message) diff --git a/plugins/modules/server_certificate.py b/plugins/modules/server_certificate.py index ceab464b..fcdc8954 100644 --- a/plugins/modules/server_certificate.py +++ b/plugins/modules/server_certificate.py @@ -494,7 +494,9 @@ def update_certificate(self, module_params, certificate_details): updated, updated_cert, updated_new_cert, updated_default_cert = \ self.get_updated_diff(module_params, certificate_details) - if (self.module.check_mode) or not updated: + if self.module.check_mode and (updated or not updated): + return updated, certificate_details + elif not updated: return updated, certificate_details updated_values = {} @@ -571,6 +573,8 @@ def handle(self, certificate_obj, certificate_details, module_params): None """ state = module_params['state'] + certificate_id = module_params.get('certificate_id') + alias_name = module_params.get('alias_name') details = {} if state == 'present' and not certificate_details: changed, details = certificate_obj.import_certificate(module_params) diff --git a/plugins/modules/synciqjob.py b/plugins/modules/synciqjob.py index e98c4011..ba9fa24e 100644 --- a/plugins/modules/synciqjob.py +++ b/plugins/modules/synciqjob.py @@ -51,7 +51,7 @@ notes: - There is delay in the actual state change of the SyncIQ job. The state change of jobs in 'scheduled' state is not supported. -- To start the SyncIQ job use the M(dellemc.powerscale.synciqpolicy) module. +- To start the SyncIQ job use the M(synciqpolicy) module. - The I(check_mode) is not supported. ''' diff --git a/plugins/modules/user.py b/plugins/modules/user.py index 1f7b0aba..3553bd5b 100644 --- a/plugins/modules/user.py +++ b/plugins/modules/user.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright: (c) 2019, Dell Technologies +# Copyright: (c) 2024, Dell Technologies # Apache License version 2.0 (see MODULE-LICENSE or http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -333,6 +333,7 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.dellemc.powerscale.plugins.module_utils.storage.dell \ import utils +from pkg_resources import parse_version import re LOG = utils.get_logger('user') @@ -367,6 +368,10 @@ def __init__(self): self.api_client = utils.get_powerscale_connection(self.module.params) self.api_instance = utils.isi_sdk.AuthApi(self.api_client) + cluster_api = utils.isi_sdk.ClusterApi(self.api_client) + major = str(parse_version(cluster_api.get_cluster_config().to_dict()['onefs_version']['release'].split('.')[0])) + minor = str(parse_version(cluster_api.get_cluster_config().to_dict()['onefs_version']['release'].split('.')[1])) + self.array_version = major + "." + minor self.role_api_instance = utils.isi_sdk.AuthRolesApi( self.api_client) self.zone_summary_api = utils.isi_sdk.ZonesSummaryApi(self.api_client) @@ -720,7 +725,9 @@ def modify_existing_user(self, user_name, user_id, role_name, role_state, auth_user_id, access_zone, provider_type, enabled, primary_group, home_directory, shell, full_name, email) - password_changed = self.modify_password(auth_user_id, access_zone) + password_changed = False + if float(self.array_version) < 9.5: + password_changed = self.modify_password(auth_user_id, access_zone) return user_details_changed or role_changed or password_changed def delete_existing_user(self, provider_type, auth_user_id, access_zone, diff --git a/plugins/modules/user_mapping_rule.py b/plugins/modules/user_mapping_rule.py index e6efa18c..8364f1f4 100644 --- a/plugins/modules/user_mapping_rule.py +++ b/plugins/modules/user_mapping_rule.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright: (c) 2023, Dell Technologies +# Copyright: (c) 2024, Dell Technologies # Apache License version 2.0 (see MODULE-LICENSE or http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -368,7 +368,7 @@ def form_create_user_mapping_rule_object(self, rules_list): rule_object_payload['options'] = options_object rule_object_payload['user1'] = utils.isi_sdk.MappingUsersRulesRuleUser1(**rule['user1']) if rule['user2']: - rule_object_payload['user2'] = utils.isi_sdk.MappingUsersRulesRuleUser2Extended(**rule['user2']) + rule_object_payload['user2'] = utils.isi_sdk.MappingUsersRulesRuleUser2(**rule['user2']) rule_object = utils.isi_sdk.MappingUsersRulesRuleExtended( **rule_object_payload ) From 15418b8cf66e08bfaf26b1e5d27bbd3904f2ba18 Mon Sep 17 00:00:00 2001 From: Datta Date: Sat, 23 Mar 2024 15:47:06 +0530 Subject: [PATCH 2/6] Documentation changes for 3.0.0 --- CHANGELOG.rst | 7 +++ README.md | 102 +++++++++++++++++------------------ 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 | 15 +++--- docs/SECURITY.md | 2 +- galaxy.yml | 8 +-- plugins/modules/synciqjob.py | 2 +- 11 files changed, 83 insertions(+), 74 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 81e2a0ad..429fb07c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,13 @@ Dellemc.Powerscale Change Logs .. contents:: Topics +v3.0.0 +====== + +Minor Changes +------------- + +- Added support for OneFS 9.7 Key West release. v2.5.0 ====== diff --git a/README.md b/README.md index 3a90c3e7..fee1f44b 100644 --- a/README.md +++ b/README.md @@ -41,15 +41,15 @@ The tasks can be executed by running simple playbooks written in yaml syntax. ## Table of contents -* [Code of conduct](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/CODE_OF_CONDUCT.md) -* [Maintainer guide](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/MAINTAINER_GUIDE.md) -* [Committer guide](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/COMMITTER_GUIDE.md) -* [Contributing guide](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/CONTRIBUTING.md) -* [Branching strategy](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/BRANCHING.md) -* [List of adopters](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/ADOPTERS.md) -* [Maintainers](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/MAINTAINERS.md) -* [Support](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/SUPPORT.md) -* [Security](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/SECURITY.md) +* [Code of conduct](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/CODE_OF_CONDUCT.md) +* [Maintainer guide](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/MAINTAINER_GUIDE.md) +* [Committer guide](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/COMMITTER_GUIDE.md) +* [Contributing guide](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/CONTRIBUTING.md) +* [Branching strategy](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/BRANCHING.md) +* [List of adopters](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/ADOPTERS.md) +* [Maintainers](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/MAINTAINERS.md) +* [Support](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/SUPPORT.md) +* [Security](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/SECURITY.md) * [License](#license) * [Supported platforms](#supported-platforms) * [Prerequisites](#prerequisites) @@ -58,7 +58,7 @@ The tasks can be executed by running simple playbooks written in yaml syntax. * [Maintanence](#maintanence) ## License -Ansible collection for PowerScale is released and licensed under the GPL-3.0 license. See [LICENSE](https://github.com/dell/ansible-powerscale/blob/2.5.0/LICENSE) for the full terms. Ansible modules and modules utilities that are part of the Ansible collection for PowerScale are released and licensed under the Apache 2.0 license. See [MODULE-LICENSE](https://github.com/dell/ansible-powerscale/blob/2.5.0/MODULE-LICENSE) for the full terms. +Ansible collection for PowerScale is released and licensed under the GPL-3.0 license. See [LICENSE](https://github.com/dell/ansible-powerscale/blob/3.0.0/LICENSE) for the full terms. Ansible modules and modules utilities that are part of the Ansible collection for PowerScale are released and licensed under the Apache 2.0 license. See [MODULE-LICENSE](https://github.com/dell/ansible-powerscale/blob/3.0.0/MODULE-LICENSE) for the full terms. ## Supported platforms * Dell PowerScale OneFS versions 9.3.x, 9.4.x and 9.5.x @@ -68,52 +68,52 @@ This table provides information about the software prerequisites for the Ansible | **Ansible Modules** | **OneFS Version** | **Python version** | **Python SDK version** | **Ansible** | |---------------------|-----------------------|--------------------|----------------------------|--------------------------| -| v2.5.0 | 9.3.x
9.4.x
9.5.x | 3.9
3.10
3.11 | 0.3.0.1 | 2.14
2.15
2.16 | +| v3.0.0 | 9.4.x
9.5.x
9.7.x | 3.9
3.10
3.11 | 0.3.0.1 | 2.14
2.15
2.16 | # List of Ansible modules for Dell PowerScale - * [File System Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/filesystem.rst) - * [Access Zone Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/accesszone.rst) - * [User Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/user.rst) - * [Group Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/group.rst) - * [Snapshot Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/snapshot.rst) - * [Snapshot Schedule Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/snapshotschedule.rst) - * [NFS Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/nfs.rst) - * [SMB Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/smb.rst) - * [Smart Quota Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/smartquota.rst) - * [Info Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/info.rst) - * [Active Directory Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/ads.rst) - * [LDAP Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/ldap.rst) - * [Node Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/node.rst) - * [SyncIQ Policy Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/synciqpolicy.rst) - * [SyncIQ Jobs Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/synciqjob.rst) - * [SyncIQ Performance Rules Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/synciqrules.rst) - * [SyncIQ Reports Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/synciqreports.rst) - * [SyncIQ Target Reports Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/synciqtargetreports.rst) - * [Groupnet Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/groupnet.rst) - * [Subnet Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/subnet.rst) - * [Network Pool Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/networkpool.rst) - * [Network Rule Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/networkrule.rst) - * [NFS Alias Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/nfs_alias.rst) - * [Settings Module](https://github.com/dell/ansible-powerscale/tree/2.5.0/docs/modules/settings.rst) - * [Network Setting Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/networksettings.rst) - * [Smart Pool Setting Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/smartpoolsettings.rst) - * [Filepool Policy Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/filepoolpolicy.rst) - * [Storagepool Tier Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/storagepooltier.rst) - * [SMB File Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/smb_file.rst) - * [User Mapping Rule Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/user_mapping_rule.rst) - * [S3 Bucket Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/s3_bucket.rst) - * [NFS Default Settings Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/nfs_default_settings.rst) - * [NFS Global Settings Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/nfs_global_settings.rst) - * [NFS Zone Settings Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/nfs_zone_settings.rst) - * [SyncIQ Global Settings Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/synciq_global_settings.rst) - * [SyncIQ Certificate Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/synciqcertificate.rst) - * [SMB Global Settings Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/smb_global_settings.rst) - * [SNMP Settings Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/snmp_settings.rst) - * [Server Certificate Module](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/modules/server_certificate.rst) + * [File System Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/filesystem.rst) + * [Access Zone Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/accesszone.rst) + * [User Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/user.rst) + * [Group Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/group.rst) + * [Snapshot Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/snapshot.rst) + * [Snapshot Schedule Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/snapshotschedule.rst) + * [NFS Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/nfs.rst) + * [SMB Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/smb.rst) + * [Smart Quota Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/smartquota.rst) + * [Info Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/info.rst) + * [Active Directory Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/ads.rst) + * [LDAP Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/ldap.rst) + * [Node Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/node.rst) + * [SyncIQ Policy Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/synciqpolicy.rst) + * [SyncIQ Jobs Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/synciqjob.rst) + * [SyncIQ Performance Rules Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/synciqrules.rst) + * [SyncIQ Reports Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/synciqreports.rst) + * [SyncIQ Target Reports Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/synciqtargetreports.rst) + * [Groupnet Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/groupnet.rst) + * [Subnet Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/subnet.rst) + * [Network Pool Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/networkpool.rst) + * [Network Rule Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/networkrule.rst) + * [NFS Alias Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/nfs_alias.rst) + * [Settings Module](https://github.com/dell/ansible-powerscale/tree/3.0.0/docs/modules/settings.rst) + * [Network Setting Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/networksettings.rst) + * [Smart Pool Setting Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/smartpoolsettings.rst) + * [Filepool Policy Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/filepoolpolicy.rst) + * [Storagepool Tier Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/storagepooltier.rst) + * [SMB File Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/smb_file.rst) + * [User Mapping Rule Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/user_mapping_rule.rst) + * [S3 Bucket Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/s3_bucket.rst) + * [NFS Default Settings Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/nfs_default_settings.rst) + * [NFS Global Settings Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/nfs_global_settings.rst) + * [NFS Zone Settings Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/nfs_zone_settings.rst) + * [SyncIQ Global Settings Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/synciq_global_settings.rst) + * [SyncIQ Certificate Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/synciqcertificate.rst) + * [SMB Global Settings Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/smb_global_settings.rst) + * [SNMP Settings Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/snmp_settings.rst) + * [Server Certificate Module](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/modules/server_certificate.rst) ## Installation and execution of Ansible modules for Dell PowerScale -The installation and execution steps of Ansible modules for Dell PowerScale can be found [here](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/INSTALLATION.md). +The installation and execution steps of Ansible modules for Dell PowerScale can be found [here](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/INSTALLATION.md). ## Maintenance Ansible Modules for Dell Technologies PowerScale deprecation cycle is aligned with [Ansible](https://docs.ansible.com/ansible/latest/dev_guide/module_lifecycle.html). diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index d6c823e1..36a67f5c 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -264,3 +264,8 @@ releases: name: server_certificate namespace: '' release_date: '2024-02-29' + 3.0.0: + changes: + minor_changes: + - Added support for OneFS 9.7 Key West release. + release_date: '2024-03-29' diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index fe98126f..f8ec05d4 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-powerscale/blob/2.5.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-powerscale/blob/3.0.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 PowerScale 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-powerscale/blob/2.5.0/docs/ISSUE_TRIAGE.md). +Read more about the ways you can [Triage issues](https://github.com/dell/ansible-powerscale/blob/3.0.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 PowerScale](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/BRANCHING.md) +* [Branching Strategy for Ansible modules for Dell PowerScale](https://github.com/dell/ansible-powerscale/blob/3.0.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-powerscale/blob/2.5.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-powerscale/blob/3.0.0/docs/SUPPORT.md). #### Code sanitization diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index df997120..253a8667 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -32,7 +32,7 @@ Use this procedure to install SDK: #### Offline installation of collections 1. Download the latest tar build from either of the available distribution channels [Ansible Galaxy](https://galaxy.ansible.com/dellemc/powerscale) /[Automation Hub](https://console.redhat.com/ansible/automation-hub/repo/published/dellemc/powerscale) and use this command to install the collection anywhere in your system: - ansible-galaxy collection install dellemc-powerscale-2.5.0.tar.gz -p + ansible-galaxy collection install dellemc-powerscale-3.0.0.tar.gz -p 2. Set the environment variable: @@ -59,7 +59,7 @@ Use this procedure to install SDK: ## Ansible modules execution -The Ansible server must be configured with Python library for OneFS to run the Ansible playbooks. The [Documents](https://github.com/dell/ansible-powerscale/blob/2.5.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 need to be configured before running the modules. +The Ansible server must be configured with Python library for OneFS to run the Ansible playbooks. The [Documents](https://github.com/dell/ansible-powerscale/blob/3.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 need to be configured before running the modules. ## SSL certificate validation diff --git a/docs/ISSUE_TRIAGE.md b/docs/ISSUE_TRIAGE.md index 43737819..4f66cc73 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.15] - Python Version [e.g. 3.11] - - Ansible modules for Dell PowerScale Version: [e.g. 2.5.0] + - Ansible modules for Dell PowerScale Version: [e.g. 3.0.0] - PowerScale SDK version: [e.g. 0.3.0.1] - Any other additional information... diff --git a/docs/MAINTAINER_GUIDE.md b/docs/MAINTAINER_GUIDE.md index cbca3e5c..f7647712 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-powerscale/blob/2.5.0/docs/CODE_OF_CONDUCT.md) and the guidelines in the [Contributing](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/CONTRIBUTING.md) and [Committer](https://github.com/dell/ansible-powerscale/blob/2.5.0/docs/COMMITTER_GUIDE.md) guides +* Follow the [Code of Conduct](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/CODE_OF_CONDUCT.md) and the guidelines in the [Contributing](https://github.com/dell/ansible-powerscale/blob/3.0.0/docs/CONTRIBUTING.md) and [Committer](https://github.com/dell/ansible-powerscale/blob/3.0.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 e639c7b4..dba5f314 100644 --- a/docs/Release Notes.md +++ b/docs/Release Notes.md @@ -1,6 +1,6 @@ **Ansible Modules for Dell Technologies PowerScale** ========================================= -### Release notes 2.5.0 +### Release notes 3.0.0 > © 2024 Dell Inc. or its subsidiaries. All rights reserved. Dell > and other trademarks are trademarks of Dell Inc. or its @@ -27,7 +27,7 @@ Table 1. Revision history | Revision | Date | Description | |----------|---------------|-----------------------------------------------------------| -| 01 | February 2024 | Ansible Modules for Dell PowerScale 2.5.0 | +| 01 | March 2024 | Ansible Modules for Dell PowerScale 3.0.0 | Product description @@ -73,12 +73,9 @@ New Features and Enhancements --------------------------- This section describes the features of the Ansible Modules for Dell PowerScale for this release. -The Ansible Modules for Dell PowerScale release 2.5.0 supports the following features: +The Ansible Modules for Dell PowerScale release 3.0.0 supports the following features: -- The server certificate module supports this functionality: - - Added support for importing, modifying, setting defaults, and deleting server certificates. -- The Info module has been enhanced to support this functionality. - - Added support for listing server certificates. +- Added support for OneFS version 9.7.x (Key West version). Known issues ------------ @@ -102,7 +99,7 @@ This section lists the limitations in this release of Ansible Modules for Dell P - Users and Groups - Only local users and groups can be created. - Operations on users and groups with very long names may fail. - - Modification of user password fails for OneFS version 9.5. + - Modification of user password is not supported for OneFS version 9.5 and above. - Filesystems - Only directory quotas are supported but not user or group quotas. @@ -124,7 +121,7 @@ This section lists the limitations in this release of Ansible Modules for Dell P Software media, organization, and files ----------- The software package is available for download from the [Ansible Modules -for PowerScale GitHub](https://github.com/dell/ansible-powerscale/tree/2.5.0) page. +for PowerScale GitHub](https://github.com/dell/ansible-powerscale/tree/3.0.0) page. Additional resources -------------------- diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 16889acb..88b8bcaa 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 PowerScale repository is 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-powerscale/blob/2.5.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-powerscale/blob/3.0.0/docs/CONTRIBUTING.md#Pull-requests) for more information. ## Reporting a vulnerability diff --git a/galaxy.yml b/galaxy.yml index 5017563d..5c839e6b 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -14,7 +14,7 @@ name: powerscale # The version of the collection. # Must be compatible with semantic versioning -version: 2.5.0 +version: 3.0.0 # The path to the Markdown (.md) readme file. # This path is relative to the root of the collection. @@ -66,13 +66,13 @@ tags: [storage] dependencies: {} # The URL of the originating SCM repository -repository: https://github.com/dell/ansible-powerscale/tree/2.5.0 +repository: https://github.com/dell/ansible-powerscale/tree/3.0.0 # The URL to any online docs -documentation: https://github.com/dell/ansible-powerscale/tree/2.5.0/docs +documentation: https://github.com/dell/ansible-powerscale/tree/3.0.0/docs # The URL to the homepage of the collection/project -homepage: https://github.com/dell/ansible-powerscale/tree/2.5.0 +homepage: https://github.com/dell/ansible-powerscale/tree/3.0.0 # The URL to the collection issue tracker issues: https://www.dell.com/community/Automation/bd-p/Automation diff --git a/plugins/modules/synciqjob.py b/plugins/modules/synciqjob.py index ba9fa24e..e98c4011 100644 --- a/plugins/modules/synciqjob.py +++ b/plugins/modules/synciqjob.py @@ -51,7 +51,7 @@ notes: - There is delay in the actual state change of the SyncIQ job. The state change of jobs in 'scheduled' state is not supported. -- To start the SyncIQ job use the M(synciqpolicy) module. +- To start the SyncIQ job use the M(dellemc.powerscale.synciqpolicy) module. - The I(check_mode) is not supported. ''' From 2f5309c1dfefe2b16ba448a34b38b60fe260bd11 Mon Sep 17 00:00:00 2001 From: Datta Date: Sat, 23 Mar 2024 15:50:38 +0530 Subject: [PATCH 3/6] Documentation changes for 3.0.0 --- plugins/modules/server_certificate.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/modules/server_certificate.py b/plugins/modules/server_certificate.py index fcdc8954..ceab464b 100644 --- a/plugins/modules/server_certificate.py +++ b/plugins/modules/server_certificate.py @@ -494,9 +494,7 @@ def update_certificate(self, module_params, certificate_details): updated, updated_cert, updated_new_cert, updated_default_cert = \ self.get_updated_diff(module_params, certificate_details) - if self.module.check_mode and (updated or not updated): - return updated, certificate_details - elif not updated: + if (self.module.check_mode) or not updated: return updated, certificate_details updated_values = {} @@ -573,8 +571,6 @@ def handle(self, certificate_obj, certificate_details, module_params): None """ state = module_params['state'] - certificate_id = module_params.get('certificate_id') - alias_name = module_params.get('alias_name') details = {} if state == 'present' and not certificate_details: changed, details = certificate_obj.import_certificate(module_params) From 49e3a344a99841721ba3e1967c460b75a345c65e Mon Sep 17 00:00:00 2001 From: Datta Date: Sat, 23 Mar 2024 22:50:38 +0530 Subject: [PATCH 4/6] Documentation changes for 3.0.0 --- plugins/modules/user.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/modules/user.py b/plugins/modules/user.py index 3553bd5b..c1fc6bb5 100644 --- a/plugins/modules/user.py +++ b/plugins/modules/user.py @@ -333,7 +333,6 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.dellemc.powerscale.plugins.module_utils.storage.dell \ import utils -from pkg_resources import parse_version import re LOG = utils.get_logger('user') @@ -369,8 +368,8 @@ def __init__(self): self.api_client = utils.get_powerscale_connection(self.module.params) self.api_instance = utils.isi_sdk.AuthApi(self.api_client) cluster_api = utils.isi_sdk.ClusterApi(self.api_client) - major = str(parse_version(cluster_api.get_cluster_config().to_dict()['onefs_version']['release'].split('.')[0])) - minor = str(parse_version(cluster_api.get_cluster_config().to_dict()['onefs_version']['release'].split('.')[1])) + major = str(cluster_api.get_cluster_config().to_dict()['onefs_version']['release'].split('.')[0]) + minor = str(cluster_api.get_cluster_config().to_dict()['onefs_version']['release'].split('.')[1]) self.array_version = major + "." + minor self.role_api_instance = utils.isi_sdk.AuthRolesApi( self.api_client) From a066ca216e4f5f248ffdbaf1299e325aa4dc2f58 Mon Sep 17 00:00:00 2001 From: Datta Date: Mon, 25 Mar 2024 23:58:11 +0530 Subject: [PATCH 5/6] Deprecating collection format --- meta/runtime.yml | 72 ++++++++++++++++-------------------------------- 1 file changed, 24 insertions(+), 48 deletions(-) diff --git a/meta/runtime.yml b/meta/runtime.yml index bd7e7784..e8c6199c 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -3,122 +3,98 @@ requires_ansible: ">=2.14.0" plugin_routing: modules: dellemc_powerscale_accesszone: - redirect: dellemc.powerscale.accesszone - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use accesszone instead. dellemc_powerscale_ads: - redirect: dellemc.powerscale.ads - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use ads instead. dellemc_powerscale_filesystem: - redirect: dellemc.powerscale.filesystem - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use filesystem instead. dellemc_powerscale_group: - redirect: dellemc.powerscale.group - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use group instead. dellemc_powerscale_groupnet: - redirect: dellemc.powerscale.groupnet - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use groupnet instead. dellemc_powerscale_gatherfacts: - redirect: dellemc.powerscale.info - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use info instead. dellemc_powerscale_ldap: - redirect: dellemc.powerscale.ldap - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use ldap instead. dellemc_powerscale_networkpool: - redirect: dellemc.powerscale.networkpool - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use networkpool instead. dellemc_powerscale_networkrule: - redirect: dellemc.powerscale.networkrule - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use networkrule instead. dellemc_powerscale_networksettings: - redirect: dellemc.powerscale.networksettings - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use networksettings instead. dellemc_powerscale_nfs: - redirect: dellemc.powerscale.nfs - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use nfs instead. dellemc_powerscale_node: - redirect: dellemc.powerscale.node - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use node instead. dellemc_powerscale_settings: - redirect: dellemc.powerscale.settings - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use settings instead. dellemc_powerscale_smartquota: - redirect: dellemc.powerscale.smartquota - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use smartquota instead. dellemc_powerscale_smb: - redirect: dellemc.powerscale.smb - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use smb instead. dellemc_powerscale_snapshot: - redirect: dellemc.powerscale.snapshot - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use snapshot instead. dellemc_powerscale_snapshotschedule: - redirect: dellemc.powerscale.snapshotschedule - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use snapshotschedule instead. dellemc_powerscale_subnet: - redirect: dellemc.powerscale.subnet - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use subnet instead. dellemc_powerscale_synciqjob: - redirect: dellemc.powerscale.synciqjob - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use synciqjob instead. dellemc_powerscale_synciqpolicy: - redirect: dellemc.powerscale.synciqpolicy - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use synciqpolicy instead. dellemc_powerscale_synciqreports: - redirect: dellemc.powerscale.synciqreports - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use synciqreports instead. dellemc_powerscale_synciqtargetreports: - redirect: dellemc.powerscale.synciqtargetreports - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use synciqtargetreports instead. dellemc_powerscale_user: - redirect: dellemc.powerscale.user - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use user instead. dellemc_powerscale_synciqrules: - redirect: dellemc.powerscale.synciqrules - deprecation: + tombstone: removal_date: "2024-03-31" warning_text: Use synciqrules instead. From 73a73a84a6d57eb1442985250f5aae1eef9b2283 Mon Sep 17 00:00:00 2001 From: Datta Date: Tue, 26 Mar 2024 00:04:42 +0530 Subject: [PATCH 6/6] Deprecating collection format --- meta/runtime.yml | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/meta/runtime.yml b/meta/runtime.yml index e8c6199c..e8753ef1 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -4,97 +4,97 @@ plugin_routing: modules: dellemc_powerscale_accesszone: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use accesszone instead. dellemc_powerscale_ads: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use ads instead. dellemc_powerscale_filesystem: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use filesystem instead. dellemc_powerscale_group: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use group instead. dellemc_powerscale_groupnet: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use groupnet instead. dellemc_powerscale_gatherfacts: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use info instead. dellemc_powerscale_ldap: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use ldap instead. dellemc_powerscale_networkpool: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use networkpool instead. dellemc_powerscale_networkrule: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use networkrule instead. dellemc_powerscale_networksettings: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use networksettings instead. dellemc_powerscale_nfs: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use nfs instead. dellemc_powerscale_node: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use node instead. dellemc_powerscale_settings: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use settings instead. dellemc_powerscale_smartquota: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use smartquota instead. dellemc_powerscale_smb: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use smb instead. dellemc_powerscale_snapshot: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use snapshot instead. dellemc_powerscale_snapshotschedule: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use snapshotschedule instead. dellemc_powerscale_subnet: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use subnet instead. dellemc_powerscale_synciqjob: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use synciqjob instead. dellemc_powerscale_synciqpolicy: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use synciqpolicy instead. dellemc_powerscale_synciqreports: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use synciqreports instead. dellemc_powerscale_synciqtargetreports: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use synciqtargetreports instead. dellemc_powerscale_user: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use user instead. dellemc_powerscale_synciqrules: tombstone: - removal_date: "2024-03-31" + removal_date: "2024-03-25" warning_text: Use synciqrules instead.