summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/cloud/vmware/vmware_guest_custom_attribute_defs.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/cloud/vmware/vmware_guest_custom_attribute_defs.py')
-rw-r--r--lib/ansible/modules/cloud/vmware/vmware_guest_custom_attribute_defs.py152
1 files changed, 0 insertions, 152 deletions
diff --git a/lib/ansible/modules/cloud/vmware/vmware_guest_custom_attribute_defs.py b/lib/ansible/modules/cloud/vmware/vmware_guest_custom_attribute_defs.py
deleted file mode 100644
index ae66304c94..0000000000
--- a/lib/ansible/modules/cloud/vmware/vmware_guest_custom_attribute_defs.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (c) 2018, Ansible Project
-#
-# 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: vmware_guest_custom_attribute_defs
-short_description: Manage custom attributes definitions for virtual machine from VMware
-description:
- - This module can be used to add and remove custom attributes definitions for the given virtual machine from VMware.
-version_added: 2.7
-author:
- - Jimmy Conner (@cigamit)
- - Abhijeet Kasurde (@Akasurde)
-notes:
- - Tested on vSphere 6.5
-requirements:
- - "python >= 2.6"
- - PyVmomi
-options:
- attribute_key:
- description:
- - Name of the custom attribute definition.
- - This is required parameter, if C(state) is set to C(present) or C(absent).
- required: False
- type: str
- state:
- description:
- - Manage definition of custom attributes.
- - If set to C(present) and definition not present, then custom attribute definition is created.
- - If set to C(present) and definition is present, then no action taken.
- - If set to C(absent) and definition is present, then custom attribute definition is removed.
- - If set to C(absent) and definition is absent, then no action taken.
- default: 'present'
- choices: ['present', 'absent']
- required: True
- type: str
-extends_documentation_fragment: vmware.documentation
-'''
-
-EXAMPLES = '''
-- name: Add VMware Attribute Definition
- vmware_guest_custom_attribute_defs:
- hostname: "{{ vcenter_hostname }}"
- username: "{{ vcenter_username }}"
- password: "{{ vcenter_password }}"
- state: present
- attribute_key: custom_attr_def_1
- delegate_to: localhost
- register: defs
-
-- name: Remove VMware Attribute Definition
- vmware_guest_custom_attribute_defs:
- hostname: "{{ vcenter_hostname }}"
- username: "{{ vcenter_username }}"
- password: "{{ vcenter_password }}"
- state: absent
- attribute_key: custom_attr_def_1
- delegate_to: localhost
- register: defs
-'''
-
-RETURN = """
-custom_attribute_defs:
- description: list of all current attribute definitions
- returned: always
- type: list
- sample: ["sample_5", "sample_4"]
-"""
-
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.vmware import PyVmomi, vmware_argument_spec
-
-try:
- from pyVmomi import vim
-except ImportError:
- pass
-
-
-class VmAttributeDefManager(PyVmomi):
- def __init__(self, module):
- super(VmAttributeDefManager, self).__init__(module)
-
- def remove_custom_def(self, field):
- changed = False
- f = dict()
- for x in self.custom_field_mgr:
- if x.name == field and x.managedObjectType == vim.VirtualMachine:
- changed = True
- if not self.module.check_mode:
- self.content.customFieldsManager.RemoveCustomFieldDef(key=x.key)
- break
- f[x.name] = (x.key, x.managedObjectType)
- return {'changed': changed, 'failed': False, 'custom_attribute_defs': list(f.keys())}
-
- def add_custom_def(self, field):
- changed = False
- found = False
- f = dict()
- for x in self.custom_field_mgr:
- if x.name == field:
- found = True
- f[x.name] = (x.key, x.managedObjectType)
-
- if not found:
- changed = True
- if not self.module.check_mode:
- new_field = self.content.customFieldsManager.AddFieldDefinition(name=field, moType=vim.VirtualMachine)
- f[new_field.name] = (new_field.key, new_field.type)
- return {'changed': changed, 'failed': False, 'custom_attribute_defs': list(f.keys())}
-
-
-def main():
- argument_spec = vmware_argument_spec()
- argument_spec.update(
- attribute_key=dict(type='str'),
- state=dict(type='str', default='present', choices=['absent', 'present']),
- )
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True,
- required_if=[
- ['state', 'present', ['attribute_key']],
- ['state', 'absent', ['attribute_key']],
- ]
- )
-
- pyv = VmAttributeDefManager(module)
- results = dict(changed=False, custom_attribute_defs=list())
- if module.params['state'] == "present":
- results = pyv.add_custom_def(module.params['attribute_key'])
- elif module.params['state'] == "absent":
- results = pyv.remove_custom_def(module.params['attribute_key'])
-
- module.exit_json(**results)
-
-
-if __name__ == '__main__':
- main()