diff options
Diffstat (limited to 'lib/ansible/modules/network/illumos/ipadm_if.py')
-rw-r--r-- | lib/ansible/modules/network/illumos/ipadm_if.py | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/lib/ansible/modules/network/illumos/ipadm_if.py b/lib/ansible/modules/network/illumos/ipadm_if.py deleted file mode 100644 index 136bed694c..0000000000 --- a/lib/ansible/modules/network/illumos/ipadm_if.py +++ /dev/null @@ -1,222 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# (c) 2015, Adam Števko <adam.stevko@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 = ''' ---- -module: ipadm_if -short_description: Manage IP interfaces on Solaris/illumos systems. -description: - - Create, delete, enable or disable IP interfaces on Solaris/illumos - systems. -version_added: "2.2" -author: Adam Števko (@xen0l) -options: - name: - description: - - IP interface name. - required: true - temporary: - description: - - Specifies that the IP interface is temporary. Temporary IP - interfaces do not persist across reboots. - required: false - default: false - type: bool - state: - description: - - Create or delete Solaris/illumos IP interfaces. - required: false - default: "present" - choices: [ "present", "absent", "enabled", "disabled" ] -''' - -EXAMPLES = ''' -# Create vnic0 interface -- ipadm_if: - name: vnic0 - state: enabled - -# Disable vnic0 interface -- ipadm_if: - name: vnic0 - state: disabled -''' - -RETURN = ''' -name: - description: IP interface name - returned: always - type: str - sample: "vnic0" -state: - description: state of the target - returned: always - type: str - sample: "present" -temporary: - description: persistence of a IP interface - returned: always - type: bool - sample: "True" -''' -from ansible.module_utils.basic import AnsibleModule - - -class IPInterface(object): - - def __init__(self, module): - self.module = module - - self.name = module.params['name'] - self.temporary = module.params['temporary'] - self.state = module.params['state'] - - def interface_exists(self): - cmd = [self.module.get_bin_path('ipadm', True)] - - cmd.append('show-if') - cmd.append(self.name) - - (rc, _, _) = self.module.run_command(cmd) - if rc == 0: - return True - else: - return False - - def interface_is_disabled(self): - cmd = [self.module.get_bin_path('ipadm', True)] - - cmd.append('show-if') - cmd.append('-o') - cmd.append('state') - cmd.append(self.name) - - (rc, out, err) = self.module.run_command(cmd) - if rc != 0: - self.module.fail_json(name=self.name, rc=rc, msg=err) - - return 'disabled' in out - - def create_interface(self): - cmd = [self.module.get_bin_path('ipadm', True)] - - cmd.append('create-if') - - if self.temporary: - cmd.append('-t') - - cmd.append(self.name) - - return self.module.run_command(cmd) - - def delete_interface(self): - cmd = [self.module.get_bin_path('ipadm', True)] - - cmd.append('delete-if') - - if self.temporary: - cmd.append('-t') - - cmd.append(self.name) - - return self.module.run_command(cmd) - - def enable_interface(self): - cmd = [self.module.get_bin_path('ipadm', True)] - - cmd.append('enable-if') - cmd.append('-t') - cmd.append(self.name) - - return self.module.run_command(cmd) - - def disable_interface(self): - cmd = [self.module.get_bin_path('ipadm', True)] - - cmd.append('disable-if') - cmd.append('-t') - cmd.append(self.name) - - return self.module.run_command(cmd) - - -def main(): - module = AnsibleModule( - argument_spec=dict( - name=dict(required=True), - temporary=dict(default=False, type='bool'), - state=dict(default='present', choices=['absent', - 'present', - 'enabled', - 'disabled']), - ), - supports_check_mode=True - ) - - interface = IPInterface(module) - - rc = None - out = '' - err = '' - result = {} - result['name'] = interface.name - result['state'] = interface.state - result['temporary'] = interface.temporary - - if interface.state == 'absent': - if interface.interface_exists(): - if module.check_mode: - module.exit_json(changed=True) - (rc, out, err) = interface.delete_interface() - if rc != 0: - module.fail_json(name=interface.name, msg=err, rc=rc) - elif interface.state == 'present': - if not interface.interface_exists(): - if module.check_mode: - module.exit_json(changed=True) - (rc, out, err) = interface.create_interface() - - if rc is not None and rc != 0: - module.fail_json(name=interface.name, msg=err, rc=rc) - - elif interface.state == 'enabled': - if interface.interface_is_disabled(): - (rc, out, err) = interface.enable_interface() - - if rc is not None and rc != 0: - module.fail_json(name=interface.name, msg=err, rc=rc) - - elif interface.state == 'disabled': - if not interface.interface_is_disabled(): - (rc, out, err) = interface.disable_interface() - - if rc is not None and rc != 0: - module.fail_json(name=interface.name, msg=err, rc=rc) - - if rc is None: - result['changed'] = False - else: - result['changed'] = True - - if out: - result['stdout'] = out - if err: - result['stderr'] = err - - module.exit_json(**result) - - -if __name__ == '__main__': - main() |