1#!/usr/local/bin/python3.8 2# -*- coding:utf-8 -*- 3 4# Copyright (C) 2020 Inspur Inc. All Rights Reserved. 5# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 6 7from __future__ import (absolute_import, division, print_function) 8 9__metaclass__ = type 10 11DOCUMENTATION = ''' 12--- 13module: edit_ldap_group 14version_added: "0.1.0" 15author: 16 - WangBaoshan (@ISIB-group) 17short_description: Set ldap group information. 18description: 19 - Set ldap group information on Inspur server. 20deprecated: 21 removed_in: 3.0.0 22 why: Merge functions into the M(inspur.sm.ldap_group) module. 23 alternative: Use M(inspur.sm.ldap_group) instead. 24 removed_from_collection: inspur.sm 25options: 26 id: 27 description: 28 - Group id. 29 choices: ['1', '2', '3', '4', '5'] 30 type: str 31 required: true 32 name: 33 description: 34 - Group name. 35 type: str 36 base: 37 description: 38 - Search Base 39 - Search base is a string of 4 to 64 alpha-numeric characters; 40 - It must start with an alphabetical character; 41 - Special Symbols like dot(.), comma(,), hyphen(-), underscore(_), equal-to(=) are allowed. 42 type: str 43 pri: 44 description: 45 - Group privilege. 46 choices: ['administrator', 'user', 'operator', 'oem', 'none'] 47 type: str 48 kvm: 49 description: 50 - Kvm privilege. 51 choices: ['enable', 'disable'] 52 type: str 53 vm: 54 description: 55 - Vmedia privilege. 56 choices: ['enable', 'disable'] 57 type: str 58extends_documentation_fragment: 59 - inspur.sm.ism 60''' 61 62EXAMPLES = ''' 63- name: Ldap group test 64 hosts: ism 65 connection: local 66 gather_facts: no 67 vars: 68 ism: 69 host: "{{ ansible_ssh_host }}" 70 username: "{{ username }}" 71 password: "{{ password }}" 72 73 tasks: 74 75 - name: "Edit ldap group information" 76 inspur.sm.edit_ldap_group: 77 id: "1" 78 name: "wbs" 79 base: "cn=manager" 80 pri: "administrator" 81 kvm: "enable" 82 vm: "disable" 83 provider: "{{ ism }}" 84''' 85 86RETURN = ''' 87message: 88 description: Messages returned after module execution. 89 returned: always 90 type: str 91state: 92 description: Status after module execution. 93 returned: always 94 type: str 95changed: 96 description: Check to see if a change was made on the device. 97 returned: always 98 type: bool 99''' 100 101from ansible.module_utils.basic import AnsibleModule 102from ansible_collections.inspur.sm.plugins.module_utils.ism import (ism_argument_spec, get_connection) 103 104 105class LDAP(object): 106 def __init__(self, argument_spec): 107 self.spec = argument_spec 108 self.module = None 109 self.init_module() 110 self.results = dict() 111 112 def init_module(self): 113 """Init module object""" 114 115 self.module = AnsibleModule( 116 argument_spec=self.spec, supports_check_mode=False) 117 118 def run_command(self): 119 self.module.params['subcommand'] = 'setldapgroup' 120 self.results = get_connection(self.module) 121 if self.results['State'] == 'Success': 122 self.results['changed'] = True 123 124 def show_result(self): 125 """Show result""" 126 self.module.exit_json(**self.results) 127 128 def work(self): 129 """Worker""" 130 self.run_command() 131 self.show_result() 132 133 134def main(): 135 argument_spec = dict( 136 id=dict(type='str', required=True, choices=['1', '2', '3', '4', '5']), 137 name=dict(type='str', required=False), 138 base=dict(type='str', required=False), 139 pri=dict(type='str', required=False, choices=['administrator', 'user', 'operator', 'oem', 'none']), 140 kvm=dict(type='str', required=False, choices=['enable', 'disable']), 141 vm=dict(type='str', required=False, choices=['enable', 'disable']), 142 ) 143 argument_spec.update(ism_argument_spec) 144 ldap_obj = LDAP(argument_spec) 145 ldap_obj.work() 146 147 148if __name__ == '__main__': 149 main() 150