diff options
Diffstat (limited to 'lib/ansible/modules/system/aix_inittab.py')
-rw-r--r-- | lib/ansible/modules/system/aix_inittab.py | 253 |
1 files changed, 0 insertions, 253 deletions
diff --git a/lib/ansible/modules/system/aix_inittab.py b/lib/ansible/modules/system/aix_inittab.py deleted file mode 100644 index 08ba70d962..0000000000 --- a/lib/ansible/modules/system/aix_inittab.py +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright: (c) 2017, Joris Weijters <joris.weijters@gmail.com> -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function -__metaclass__ = type - -ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'community'} - -DOCUMENTATION = r''' ---- -author: -- Joris Weijters (@molekuul) -module: aix_inittab -short_description: Manages the inittab on AIX -description: - - Manages the inittab on AIX. -version_added: "2.3" -options: - name: - description: - - Name of the inittab entry. - type: str - required: yes - aliases: [ service ] - runlevel: - description: - - Runlevel of the entry. - type: str - required: yes - action: - description: - - Action what the init has to do with this entry. - type: str - required: yes - choices: - - boot - - bootwait - - hold - - initdefault - - 'off' - - once - - ondemand - - powerfail - - powerwait - - respawn - - sysinit - - wait - command: - description: - - What command has to run. - type: str - required: yes - insertafter: - description: - - After which inittabline should the new entry inserted. - type: str - state: - description: - - Whether the entry should be present or absent in the inittab file. - type: str - choices: [ absent, present ] - default: present -notes: - - The changes are persistent across reboots. - - You need root rights to read or adjust the inittab with the C(lsitab), C(chitab), C(mkitab) or C(rmitab) commands. - - Tested on AIX 7.1. -requirements: -- itertools -''' - -EXAMPLES = ''' -# Add service startmyservice to the inittab, directly after service existingservice. -- name: Add startmyservice to inittab - aix_inittab: - name: startmyservice - runlevel: 4 - action: once - command: echo hello - insertafter: existingservice - state: present - become: yes - -# Change inittab entry startmyservice to runlevel "2" and processaction "wait". -- name: Change startmyservice to inittab - aix_inittab: - name: startmyservice - runlevel: 2 - action: wait - command: echo hello - state: present - become: yes - -- name: Remove startmyservice from inittab - aix_inittab: - name: startmyservice - runlevel: 2 - action: wait - command: echo hello - state: absent - become: yes -''' - -RETURN = ''' -name: - description: Name of the adjusted inittab entry - returned: always - type: str - sample: startmyservice -msg: - description: Action done with the inittab entry - returned: changed - type: str - sample: changed inittab entry startmyservice -changed: - description: Whether the inittab changed or not - returned: always - type: bool - sample: true -''' - -# Import necessary libraries -try: - # python 2 - from itertools import izip -except ImportError: - izip = zip - -from ansible.module_utils.basic import AnsibleModule - -# end import modules -# start defining the functions - - -def check_current_entry(module): - # Check if entry exists, if not return False in exists in return dict, - # if true return True and the entry in return dict - existsdict = {'exist': False} - lsitab = module.get_bin_path('lsitab') - (rc, out, err) = module.run_command([lsitab, module.params['name']]) - if rc == 0: - keys = ('name', 'runlevel', 'action', 'command') - values = out.split(":") - # strip non readable characters as \n - values = map(lambda s: s.strip(), values) - existsdict = dict(izip(keys, values)) - existsdict.update({'exist': True}) - return existsdict - - -def main(): - # initialize - module = AnsibleModule( - argument_spec=dict( - name=dict(type='str', required=True, aliases=['service']), - runlevel=dict(type='str', required=True), - action=dict(type='str', choices=[ - 'boot', - 'bootwait', - 'hold', - 'initdefault', - 'off', - 'once', - 'ondemand', - 'powerfail', - 'powerwait', - 'respawn', - 'sysinit', - 'wait', - ]), - command=dict(type='str', required=True), - insertafter=dict(type='str'), - state=dict(type='str', default='present', choices=['absent', 'present']), - ), - supports_check_mode=True, - ) - - result = { - 'name': module.params['name'], - 'changed': False, - 'msg': "" - } - - # Find commandline strings - mkitab = module.get_bin_path('mkitab') - rmitab = module.get_bin_path('rmitab') - chitab = module.get_bin_path('chitab') - rc = 0 - - # check if the new entry exists - current_entry = check_current_entry(module) - - # if action is install or change, - if module.params['state'] == 'present': - - # create new entry string - new_entry = module.params['name'] + ":" + module.params['runlevel'] + \ - ":" + module.params['action'] + ":" + module.params['command'] - - # If current entry exists or fields are different(if the entry does not - # exists, then the entry wil be created - if (not current_entry['exist']) or ( - module.params['runlevel'] != current_entry['runlevel'] or - module.params['action'] != current_entry['action'] or - module.params['command'] != current_entry['command']): - - # If the entry does exist then change the entry - if current_entry['exist']: - if not module.check_mode: - (rc, out, err) = module.run_command([chitab, new_entry]) - if rc != 0: - module.fail_json( - msg="could not change inittab", rc=rc, err=err) - result['msg'] = "changed inittab entry" + " " + current_entry['name'] - result['changed'] = True - - # If the entry does not exist create the entry - elif not current_entry['exist']: - if module.params['insertafter']: - if not module.check_mode: - (rc, out, err) = module.run_command( - [mkitab, '-i', module.params['insertafter'], new_entry]) - else: - if not module.check_mode: - (rc, out, err) = module.run_command( - [mkitab, new_entry]) - - if rc != 0: - module.fail_json(msg="could not adjust inittab", rc=rc, err=err) - result['msg'] = "add inittab entry" + " " + module.params['name'] - result['changed'] = True - - elif module.params['state'] == 'absent': - # If the action is remove and the entry exists then remove the entry - if current_entry['exist']: - if not module.check_mode: - (rc, out, err) = module.run_command( - [rmitab, module.params['name']]) - if rc != 0: - module.fail_json( - msg="could not remove entry grom inittab)", rc=rc, err=err) - result['msg'] = "removed inittab entry" + " " + current_entry['name'] - result['changed'] = True - - module.exit_json(**result) - - -if __name__ == '__main__': - main() |