Adding new options to na_ontap_nfs module (#59505)

* Adding new options to na_ontap_nfs module

- nfsv4_fsid_change
- nfsv4_numeric_ids
- nfsv40_referrals
- nfsv41_pnfs
- nfsv41_referrals

* Adding version_added: '2.9' for new options
pull/61322/head
Milan Zink 5 years ago committed by Jake Jackson
parent f62f1ab54c
commit 7cefef9719

@ -44,6 +44,11 @@ options:
- status of if NFSv3 clients see change in FSID as they traverse filesystems. - status of if NFSv3 clients see change in FSID as they traverse filesystems.
choices: ['enabled', 'disabled'] choices: ['enabled', 'disabled']
version_added: '2.7' version_added: '2.7'
nfsv4_fsid_change:
description:
- status of if NFSv4 clients see change in FSID as they traverse filesystems.
choices: ['enabled', 'disabled']
version_added: '2.9'
nfsv4: nfsv4:
description: description:
- status of NFSv4. - status of NFSv4.
@ -53,6 +58,16 @@ options:
- status of NFSv41. - status of NFSv41.
aliases: ['nfsv4.1'] aliases: ['nfsv4.1']
choices: ['enabled', 'disabled'] choices: ['enabled', 'disabled']
nfsv41_pnfs:
description:
- status of NFSv41 pNFS.
choices: ['enabled', 'disabled']
version_added: '2.9'
nfsv4_numeric_ids:
description:
- status of NFSv4 numeric ID's.
choices: ['enabled', 'disabled']
version_added: '2.9'
vstorage_state: vstorage_state:
description: description:
- status of vstorage_state. - status of vstorage_state.
@ -90,6 +105,16 @@ options:
- status for NFS v4.1 write delegation feature. - status for NFS v4.1 write delegation feature.
choices: ['enabled', 'disabled'] choices: ['enabled', 'disabled']
version_added: '2.7' version_added: '2.7'
nfsv40_referrals:
description:
- status for NFS v4.0 referrals.
choices: ['enabled', 'disabled']
version_added: '2.9'
nfsv41_referrals:
description:
- status for NFS v4.1 referrals.
choices: ['enabled', 'disabled']
version_added: '2.9'
tcp: tcp:
description: description:
- Enable TCP (support from ONTAP 9.3 onward). - Enable TCP (support from ONTAP 9.3 onward).
@ -143,6 +168,7 @@ HAS_NETAPP_LIB = netapp_utils.has_netapp_lib()
class NetAppONTAPNFS(object): class NetAppONTAPNFS(object):
""" object initialize and class methods """ """ object initialize and class methods """
def __init__(self): def __init__(self):
self.argument_spec = netapp_utils.na_ontap_host_argument_spec() self.argument_spec = netapp_utils.na_ontap_host_argument_spec()
@ -152,17 +178,22 @@ class NetAppONTAPNFS(object):
vserver=dict(required=True, type='str'), vserver=dict(required=True, type='str'),
nfsv3=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv3=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv3_fsid_change=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv3_fsid_change=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv4_fsid_change=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv4=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv4=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv41=dict(required=False, default=None, choices=['enabled', 'disabled'], aliases=['nfsv4.1']), nfsv41=dict(required=False, default=None, choices=['enabled', 'disabled'], aliases=['nfsv4.1']),
nfsv41_pnfs=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv4_numeric_ids=dict(required=False, default=None, choices=['enabled', 'disabled']),
vstorage_state=dict(required=False, default=None, choices=['enabled', 'disabled']), vstorage_state=dict(required=False, default=None, choices=['enabled', 'disabled']),
tcp=dict(required=False, default=None, choices=['enabled', 'disabled']), tcp=dict(required=False, default=None, choices=['enabled', 'disabled']),
udp=dict(required=False, default=None, choices=['enabled', 'disabled']), udp=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv4_id_domain=dict(required=False, type='str', default=None), nfsv4_id_domain=dict(required=False, type='str', default=None),
nfsv40_acl=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv40_acl=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv40_read_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv40_read_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv40_referrals=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv40_write_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv40_write_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv41_acl=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv41_acl=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv41_read_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv41_read_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv41_referrals=dict(required=False, default=None, choices=['enabled', 'disabled']),
nfsv41_write_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']), nfsv41_write_delegation=dict(required=False, default=None, choices=['enabled', 'disabled']),
showmount=dict(required=False, default=None, choices=['enabled', 'disabled']), showmount=dict(required=False, default=None, choices=['enabled', 'disabled']),
tcp_max_xfer_size=dict(required=False, default=None, type='int') tcp_max_xfer_size=dict(required=False, default=None, type='int')
@ -181,6 +212,7 @@ class NetAppONTAPNFS(object):
self.vserver = parameters['vserver'] self.vserver = parameters['vserver']
self.nfsv3 = parameters['nfsv3'] self.nfsv3 = parameters['nfsv3']
self.nfsv3_fsid_change = parameters['nfsv3_fsid_change'] self.nfsv3_fsid_change = parameters['nfsv3_fsid_change']
self.nfsv4_fsid_change = parameters['nfsv4_fsid_change']
self.nfsv4 = parameters['nfsv4'] self.nfsv4 = parameters['nfsv4']
self.nfsv41 = parameters['nfsv41'] self.nfsv41 = parameters['nfsv41']
self.vstorage_state = parameters['vstorage_state'] self.vstorage_state = parameters['vstorage_state']
@ -189,10 +221,14 @@ class NetAppONTAPNFS(object):
self.tcp = parameters['tcp'] self.tcp = parameters['tcp']
self.nfsv40_acl = parameters['nfsv40_acl'] self.nfsv40_acl = parameters['nfsv40_acl']
self.nfsv40_read_delegation = parameters['nfsv40_read_delegation'] self.nfsv40_read_delegation = parameters['nfsv40_read_delegation']
self.nfsv40_referrals = parameters['nfsv40_referrals']
self.nfsv40_write_delegation = parameters['nfsv40_write_delegation'] self.nfsv40_write_delegation = parameters['nfsv40_write_delegation']
self.nfsv41_acl = parameters['nfsv41_acl'] self.nfsv41_acl = parameters['nfsv41_acl']
self.nfsv41_read_delegation = parameters['nfsv41_read_delegation'] self.nfsv41_read_delegation = parameters['nfsv41_read_delegation']
self.nfsv41_referrals = parameters['nfsv41_referrals']
self.nfsv41_write_delegation = parameters['nfsv41_write_delegation'] self.nfsv41_write_delegation = parameters['nfsv41_write_delegation']
self.nfsv41_pnfs = parameters['nfsv41_pnfs']
self.nfsv4_numeric_ids = parameters['nfsv4_numeric_ids']
self.showmount = parameters['showmount'] self.showmount = parameters['showmount']
self.tcp_max_xfer_size = parameters['tcp_max_xfer_size'] self.tcp_max_xfer_size = parameters['tcp_max_xfer_size']
@ -223,6 +259,7 @@ class NetAppONTAPNFS(object):
attributes_list = result.get_child_by_name('attributes-list').get_child_by_name('nfs-info') attributes_list = result.get_child_by_name('attributes-list').get_child_by_name('nfs-info')
is_nfsv3_enabled = attributes_list.get_child_content('is-nfsv3-enabled') is_nfsv3_enabled = attributes_list.get_child_content('is-nfsv3-enabled')
is_nfsv3_fsid_change_enabled = attributes_list.get_child_content('is-nfsv3-fsid-change-enabled') is_nfsv3_fsid_change_enabled = attributes_list.get_child_content('is-nfsv3-fsid-change-enabled')
is_nfsv4_fsid_change_enabled = attributes_list.get_child_content('is-nfsv4-fsid-change-enabled')
is_nfsv40_enabled = attributes_list.get_child_content('is-nfsv40-enabled') is_nfsv40_enabled = attributes_list.get_child_content('is-nfsv40-enabled')
is_nfsv41_enabled = attributes_list.get_child_content('is-nfsv41-enabled') is_nfsv41_enabled = attributes_list.get_child_content('is-nfsv41-enabled')
is_vstorage_enabled = attributes_list.get_child_content('is-vstorage-enabled') is_vstorage_enabled = attributes_list.get_child_content('is-vstorage-enabled')
@ -232,26 +269,35 @@ class NetAppONTAPNFS(object):
is_nfsv40_acl_enabled = attributes_list.get_child_content('is-nfsv40-acl-enabled') is_nfsv40_acl_enabled = attributes_list.get_child_content('is-nfsv40-acl-enabled')
is_nfsv40_write_delegation_enabled = attributes_list.get_child_content('is-nfsv40-write-delegation-enabled') is_nfsv40_write_delegation_enabled = attributes_list.get_child_content('is-nfsv40-write-delegation-enabled')
is_nfsv40_read_delegation_enabled = attributes_list.get_child_content('is-nfsv40-read-delegation-enabled') is_nfsv40_read_delegation_enabled = attributes_list.get_child_content('is-nfsv40-read-delegation-enabled')
is_nfsv40_referrals_enabled = attributes_list.get_child_content('is-nfsv40-referrals-enabled')
is_nfsv41_acl_enabled = attributes_list.get_child_content('is-nfsv41-acl-enabled') is_nfsv41_acl_enabled = attributes_list.get_child_content('is-nfsv41-acl-enabled')
is_nfsv41_write_delegation_enabled = attributes_list.get_child_content('is-nfsv41-write-delegation-enabled') is_nfsv41_write_delegation_enabled = attributes_list.get_child_content('is-nfsv41-write-delegation-enabled')
is_nfsv41_read_delegation_enabled = attributes_list.get_child_content('is-nfsv41-read-delegation-enabled') is_nfsv41_read_delegation_enabled = attributes_list.get_child_content('is-nfsv41-read-delegation-enabled')
is_nfsv41_referrals_enabled = attributes_list.get_child_content('is-nfsv41-referrals-enabled')
is_nfsv41_pnfs_enabled = attributes_list.get_child_content('is-nfsv41-pnfs-enabled')
is_nfsv4_numeric_ids_enabled = attributes_list.get_child_content('is-nfsv4-numeric-ids-enabled')
is_showmount_enabled = attributes_list.get_child_content('showmount') is_showmount_enabled = attributes_list.get_child_content('showmount')
tcp_max_xfer_size = attributes_list.get_child_content('tcp-max-xfer-size') tcp_max_xfer_size = attributes_list.get_child_content('tcp-max-xfer-size')
nfs_details = { nfs_details = {
'is_nfsv3_enabled': is_nfsv3_enabled, 'is_nfsv3_enabled': is_nfsv3_enabled,
'is_nfsv3_fsid_change_enabled': is_nfsv3_fsid_change_enabled, 'is_nfsv3_fsid_change_enabled': is_nfsv3_fsid_change_enabled,
'is_nfsv4_fsid_change_enabled': is_nfsv4_fsid_change_enabled,
'is_nfsv40_enabled': is_nfsv40_enabled, 'is_nfsv40_enabled': is_nfsv40_enabled,
'is_nfsv41_enabled': is_nfsv41_enabled, 'is_nfsv41_enabled': is_nfsv41_enabled,
'is_nfsv41_pnfs_enabled': is_nfsv41_pnfs_enabled,
'is_nfsv4_numeric_ids_enabled': is_nfsv4_numeric_ids_enabled,
'is_vstorage_enabled': is_vstorage_enabled, 'is_vstorage_enabled': is_vstorage_enabled,
'nfsv4_id_domain': nfsv4_id_domain_value, 'nfsv4_id_domain': nfsv4_id_domain_value,
'is_tcp_enabled': is_tcp_enabled, 'is_tcp_enabled': is_tcp_enabled,
'is_udp_enabled': is_udp_enabled, 'is_udp_enabled': is_udp_enabled,
'is_nfsv40_acl_enabled': is_nfsv40_acl_enabled, 'is_nfsv40_acl_enabled': is_nfsv40_acl_enabled,
'is_nfsv40_write_delegation_enabled': is_nfsv40_write_delegation_enabled,
'is_nfsv40_read_delegation_enabled': is_nfsv40_read_delegation_enabled, 'is_nfsv40_read_delegation_enabled': is_nfsv40_read_delegation_enabled,
'is_nfsv40_referrals_enabled': is_nfsv40_referrals_enabled,
'is_nfsv40_write_delegation_enabled': is_nfsv40_write_delegation_enabled,
'is_nfsv41_acl_enabled': is_nfsv41_acl_enabled, 'is_nfsv41_acl_enabled': is_nfsv41_acl_enabled,
'is_nfsv41_write_delegation_enabled': is_nfsv41_write_delegation_enabled,
'is_nfsv41_read_delegation_enabled': is_nfsv41_read_delegation_enabled, 'is_nfsv41_read_delegation_enabled': is_nfsv41_read_delegation_enabled,
'is_nfsv41_referrals_enabled': is_nfsv41_referrals_enabled,
'is_nfsv41_write_delegation_enabled': is_nfsv41_write_delegation_enabled,
'is_showmount_enabled': is_showmount_enabled, 'is_showmount_enabled': is_showmount_enabled,
'tcp_max_xfer_size': tcp_max_xfer_size 'tcp_max_xfer_size': tcp_max_xfer_size
} }
@ -311,6 +357,10 @@ class NetAppONTAPNFS(object):
nfs_modify.add_new_child('is-nfsv3-fsid-change-enabled', 'true') nfs_modify.add_new_child('is-nfsv3-fsid-change-enabled', 'true')
elif self.nfsv3_fsid_change == 'disabled': elif self.nfsv3_fsid_change == 'disabled':
nfs_modify.add_new_child('is-nfsv3-fsid-change-enabled', 'false') nfs_modify.add_new_child('is-nfsv3-fsid-change-enabled', 'false')
if self.nfsv4_fsid_change == 'enabled':
nfs_modify.add_new_child('is-nfsv4-fsid-change-enabled', 'true')
elif self.nfsv4_fsid_change == 'disabled':
nfs_modify.add_new_child('is-nfsv4-fsid-change-enabled', 'false')
if self.nfsv4 == 'enabled': if self.nfsv4 == 'enabled':
nfs_modify.add_new_child('is-nfsv40-enabled', 'true') nfs_modify.add_new_child('is-nfsv40-enabled', 'true')
elif self.nfsv4 == 'disabled': elif self.nfsv4 == 'disabled':
@ -339,6 +389,10 @@ class NetAppONTAPNFS(object):
nfs_modify.add_new_child('is-nfsv40-read-delegation-enabled', 'true') nfs_modify.add_new_child('is-nfsv40-read-delegation-enabled', 'true')
elif self.nfsv40_read_delegation == 'disabled': elif self.nfsv40_read_delegation == 'disabled':
nfs_modify.add_new_child('is-nfsv40-read-delegation-enabled', 'false') nfs_modify.add_new_child('is-nfsv40-read-delegation-enabled', 'false')
if self.nfsv40_referrals == 'enabled':
nfs_modify.add_new_child('is-nfsv40-referrals-enabled', 'true')
elif self.nfsv40_referrals == 'disabled':
nfs_modify.add_new_child('is-nfsv40-referrals-enabled', 'false')
if self.nfsv40_write_delegation == 'enabled': if self.nfsv40_write_delegation == 'enabled':
nfs_modify.add_new_child('is-nfsv40-write-delegation-enabled', 'true') nfs_modify.add_new_child('is-nfsv40-write-delegation-enabled', 'true')
elif self.nfsv40_write_delegation == 'disabled': elif self.nfsv40_write_delegation == 'disabled':
@ -351,10 +405,22 @@ class NetAppONTAPNFS(object):
nfs_modify.add_new_child('is-nfsv41-read-delegation-enabled', 'true') nfs_modify.add_new_child('is-nfsv41-read-delegation-enabled', 'true')
elif self.nfsv41_read_delegation == 'disabled': elif self.nfsv41_read_delegation == 'disabled':
nfs_modify.add_new_child('is-nfsv41-read-delegation-enabled', 'false') nfs_modify.add_new_child('is-nfsv41-read-delegation-enabled', 'false')
if self.nfsv41_referrals == 'enabled':
nfs_modify.add_new_child('is-nfsv41-referrals-enabled', 'true')
elif self.nfsv41_referrals == 'disabled':
nfs_modify.add_new_child('is-nfsv41-referrals-enabled', 'false')
if self.nfsv41_write_delegation == 'enabled': if self.nfsv41_write_delegation == 'enabled':
nfs_modify.add_new_child('is-nfsv41-write-delegation-enabled', 'true') nfs_modify.add_new_child('is-nfsv41-write-delegation-enabled', 'true')
elif self.nfsv41_write_delegation == 'disabled': elif self.nfsv41_write_delegation == 'disabled':
nfs_modify.add_new_child('is-nfsv41-write-delegation-enabled', 'false') nfs_modify.add_new_child('is-nfsv41-write-delegation-enabled', 'false')
if self.nfsv41_pnfs == 'enabled':
nfs_modify.add_new_child('is-nfsv41-pnfs-enabled', 'true')
elif self.nfsv41_pnfs == 'disabled':
nfs_modify.add_new_child('is-nfsv41-pnfs-enabled', 'false')
if self.nfsv4_numeric_ids == 'enabled':
nfs_modify.add_new_child('is-nfsv4-numeric-ids-enabled', 'true')
elif self.nfsv4_numeric_ids == 'disabled':
nfs_modify.add_new_child('is-nfsv4-numeric-ids-enabled', 'false')
if self.showmount == 'enabled': if self.showmount == 'enabled':
nfs_modify.add_new_child('showmount', 'true') nfs_modify.add_new_child('showmount', 'true')
elif self.showmount == 'disabled': elif self.showmount == 'disabled':
@ -419,15 +485,27 @@ class NetAppONTAPNFS(object):
def is_modify_needed(): def is_modify_needed():
if (((self.nfsv3 is not None) and state_changed(self.nfsv3, nfs_service_details['is_nfsv3_enabled'])) or if (((self.nfsv3 is not None) and state_changed(self.nfsv3, nfs_service_details['is_nfsv3_enabled'])) or
((self.nfsv3_fsid_change is not None) and state_changed(self.nfsv3_fsid_change, nfs_service_details['is_nfsv3_fsid_change_enabled'])) or ((self.nfsv3_fsid_change is not None) and state_changed(self.nfsv3_fsid_change, nfs_service_details['is_nfsv3_fsid_change_enabled'])) or
((self.nfsv4_fsid_change is not None) and state_changed(self.nfsv4_fsid_change, nfs_service_details['is_nfsv4_fsid_change_enabled'])) or
((self.nfsv4 is not None) and state_changed(self.nfsv4, nfs_service_details['is_nfsv40_enabled'])) or ((self.nfsv4 is not None) and state_changed(self.nfsv4, nfs_service_details['is_nfsv40_enabled'])) or
((self.nfsv41 is not None) and state_changed(self.nfsv41, nfs_service_details['is_nfsv41_enabled'])) or ((self.nfsv41 is not None) and state_changed(self.nfsv41, nfs_service_details['is_nfsv41_enabled'])) or
((self.nfsv41_pnfs is not None) and state_changed(self.nfsv41_pnfs, nfs_service_details['is_nfsv41_pnfs_enabled'])) or
((self.nfsv4_numeric_ids is not None) and state_changed(self.nfsv4_numeric_ids, nfs_service_details['is_nfsv4_numeric_ids_enabled'])) or
((self.tcp is not None) and state_changed(self.tcp, nfs_service_details['is_tcp_enabled'])) or ((self.tcp is not None) and state_changed(self.tcp, nfs_service_details['is_tcp_enabled'])) or
((self.udp is not None) and state_changed(self.udp, nfs_service_details['is_udp_enabled'])) or ((self.udp is not None) and state_changed(self.udp, nfs_service_details['is_udp_enabled'])) or
((self.nfsv40_acl is not None) and state_changed(self.nfsv40_acl, nfs_service_details['is_nfsv40_acl_enabled'])) or ((self.nfsv40_acl is not None) and state_changed(self.nfsv40_acl, nfs_service_details['is_nfsv40_acl_enabled'])) or
((self.nfsv40_read_delegation is not None) and state_changed(self.nfsv40_read_delegation,
nfs_service_details['is_nfsv40_read_delegation_enabled'])) or
((self.nfsv40_write_delegation is not None) and state_changed(self.nfsv40_write_delegation, ((self.nfsv40_write_delegation is not None) and state_changed(self.nfsv40_write_delegation,
nfs_service_details['is_nfsv40_write_delegation_enabled'])) or nfs_service_details['is_nfsv40_write_delegation_enabled'])) or
((self.nfsv40_write_delegation is not None) and state_changed(self.nfsv40_write_delegation, ((self.nfsv41_acl is not None) and state_changed(self.nfsv41_acl, nfs_service_details['is_nfsv41_acl_enabled'])) or
nfs_service_details['is_nfsv40_write_delegation_enabled'])) or ((self.nfsv41_read_delegation is not None) and state_changed(self.nfsv41_read_delegation,
nfs_service_details['is_nfsv41_read_delegation_enabled'])) or
((self.nfsv41_write_delegation is not None) and state_changed(self.nfsv41_write_delegation,
nfs_service_details['is_nfsv41_write_delegation_enabled'])) or
((self.nfsv40_referrals is not None) and state_changed(self.nfsv40_referrals,
nfs_service_details['is_nfsv40_referrals_enabled'])) or
((self.nfsv41_referrals is not None) and state_changed(self.nfsv41_referrals,
nfs_service_details['is_nfsv41_referrals_enabled'])) or
((self.showmount is not None) and state_changed(self.showmount, nfs_service_details['is_showmount_enabled'])) or ((self.showmount is not None) and state_changed(self.showmount, nfs_service_details['is_showmount_enabled'])) or
((self.vstorage_state is not None) and state_changed(self.vstorage_state, nfs_service_details['is_vstorage_enabled'])) or ((self.vstorage_state is not None) and state_changed(self.vstorage_state, nfs_service_details['is_vstorage_enabled'])) or
((self.tcp_max_xfer_size is not None) and int(self.tcp_max_xfer_size) != int(nfs_service_details['tcp_max_xfer_size']))): ((self.tcp_max_xfer_size is not None) and int(self.tcp_max_xfer_size) != int(nfs_service_details['tcp_max_xfer_size']))):

Loading…
Cancel
Save