summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/cloud/amazon/aws_netapp_cvs_active_directory.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/cloud/amazon/aws_netapp_cvs_active_directory.py')
-rw-r--r--lib/ansible/modules/cloud/amazon/aws_netapp_cvs_active_directory.py269
1 files changed, 0 insertions, 269 deletions
diff --git a/lib/ansible/modules/cloud/amazon/aws_netapp_cvs_active_directory.py b/lib/ansible/modules/cloud/amazon/aws_netapp_cvs_active_directory.py
deleted file mode 100644
index 9d9f914263..0000000000
--- a/lib/ansible/modules/cloud/amazon/aws_netapp_cvs_active_directory.py
+++ /dev/null
@@ -1,269 +0,0 @@
-#!/usr/bin/python
-
-# (c) 2019, NetApp Inc.
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-"""AWS Cloud Volumes Services - Manage ActiveDirectory"""
-
-from __future__ import absolute_import, division, print_function
-
-__metaclass__ = type
-
-ANSIBLE_METADATA = {'metadata_version': '1.1',
- 'status': ['preview'],
- 'supported_by': 'certified'}
-
-
-DOCUMENTATION = '''
-
-module: aws_netapp_cvs_active_directory
-
-short_description: NetApp AWS CloudVolumes Service Manage Active Directory.
-extends_documentation_fragment:
- - netapp.awscvs
-version_added: '2.9'
-author: NetApp Ansible Team (@carchi8py) <ng-ansibleteam@netapp.com>
-description:
- - Create, Update, Delete ActiveDirectory on AWS Cloud Volumes Service.
-
-options:
- state:
- description:
- - Whether the specified ActiveDirectory should exist or not.
- choices: ['present', 'absent']
- required: true
- type: str
-
- region:
- description:
- - The region to which the Active Directory credentials are associated.
- required: true
- type: str
-
- domain:
- description:
- - Name of the Active Directory domain.
- - Required when I(state=present).
- type: str
-
- DNS:
- description:
- - DNS server address for the Active Directory domain.
- - Required when I(state=present), to modify ActiveDirectory properties.
- type: str
-
- netBIOS:
- description:
- - NetBIOS name of the server.
- type: str
-
- username:
- description:
- - Username of the Active Directory domain administrator.
- type: str
-
- password:
- description:
- - Password of the Active Directory domain administrator.
- type: str
-'''
-
-EXAMPLES = """
- - name: Create Active Directory
- aws_netapp_cvs_active_directory.py:
- state: present
- region: us-east-1
- DNS: 101.102.103.123
- domain: mydomain.com
- password: netapp1!
- netBIOS: testing
- username: user1
- api_url : My_CVS_Hostname
- api_key: My_API_Key
- secret_key : My_Secret_Key
-
- - name: Update Active Directory
- aws_netapp_cvs_active_directory.py:
- state: present
- region: us-east-1
- DNS: 101.102.103.123
- domain: mydomain.com
- password: netapp2!
- netBIOS: testingBIOS
- username: user2
- api_url : My_CVS_Hostname
- api_key: My_API_Key
- secret_key : My_Secret_Key
-
- - name: Delete Active Directory
- aws_netapp_cvs_active_directory.py:
- state: absent
- region: us-east-1
- domain: mydomain.com
- api_url : My_CVS_Hostname
- api_key: My_API_Key
- secret_key : My_Secret_Key
-"""
-
-RETURN = '''
-'''
-
-import ansible.module_utils.netapp as netapp_utils
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.netapp_module import NetAppModule
-from ansible.module_utils.netapp import AwsCvsRestAPI
-
-
-class AwsCvsNetappActiveDir(object):
- """
- Contains methods to parse arguments,
- derive details of AWS_CVS objects
- and send requests to AWS CVS via
- the restApi
- """
-
- def __init__(self):
- """
- Parse arguments, setup state variables,
- check paramenters and ensure request module is installed
- """
- self.argument_spec = netapp_utils.aws_cvs_host_argument_spec()
- self.argument_spec.update(dict(
- state=dict(required=True, choices=['present', 'absent'], type='str'),
- region=dict(required=True, type='str'),
- DNS=dict(required=False, type='str'),
- domain=dict(required=False, type='str'),
- password=dict(required=False, type='str', no_log=True),
- netBIOS=dict(required=False, type='str'),
- username=dict(required=False, type='str')
- ))
-
- self.module = AnsibleModule(
- argument_spec=self.argument_spec,
- required_if=[
- ('state', 'present', ['region', 'domain']),
- ],
- supports_check_mode=True
- )
-
- self.na_helper = NetAppModule()
-
- # set up state variables
- self.parameters = self.na_helper.set_parameters(self.module.params)
- # Calling generic AWSCVS restApi class
- self.restApi = AwsCvsRestAPI(self.module)
-
- def get_activedirectoryId(self):
- # Check if ActiveDirectory exists
- # Return UUID for ActiveDirectory is found, None otherwise
- try:
- list_activedirectory, error = self.restApi.get('Storage/ActiveDirectory')
- except Exception as e:
- return None
-
- for ActiveDirectory in list_activedirectory:
- if ActiveDirectory['region'] == self.parameters['region']:
- return ActiveDirectory['UUID']
- return None
-
- def get_activedirectory(self, activeDirectoryId=None):
- if activeDirectoryId is None:
- return None
- else:
- ActiveDirectoryInfo, error = self.restApi.get('Storage/ActiveDirectory/%s' % activeDirectoryId)
- if not error:
- return ActiveDirectoryInfo
- return None
-
- def create_activedirectory(self):
- # Create ActiveDirectory
- api = 'Storage/ActiveDirectory'
- data = {"region": self.parameters['region'], "DNS": self.parameters['DNS'], "domain": self.parameters['domain'],
- "username": self.parameters['username'], "password": self.parameters['password'], "netBIOS": self.parameters['netBIOS']}
-
- response, error = self.restApi.post(api, data)
-
- if not error:
- return response
- else:
- self.module.fail_json(msg=response['message'])
-
- def delete_activedirectory(self):
- activedirectoryId = self.get_activedirectoryId()
- # Delete ActiveDirectory
-
- if activedirectoryId:
- api = 'Storage/ActiveDirectory/' + activedirectoryId
- data = None
- response, error = self.restApi.delete(api, data)
- if not error:
- return response
- else:
- self.module.fail_json(msg=response['message'])
-
- else:
- self.module.fail_json(msg="Active Directory does not exist")
-
- def update_activedirectory(self, activedirectoryId, updated_activedirectory):
- # Update ActiveDirectory
- api = 'Storage/ActiveDirectory/' + activedirectoryId
- data = {
- "region": self.parameters['region'],
- "DNS": updated_activedirectory['DNS'],
- "domain": updated_activedirectory['domain'],
- "username": updated_activedirectory['username'],
- "password": updated_activedirectory['password'],
- "netBIOS": updated_activedirectory['netBIOS']
- }
-
- response, error = self.restApi.put(api, data)
- if not error:
- return response
- else:
- self.module.fail_json(msg=response['message'])
-
- def apply(self):
- """
- Perform pre-checks, call functions and exit
- """
- modify = False
- activeDirectoryId = self.get_activedirectoryId()
- current = self.get_activedirectory(activeDirectoryId)
- cd_action = self.na_helper.get_cd_action(current, self.parameters)
-
- if current and self.parameters['state'] != 'absent':
- keys_to_check = ['DNS', 'domain', 'username', 'password', 'netBIOS']
- updated_active_directory, modify = self.na_helper.compare_and_update_values(current, self.parameters, keys_to_check)
-
- if modify is True:
- self.na_helper.changed = True
- if 'domain' in self.parameters and self.parameters['domain'] is not None:
- ad_exists = self.get_activedirectory(updated_active_directory['domain'])
- if ad_exists:
- modify = False
- self.na_helper.changed = False
-
- if self.na_helper.changed:
- if self.module.check_mode:
- pass
- else:
- if modify is True:
- self.update_activedirectory(activeDirectoryId, updated_active_directory)
- elif cd_action == 'create':
- self.create_activedirectory()
- elif cd_action == 'delete':
- self.delete_activedirectory()
-
- self.module.exit_json(changed=self.na_helper.changed)
-
-
-def main():
- """
- Main function
- """
- aws_netapp_cvs_active_directory = AwsCvsNetappActiveDir()
- aws_netapp_cvs_active_directory.apply()
-
-
-if __name__ == '__main__':
- main()