diff options
author | Simon Dodsley <simon@purestorage.com> | 2019-09-24 15:11:15 -0400 |
---|---|---|
committer | ansibot <ansibot@users.noreply.github.com> | 2019-09-24 15:11:15 -0400 |
commit | 8a4c8ae20a8b4a7a359f9d127df762ae7e1cba01 (patch) | |
tree | add17a2131dd09cc542c762cd4f2b91b4e69be3c | |
parent | 09ac8c154a931f1268c79a5d3cbc3c1627016b16 (diff) | |
download | ansible-8a4c8ae20a8b4a7a359f9d127df762ae7e1cba01.tar.gz |
Add checks for Cloud Block Store (#62068)
-rw-r--r-- | changelogs/fragments/62068-add-pure-cbs-support.yml | 3 | ||||
-rw-r--r-- | lib/ansible/modules/storage/purestorage/purefa_host.py | 16 | ||||
-rw-r--r-- | lib/ansible/modules/storage/purestorage/purefa_info.py | 7 |
3 files changed, 24 insertions, 2 deletions
diff --git a/changelogs/fragments/62068-add-pure-cbs-support.yml b/changelogs/fragments/62068-add-pure-cbs-support.yml new file mode 100644 index 0000000000..a0012bb601 --- /dev/null +++ b/changelogs/fragments/62068-add-pure-cbs-support.yml @@ -0,0 +1,3 @@ +bugfixes: +- purefa_info - Add support for Cloud Block Store (https://github.com/ansible/ansible/pull/62068) +- purefa_host - Add support for Cloud Block Store (https://github.com/ansible/ansible/pull/62068) diff --git a/lib/ansible/modules/storage/purestorage/purefa_host.py b/lib/ansible/modules/storage/purestorage/purefa_host.py index a24ee27d00..3b0e471633 100644 --- a/lib/ansible/modules/storage/purestorage/purefa_host.py +++ b/lib/ansible/modules/storage/purestorage/purefa_host.py @@ -177,6 +177,20 @@ PREFERRED_ARRAY_API_VERSION = '1.15' NVME_API_VERSION = '1.16' +def _is_cbs(module, array, is_cbs=False): + """Is the selected array a Cloud Block Store""" + model = '' + ct0_model = array.get_hardware('CT0')['model'] + if ct0_model: + model = ct0_model + else: + ct1_model = array.get_hardware('CT1')['model'] + model = ct1_model + if 'CBS' in model: + is_cbs = True + return is_cbs + + def _set_host_initiators(module, array): """Set host initiators.""" if module.params['protocol'] in ['nvme', 'mixed']: @@ -417,6 +431,8 @@ def main(): module = AnsibleModule(argument_spec, supports_check_mode=True) array = get_system(module) + if _is_cbs(module, array) and module.params['wwns'] or module.params['nqn']: + module.fail_json(msg='Cloud block Store only support iSCSI as a protocol') api_version = array._list_available_rest_versions() if module.params['nqn'] is not None and NVME_API_VERSION not in api_version: module.fail_json(msg='NVMe protocol not supported. Please upgrade your array.') diff --git a/lib/ansible/modules/storage/purestorage/purefa_info.py b/lib/ansible/modules/storage/purestorage/purefa_info.py index 6c56ca9981..6d436d7dd4 100644 --- a/lib/ansible/modules/storage/purestorage/purefa_info.py +++ b/lib/ansible/modules/storage/purestorage/purefa_info.py @@ -965,7 +965,7 @@ def main(): info = {} - if 'minimum' in subset or 'all' in subset: + if 'minimum' in subset or 'all' in subset or 'apps' in subset: info['default'] = generate_default_dict(array) if 'performance' in subset or 'all' in subset: info['performance'] = generate_perf_dict(array) @@ -1000,7 +1000,10 @@ def main(): info['nfs_offload'] = generate_nfs_offload_dict(array) info['s3_offload'] = generate_s3_offload_dict(array) if 'apps' in subset or 'all' in subset: - info['apps'] = generate_apps_dict(array) + if 'CBS' not in info['default']['array_model']: + info['apps'] = generate_apps_dict(array) + else: + info['apps'] = {} if 'arrays' in subset or 'all' in subset: info['arrays'] = generate_conn_array_dict(array) if 'certs' in subset or 'all' in subset: |