diff options
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.py | 269 |
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() |