ovirt: update botmeta deprecated (#67826)
* ovirt: update botmeta deprecated * correct deprecate option * remove duplication * add removed_module * add removed_module to external_provider * add imports and metaclass * update misc ovirt * update sanity tests to have correct misc ovirt name Signed-off-by: mnecas <necas.marty@gmail.com> * remove unnecessary sanity ignore
This commit is contained in:
parent
48fffe167d
commit
4ef7bd4c79
28 changed files with 3561 additions and 79 deletions
50
.github/BOTMETA.yml
vendored
50
.github/BOTMETA.yml
vendored
|
@ -431,7 +431,7 @@ files:
|
|||
$modules/cloud/linode/: $team_linode
|
||||
$modules/cloud/lxd/: hnakamur
|
||||
$modules/cloud/memset/: glitchcrab
|
||||
$modules/cloud/misc/ovirt.py: &ovirt
|
||||
$modules/cloud/misc/_ovirt.py: &ovirt
|
||||
ignored: vincentvdk
|
||||
keywords: [ ovirt, RHEV, RHV ]
|
||||
labels: [ cloud, ovirt ]
|
||||
|
@ -568,34 +568,20 @@ files:
|
|||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_job.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_affinity_label_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_host.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_quota_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_tag_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_network.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/__init__.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_vmpool_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_event.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_storage_domain_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_affinity_label_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_network_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_external_provider.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_scheduling_policy_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_datacenter_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_cluster.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_datacenter.py:
|
||||
|
@ -608,30 +594,18 @@ files:
|
|||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_disk_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_group_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_snapshot_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_quota.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_storage_domain_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_host_pm.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_template_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_cluster_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_host_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_host_storage_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_snapshot.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_storage_template_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_disk_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_vmpool.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_datacenter_info.py:
|
||||
|
@ -646,10 +620,6 @@ files:
|
|||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_vm.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_cluster_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_user_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_quota_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_snapshot_info.py:
|
||||
|
@ -666,20 +636,12 @@ files:
|
|||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_vmpool_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_nic_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_host_network.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_group.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_role.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_permission_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_external_provider_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_event_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_auth.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_vnic_profile.py:
|
||||
|
@ -688,20 +650,12 @@ files:
|
|||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_template_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_storage_vm_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_storage_connection.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_nic_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_nic.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_api_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_host_storage_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_storage_template_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_template.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_external_provider_info.py:
|
||||
|
@ -716,8 +670,6 @@ files:
|
|||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_network_info.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/_ovirt_vm_facts.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_instance_type.py:
|
||||
migrated_to: ovirt.ovirt_collection
|
||||
$modules/cloud/ovirt/ovirt_affinity_label.py:
|
||||
|
|
|
@ -7,7 +7,7 @@ from __future__ import absolute_import, division, print_function
|
|||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
|
@ -16,6 +16,10 @@ module: ovirt
|
|||
author:
|
||||
- Vincent Van der Kussen (@vincentvdk)
|
||||
short_description: oVirt/RHEV platform management
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: This module is for deprecated version of ovirt.
|
||||
alternative: Use M(ovirt_vm) instead
|
||||
description:
|
||||
- This module only supports oVirt/RHEV version 3. A newer module M(ovirt_vm) supports oVirt/RHV version 4.
|
||||
- Allows you to create new instances, either from scratch or an image, in addition to deleting or stopping instances on the oVirt/RHEV platform.
|
||||
|
@ -219,6 +223,7 @@ except ImportError:
|
|||
HAS_OVIRTSDK = False
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
|
||||
|
||||
# ------------------------------------------------------------------- #
|
||||
|
@ -475,4 +480,4 @@ def main():
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_affinity_label_info.py
|
190
lib/ansible/modules/cloud/ovirt/_ovirt_affinity_label_facts.py
Normal file
190
lib/ansible/modules/cloud/ovirt/_ovirt_affinity_label_facts.py
Normal file
|
@ -0,0 +1,190 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_affinity_label_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV affinity labels
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_affinity_label_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV affinity labels."
|
||||
- This module was called C(ovirt_affinity_label_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_affinity_label_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_affinity_labels), which
|
||||
contains a list of affinity labels. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
name:
|
||||
description:
|
||||
- "Name of the affinity labels which should be listed."
|
||||
vm:
|
||||
description:
|
||||
- "Name of the VM, which affinity labels should be listed."
|
||||
host:
|
||||
description:
|
||||
- "Name of the host, which affinity labels should be listed."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all affinity labels, which names start with C(label):
|
||||
- ovirt_affinity_label_info:
|
||||
name: label*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_affinity_labels }}"
|
||||
|
||||
# Gather information about all affinity labels, which are assigned to VMs
|
||||
# which names start with C(postgres):
|
||||
- ovirt_affinity_label_info:
|
||||
vm: postgres*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_affinity_labels }}"
|
||||
|
||||
# Gather information about all affinity labels, which are assigned to hosts
|
||||
# which names start with C(west):
|
||||
- ovirt_affinity_label_info:
|
||||
host: west*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_affinity_labels }}"
|
||||
|
||||
# Gather information about all affinity labels, which are assigned to hosts
|
||||
# which names start with C(west) or VMs which names start with C(postgres):
|
||||
- ovirt_affinity_label_info:
|
||||
host: west*
|
||||
vm: postgres*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_affinity_labels }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_affinity_labels:
|
||||
description: "List of dictionaries describing the affinity labels. Affinity labels attributes are mapped to dictionary keys,
|
||||
all affinity labels attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/affinity_label."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
search_by_name,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
name=dict(default=None),
|
||||
host=dict(default=None),
|
||||
vm=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_affinity_label_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_affinity_label_facts' module has been renamed to 'ovirt_affinity_label_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
affinity_labels_service = connection.system_service().affinity_labels_service()
|
||||
labels = []
|
||||
all_labels = affinity_labels_service.list()
|
||||
if module.params['name']:
|
||||
labels.extend([
|
||||
l for l in all_labels
|
||||
if fnmatch.fnmatch(l.name, module.params['name'])
|
||||
])
|
||||
if module.params['host']:
|
||||
hosts_service = connection.system_service().hosts_service()
|
||||
if search_by_name(hosts_service, module.params['host']) is None:
|
||||
raise Exception("Host '%s' was not found." % module.params['host'])
|
||||
labels.extend([
|
||||
label
|
||||
for label in all_labels
|
||||
for host in connection.follow_link(label.hosts)
|
||||
if fnmatch.fnmatch(hosts_service.service(host.id).get().name, module.params['host'])
|
||||
])
|
||||
if module.params['vm']:
|
||||
vms_service = connection.system_service().vms_service()
|
||||
if search_by_name(vms_service, module.params['vm']) is None:
|
||||
raise Exception("Vm '%s' was not found." % module.params['vm'])
|
||||
labels.extend([
|
||||
label
|
||||
for label in all_labels
|
||||
for vm in connection.follow_link(label.vms)
|
||||
if fnmatch.fnmatch(vms_service.service(vm.id).get().name, module.params['vm'])
|
||||
])
|
||||
|
||||
if not (module.params['vm'] or module.params['host'] or module.params['name']):
|
||||
labels = all_labels
|
||||
|
||||
result = dict(
|
||||
ovirt_affinity_labels=[
|
||||
get_dict_of_struct(
|
||||
struct=l,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for l in labels
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_api_info.py
|
103
lib/ansible/modules/cloud/ovirt/_ovirt_api_facts.py
Normal file
103
lib/ansible/modules/cloud/ovirt/_ovirt_api_facts.py
Normal file
|
@ -0,0 +1,103 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (c) 2017 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': ['deprecated'],
|
||||
'supported_by': 'community'
|
||||
}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_api_facts
|
||||
short_description: Retrieve information about the oVirt/RHV API
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_api_info) instead
|
||||
version_added: "2.5"
|
||||
description:
|
||||
- "Retrieve information about the oVirt/RHV API."
|
||||
- This module was called C(ovirt_api_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_api_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_api),
|
||||
which contains a information about oVirt/RHV API. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information oVirt API:
|
||||
- ovirt_api_info:
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_api }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_api:
|
||||
description: "Dictionary describing the oVirt API information.
|
||||
Api attributes are mapped to dictionary keys,
|
||||
all API attributes can be found at following
|
||||
url: https://ovirt.example.com/ovirt-engine/api/model#types/api."
|
||||
returned: On success.
|
||||
type: dict
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec()
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_api_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_api_facts' module has been renamed to 'ovirt_api_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
api = connection.system_service().get()
|
||||
result = dict(
|
||||
ovirt_api=get_dict_of_struct(
|
||||
struct=api,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
)
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_cluster_info.py
|
128
lib/ansible/modules/cloud/ovirt/_ovirt_cluster_facts.py
Normal file
128
lib/ansible/modules/cloud/ovirt/_ovirt_cluster_facts.py
Normal file
|
@ -0,0 +1,128 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_cluster_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV clusters
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_cluster_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV clusters."
|
||||
- This module was called C(ovirt_cluster_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_cluster_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_clusters), which
|
||||
contains a list of clusters. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search cluster X from datacenter Y use following pattern:
|
||||
name=X and datacenter=Y"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all clusters which names start with C<production>:
|
||||
- ovirt_cluster_info:
|
||||
pattern:
|
||||
name: 'production*'
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_clusters }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_clusters:
|
||||
description: "List of dictionaries describing the clusters. Cluster attributes are mapped to dictionary keys,
|
||||
all clusters attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/cluster."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_cluster_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_cluster_facts' module has been renamed to 'ovirt_cluster_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
clusters_service = connection.system_service().clusters_service()
|
||||
clusters = clusters_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_clusters=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in clusters
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_datacenter_info.py
|
111
lib/ansible/modules/cloud/ovirt/_ovirt_datacenter_facts.py
Normal file
111
lib/ansible/modules/cloud/ovirt/_ovirt_datacenter_facts.py
Normal file
|
@ -0,0 +1,111 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
# 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': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_datacenter_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV datacenters
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_datacenter_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV datacenters."
|
||||
- This module was called C(ovirt_datacenter_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_datacenter_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_datacenters), which
|
||||
contains a list of datacenters. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search datacenter I(X) use following pattern: I(name=X)"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all data centers which names start with C(production):
|
||||
- ovirt_datacenter_info:
|
||||
pattern: name=production*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_datacenters }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_datacenters:
|
||||
description: "List of dictionaries describing the datacenters. Datacenter attributes are mapped to dictionary keys,
|
||||
all datacenters attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/data_center."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_datacenter_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_datacenter_facts' module has been renamed to 'ovirt_datacenter_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
datacenters_service = connection.system_service().data_centers_service()
|
||||
datacenters = datacenters_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_datacenters=[
|
||||
get_dict_of_struct(
|
||||
struct=d,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for d in datacenters
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_disk_info.py
|
128
lib/ansible/modules/cloud/ovirt/_ovirt_disk_facts.py
Normal file
128
lib/ansible/modules/cloud/ovirt/_ovirt_disk_facts.py
Normal file
|
@ -0,0 +1,128 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2017 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_disk_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV disks
|
||||
author: "Katerina Koukiou (@KKoukiou)"
|
||||
version_added: "2.5"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_disk_info) instead
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV disks."
|
||||
- This module was called C(ovirt_disk_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_disk_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_disks), which
|
||||
contains a list of disks. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search Disk X from storage Y use following pattern:
|
||||
name=X and storage.name=Y"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all Disks which names start with C(centos)
|
||||
- ovirt_disk_info:
|
||||
pattern: name=centos*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_disks }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_disks:
|
||||
description: "List of dictionaries describing the Disks. Disk attributes are mapped to dictionary keys,
|
||||
all Disks attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/disk."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_disk_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_disk_facts' module has been renamed to 'ovirt_disk_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
disks_service = connection.system_service().disks_service()
|
||||
disks = disks_service.list(
|
||||
search=module.params['pattern'],
|
||||
)
|
||||
result = dict(
|
||||
ovirt_disks=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in disks
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_event_info.py
|
175
lib/ansible/modules/cloud/ovirt/_ovirt_event_facts.py
Normal file
175
lib/ansible/modules/cloud/ovirt/_ovirt_event_facts.py
Normal file
|
@ -0,0 +1,175 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright: (c) 2019, 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': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_event_facts
|
||||
short_description: This module can be used to retrieve information about one or more oVirt/RHV events
|
||||
author: "Chris Keller (@nasx)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_event_info) instead
|
||||
version_added: "2.8"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV events."
|
||||
- This module was called C(ovirt_event_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_event_info) module no longer returns C(ansible_facts)!
|
||||
options:
|
||||
case_sensitive:
|
||||
description:
|
||||
- "Indicates if the search performed using the search parameter should be performed taking case
|
||||
into account. The default value is true, which means that case is taken into account. If you
|
||||
want to search ignoring case set it to false."
|
||||
required: false
|
||||
default: true
|
||||
type: bool
|
||||
|
||||
from_:
|
||||
description:
|
||||
- "Indicates the event index after which events should be returned. The indexes of events are
|
||||
strictly increasing, so when this parameter is used only the events with greater indexes
|
||||
will be returned."
|
||||
required: false
|
||||
type: int
|
||||
|
||||
max:
|
||||
description:
|
||||
- "Sets the maximum number of events to return. If not specified all the events are returned."
|
||||
required: false
|
||||
type: int
|
||||
|
||||
search:
|
||||
description:
|
||||
- "Search term which is accepted by the oVirt/RHV API."
|
||||
- "For example to search for events of severity alert use the following pattern: severity=alert"
|
||||
required: false
|
||||
type: str
|
||||
|
||||
headers:
|
||||
description:
|
||||
- "Additional HTTP headers."
|
||||
required: false
|
||||
type: str
|
||||
|
||||
query:
|
||||
description:
|
||||
- "Additional URL query parameters."
|
||||
required: false
|
||||
type: str
|
||||
|
||||
wait:
|
||||
description:
|
||||
- "If True wait for the response."
|
||||
required: false
|
||||
default: true
|
||||
type: bool
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain the auth parameter for simplicity,
|
||||
# look at the ovirt_auth module to see how to reuse authentication.
|
||||
|
||||
- name: Return all events
|
||||
ovirt_event_info:
|
||||
register: result
|
||||
|
||||
- name: Return the last 10 events
|
||||
ovirt_event_info:
|
||||
max: 10
|
||||
register: result
|
||||
|
||||
- name: Return all events of type alert
|
||||
ovirt_event_info:
|
||||
search: "severity=alert"
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_events }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_events:
|
||||
description: "List of dictionaries describing the events. Event attributes are mapped to dictionary keys.
|
||||
All event attributes can be found at the following url:
|
||||
http://ovirt.github.io/ovirt-engine-api-model/master/#types/event"
|
||||
returned: On success."
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
case_sensitive=dict(default=True, type='bool', required=False),
|
||||
from_=dict(default=None, type='int', required=False),
|
||||
max=dict(default=None, type='int', required=False),
|
||||
search=dict(default='', required=False),
|
||||
headers=dict(default='', required=False),
|
||||
query=dict(default='', required=False),
|
||||
wait=dict(default=True, type='bool', required=False)
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_event_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_event_facts' module has been renamed to 'ovirt_event_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
events_service = connection.system_service().events_service()
|
||||
events = events_service.list(
|
||||
case_sensitive=module.params['case_sensitive'],
|
||||
from_=module.params['from_'],
|
||||
max=module.params['max'],
|
||||
search=module.params['search'],
|
||||
headers=module.params['headers'],
|
||||
query=module.params['query'],
|
||||
wait=module.params['wait']
|
||||
)
|
||||
|
||||
result = dict(
|
||||
ovirt_events=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in events
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_external_provider_info.py
|
|
@ -0,0 +1,169 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_external_provider_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV external providers
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_external_provider_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV external providers."
|
||||
- This module was called C(ovirt_external_provider_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_external_provider_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_external_providers), which
|
||||
contains a list of external_providers. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
type:
|
||||
description:
|
||||
- "Type of the external provider."
|
||||
choices: ['os_image', 'os_network', 'os_volume', 'foreman']
|
||||
required: true
|
||||
name:
|
||||
description:
|
||||
- "Name of the external provider, can be used as glob expression."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all image external providers named C<glance>:
|
||||
- ovirt_external_provider_info:
|
||||
type: os_image
|
||||
name: glance
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_external_providers }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_external_providers:
|
||||
description:
|
||||
- "List of dictionaries. Content depends on I(type)."
|
||||
- "For type C(foreman), attributes appearing in the dictionary can be found on your oVirt/RHV instance
|
||||
at the following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/external_host_provider."
|
||||
- "For type C(os_image), attributes appearing in the dictionary can be found on your oVirt/RHV instance
|
||||
at the following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/openstack_image_provider."
|
||||
- "For type C(os_volume), attributes appearing in the dictionary can be found on your oVirt/RHV instance
|
||||
at the following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/openstack_volume_provider."
|
||||
- "For type C(os_network), attributes appearing in the dictionary can be found on your oVirt/RHV instance
|
||||
at the following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/openstack_network_provider."
|
||||
returned: On success
|
||||
type: list
|
||||
'''
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def _external_provider_service(provider_type, system_service):
|
||||
if provider_type == 'os_image':
|
||||
return system_service.openstack_image_providers_service()
|
||||
elif provider_type == 'os_network':
|
||||
return system_service.openstack_network_providers_service()
|
||||
elif provider_type == 'os_volume':
|
||||
return system_service.openstack_volume_providers_service()
|
||||
elif provider_type == 'foreman':
|
||||
return system_service.external_host_providers_service()
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
name=dict(default=None, required=False),
|
||||
type=dict(
|
||||
default=None,
|
||||
required=True,
|
||||
choices=[
|
||||
'os_image', 'os_network', 'os_volume', 'foreman',
|
||||
],
|
||||
aliases=['provider'],
|
||||
),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_external_provider_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_external_provider_facts' module has been renamed to 'ovirt_external_provider_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
external_providers_service = _external_provider_service(
|
||||
provider_type=module.params.pop('type'),
|
||||
system_service=connection.system_service(),
|
||||
)
|
||||
if module.params['name']:
|
||||
external_providers = [
|
||||
e for e in external_providers_service.list()
|
||||
if fnmatch.fnmatch(e.name, module.params['name'])
|
||||
]
|
||||
else:
|
||||
external_providers = external_providers_service.list()
|
||||
|
||||
result = dict(
|
||||
ovirt_external_providers=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in external_providers
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_group_info.py
|
126
lib/ansible/modules/cloud/ovirt/_ovirt_group_facts.py
Normal file
126
lib/ansible/modules/cloud/ovirt/_ovirt_group_facts.py
Normal file
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_group_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV groups
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_group_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV groups."
|
||||
- This module was called C(ovirt_group_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_group_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_groups), which
|
||||
contains a list of groups. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search group X use following pattern: name=X"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all groups which names start with C(admin):
|
||||
- ovirt_group_info:
|
||||
pattern: name=admin*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_groups }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_groups:
|
||||
description: "List of dictionaries describing the groups. Group attributes are mapped to dictionary keys,
|
||||
all groups attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/group."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_group_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_group_facts' module has been renamed to 'ovirt_group_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
groups_service = connection.system_service().groups_service()
|
||||
groups = groups_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_groups=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in groups
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_host_info.py
|
152
lib/ansible/modules/cloud/ovirt/_ovirt_host_facts.py
Normal file
152
lib/ansible/modules/cloud/ovirt/_ovirt_host_facts.py
Normal file
|
@ -0,0 +1,152 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
# 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': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_host_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV hosts
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_host_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV hosts."
|
||||
- This module was called C(ovirt_host_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_host_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_hosts), which
|
||||
contains a list of hosts. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search host X from datacenter Y use following pattern:
|
||||
name=X and datacenter=Y"
|
||||
all_content:
|
||||
description:
|
||||
- "If I(true) all the attributes of the hosts should be
|
||||
included in the response."
|
||||
default: False
|
||||
version_added: "2.7"
|
||||
type: bool
|
||||
cluster_version:
|
||||
description:
|
||||
- "Filter the hosts based on the cluster version."
|
||||
type: str
|
||||
version_added: "2.8"
|
||||
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all hosts which names start with C(host) and
|
||||
# belong to data center C(west):
|
||||
- ovirt_host_info:
|
||||
pattern: name=host* and datacenter=west
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_hosts }}"
|
||||
# All hosts with cluster version 4.2:
|
||||
- ovirt_host_info:
|
||||
pattern: name=host*
|
||||
cluster_version: "4.2"
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_hosts }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_hosts:
|
||||
description: "List of dictionaries describing the hosts. Host attributes are mapped to dictionary keys,
|
||||
all hosts attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/host."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def get_filtered_hosts(cluster_version, hosts, connection):
|
||||
# Filtering by cluster version returns only those which have same cluster version as input
|
||||
filtered_hosts = []
|
||||
for host in hosts:
|
||||
cluster = connection.follow_link(host.cluster)
|
||||
cluster_version_host = str(cluster.version.major) + '.' + str(cluster.version.minor)
|
||||
if cluster_version_host == cluster_version:
|
||||
filtered_hosts.append(host)
|
||||
return filtered_hosts
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
all_content=dict(default=False, type='bool'),
|
||||
cluster_version=dict(default=None, type='str'),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_host_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_host_facts' module has been renamed to 'ovirt_host_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
hosts_service = connection.system_service().hosts_service()
|
||||
hosts = hosts_service.list(
|
||||
search=module.params['pattern'],
|
||||
all_content=module.params['all_content']
|
||||
)
|
||||
cluster_version = module.params.get('cluster_version')
|
||||
if cluster_version is not None:
|
||||
hosts = get_filtered_hosts(cluster_version, hosts, connection)
|
||||
result = dict(
|
||||
ovirt_hosts=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in hosts
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_host_storage_info.py
|
190
lib/ansible/modules/cloud/ovirt/_ovirt_host_storage_facts.py
Normal file
190
lib/ansible/modules/cloud/ovirt/_ovirt_host_storage_facts.py
Normal file
|
@ -0,0 +1,190 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2017 Red Hat, Inc.
|
||||
# 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': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_host_storage_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV HostStorages (applicable only for block storage)
|
||||
author: "Daniel Erez (@derez)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_host_storage_info) instead
|
||||
version_added: "2.4"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV HostStorages (applicable only for block storage)."
|
||||
- This module was called C(ovirt_host_storage_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_host_storage_info) module no longer returns C(ansible_facts)!
|
||||
options:
|
||||
host:
|
||||
description:
|
||||
- "Host to get device list from."
|
||||
required: true
|
||||
iscsi:
|
||||
description:
|
||||
- "Dictionary with values for iSCSI storage type:"
|
||||
suboptions:
|
||||
address:
|
||||
description:
|
||||
- "Address of the iSCSI storage server."
|
||||
target:
|
||||
description:
|
||||
- "The target IQN for the storage device."
|
||||
username:
|
||||
description:
|
||||
- "A CHAP user name for logging into a target."
|
||||
password:
|
||||
description:
|
||||
- "A CHAP password for logging into a target."
|
||||
portal:
|
||||
description:
|
||||
- "The portal being used to connect with iscsi."
|
||||
version_added: 2.10
|
||||
fcp:
|
||||
description:
|
||||
- "Dictionary with values for fibre channel storage type:"
|
||||
suboptions:
|
||||
address:
|
||||
description:
|
||||
- "Address of the fibre channel storage server."
|
||||
port:
|
||||
description:
|
||||
- "Port of the fibre channel storage server."
|
||||
lun_id:
|
||||
description:
|
||||
- "LUN id."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about HostStorages with specified target and address:
|
||||
- ovirt_host_storage_info:
|
||||
host: myhost
|
||||
iscsi:
|
||||
target: iqn.2016-08-09.domain-01:nickname
|
||||
address: 10.34.63.204
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_host_storages }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_host_storages:
|
||||
description: "List of dictionaries describing the HostStorage. HostStorage attributes are mapped to dictionary keys,
|
||||
all HostStorage attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/host_storage."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
try:
|
||||
import ovirtsdk4.types as otypes
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
get_id_by_name,
|
||||
)
|
||||
|
||||
|
||||
def _login(host_service, iscsi):
|
||||
host_service.iscsi_login(
|
||||
iscsi=otypes.IscsiDetails(
|
||||
username=iscsi.get('username'),
|
||||
password=iscsi.get('password'),
|
||||
address=iscsi.get('address'),
|
||||
target=iscsi.get('target'),
|
||||
portal=iscsi.get('portal')
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def _get_storage_type(params):
|
||||
for sd_type in ['iscsi', 'fcp']:
|
||||
if params.get(sd_type) is not None:
|
||||
return sd_type
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
host=dict(required=True),
|
||||
iscsi=dict(default=None, type='dict'),
|
||||
fcp=dict(default=None, type='dict'),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_host_storage_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_host_storage_facts' module has been renamed to 'ovirt_host_storage_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
|
||||
# Get Host
|
||||
hosts_service = connection.system_service().hosts_service()
|
||||
host_id = get_id_by_name(hosts_service, module.params['host'])
|
||||
storage_type = _get_storage_type(module.params)
|
||||
host_service = hosts_service.host_service(host_id)
|
||||
|
||||
if storage_type == 'iscsi':
|
||||
# Login
|
||||
iscsi = module.params.get('iscsi')
|
||||
_login(host_service, iscsi)
|
||||
|
||||
# Get LUNs exposed from the specified target
|
||||
host_storages = host_service.storage_service().list()
|
||||
|
||||
if storage_type == 'iscsi':
|
||||
filterred_host_storages = [host_storage for host_storage in host_storages
|
||||
if host_storage.type == otypes.StorageType.ISCSI]
|
||||
if 'target' in iscsi:
|
||||
filterred_host_storages = [host_storage for host_storage in filterred_host_storages
|
||||
if iscsi.get('target') == host_storage.logical_units[0].target]
|
||||
elif storage_type == 'fcp':
|
||||
filterred_host_storages = [host_storage for host_storage in host_storages
|
||||
if host_storage.type == otypes.StorageType.FCP]
|
||||
|
||||
result = dict(
|
||||
ovirt_host_storages=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in filterred_host_storages
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_network_info.py
|
128
lib/ansible/modules/cloud/ovirt/_ovirt_network_facts.py
Normal file
128
lib/ansible/modules/cloud/ovirt/_ovirt_network_facts.py
Normal file
|
@ -0,0 +1,128 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_network_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV networks
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_network_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV networks."
|
||||
- This module was called C(ovirt_network_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_network_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_networks), which
|
||||
contains a list of networks. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search network starting with string vlan1 use: name=vlan1*"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all networks which names start with C(vlan1):
|
||||
- ovirt_network_info:
|
||||
pattern: name=vlan1*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_networks }}"
|
||||
'''
|
||||
|
||||
|
||||
RETURN = '''
|
||||
ovirt_networks:
|
||||
description: "List of dictionaries describing the networks. Network attributes are mapped to dictionary keys,
|
||||
all networks attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/network."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_network_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_network_facts' module has been renamed to 'ovirt_network_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
networks_service = connection.system_service().networks_service()
|
||||
networks = networks_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_networks=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in networks
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_nic_info.py
|
146
lib/ansible/modules/cloud/ovirt/_ovirt_nic_facts.py
Normal file
146
lib/ansible/modules/cloud/ovirt/_ovirt_nic_facts.py
Normal file
|
@ -0,0 +1,146 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_nic_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV virtual machine network interfaces
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_nic_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV virtual machine network interfaces."
|
||||
- This module was called C(ovirt_nic_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_nic_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_nics), which
|
||||
contains a list of NICs. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
vm:
|
||||
description:
|
||||
- "Name of the VM where NIC is attached."
|
||||
required: true
|
||||
name:
|
||||
description:
|
||||
- "Name of the NIC, can be used as glob expression."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all NICs which names start with C(eth) for VM named C(centos7):
|
||||
- ovirt_nic_info:
|
||||
vm: centos7
|
||||
name: eth*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_nics }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_nics:
|
||||
description: "List of dictionaries describing the network interfaces. NIC attributes are mapped to dictionary keys,
|
||||
all NICs attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/nic."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
search_by_name,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
vm=dict(required=True),
|
||||
name=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_nic_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_nic_facts' module has been renamed to 'ovirt_nic_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
vms_service = connection.system_service().vms_service()
|
||||
vm_name = module.params['vm']
|
||||
vm = search_by_name(vms_service, vm_name)
|
||||
if vm is None:
|
||||
raise Exception("VM '%s' was not found." % vm_name)
|
||||
|
||||
nics_service = vms_service.service(vm.id).nics_service()
|
||||
if module.params['name']:
|
||||
nics = [
|
||||
e for e in nics_service.list()
|
||||
if fnmatch.fnmatch(e.name, module.params['name'])
|
||||
]
|
||||
else:
|
||||
nics = nics_service.list()
|
||||
|
||||
result = dict(
|
||||
ovirt_nics=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in nics
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_permission_info.py
|
169
lib/ansible/modules/cloud/ovirt/_ovirt_permission_facts.py
Normal file
169
lib/ansible/modules/cloud/ovirt/_ovirt_permission_facts.py
Normal file
|
@ -0,0 +1,169 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_permission_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV permissions
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_permission_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV permissions."
|
||||
- This module was called C(ovirt_permission_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_permission_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_permissions), which
|
||||
contains a list of permissions. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
user_name:
|
||||
description:
|
||||
- "Username of the user to manage. In most LDAPs it's I(uid) of the user, but in Active Directory you must specify I(UPN) of the user."
|
||||
group_name:
|
||||
description:
|
||||
- "Name of the group to manage."
|
||||
authz_name:
|
||||
description:
|
||||
- "Authorization provider of the user/group. In previous versions of oVirt/RHV known as domain."
|
||||
required: true
|
||||
aliases: ['domain']
|
||||
namespace:
|
||||
description:
|
||||
- "Namespace of the authorization provider, where user/group resides."
|
||||
required: false
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all permissions of user with username C(john):
|
||||
- ovirt_permission_info:
|
||||
user_name: john
|
||||
authz_name: example.com-authz
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_permissions }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_permissions:
|
||||
description: "List of dictionaries describing the permissions. Permission attributes are mapped to dictionary keys,
|
||||
all permissions attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/permission."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
try:
|
||||
import ovirtsdk4 as sdk
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_link_name,
|
||||
ovirt_info_full_argument_spec,
|
||||
search_by_name,
|
||||
)
|
||||
|
||||
|
||||
def _permissions_service(connection, module):
|
||||
if module.params['user_name']:
|
||||
service = connection.system_service().users_service()
|
||||
entity = next(
|
||||
iter(
|
||||
service.list(
|
||||
search='usrname={0}'.format(
|
||||
'{0}@{1}'.format(module.params['user_name'], module.params['authz_name'])
|
||||
)
|
||||
)
|
||||
),
|
||||
None
|
||||
)
|
||||
else:
|
||||
service = connection.system_service().groups_service()
|
||||
entity = search_by_name(service, module.params['group_name'])
|
||||
|
||||
if entity is None:
|
||||
raise Exception("User/Group wasn't found.")
|
||||
|
||||
return service.service(entity.id).permissions_service()
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
authz_name=dict(required=True, aliases=['domain']),
|
||||
user_name=dict(default=None),
|
||||
group_name=dict(default=None),
|
||||
namespace=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_permission_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_permission_facts' module has been renamed to 'ovirt_permission_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
permissions_service = _permissions_service(connection, module)
|
||||
permissions = []
|
||||
for p in permissions_service.list():
|
||||
newperm = dict()
|
||||
for key, value in p.__dict__.items():
|
||||
if value and isinstance(value, sdk.Struct):
|
||||
newperm[key[1:]] = get_link_name(connection, value)
|
||||
newperm['%s_id' % key[1:]] = value.id
|
||||
permissions.append(newperm)
|
||||
|
||||
result = dict(ovirt_permissions=permissions)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_quota_info.py
|
146
lib/ansible/modules/cloud/ovirt/_ovirt_quota_facts.py
Normal file
146
lib/ansible/modules/cloud/ovirt/_ovirt_quota_facts.py
Normal file
|
@ -0,0 +1,146 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_quota_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV quotas
|
||||
version_added: "2.3"
|
||||
author: "Maor Lipchuk (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_quota_info) instead
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV quotas."
|
||||
- This module was called C(ovirt_quota_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_quota_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_quotas), which
|
||||
contains a list of quotas. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
data_center:
|
||||
description:
|
||||
- "Name of the datacenter where quota resides."
|
||||
required: true
|
||||
name:
|
||||
description:
|
||||
- "Name of the quota, can be used as glob expression."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about quota named C<myquota> in Default datacenter:
|
||||
- ovirt_quota_info:
|
||||
data_center: Default
|
||||
name: myquota
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_quotas }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_quotas:
|
||||
description: "List of dictionaries describing the quotas. Quota attributes are mapped to dictionary keys,
|
||||
all quotas attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/quota."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
search_by_name,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
data_center=dict(required=True),
|
||||
name=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_quota_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_quota_facts' module has been renamed to 'ovirt_quota_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
datacenters_service = connection.system_service().data_centers_service()
|
||||
dc_name = module.params['data_center']
|
||||
dc = search_by_name(datacenters_service, dc_name)
|
||||
if dc is None:
|
||||
raise Exception("Datacenter '%s' was not found." % dc_name)
|
||||
|
||||
quotas_service = datacenters_service.service(dc.id).quotas_service()
|
||||
if module.params['name']:
|
||||
quotas = [
|
||||
e for e in quotas_service.list()
|
||||
if fnmatch.fnmatch(e.name, module.params['name'])
|
||||
]
|
||||
else:
|
||||
quotas = quotas_service.list()
|
||||
|
||||
result = dict(
|
||||
ovirt_quotas=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in quotas
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_scheduling_policy_info.py
|
|
@ -0,0 +1,145 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2017 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_scheduling_policy_facts
|
||||
short_description: Retrieve information about one or more oVirt scheduling policies
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_scheduling_policy_info) instead
|
||||
version_added: "2.4"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt scheduling policies."
|
||||
- This module was called C(ovirt_scheduling_policy_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_scheduling_policy_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_scheduling_policies),
|
||||
which contains a list of scheduling policies. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
id:
|
||||
description:
|
||||
- "ID of the scheduling policy."
|
||||
required: true
|
||||
name:
|
||||
description:
|
||||
- "Name of the scheduling policy, can be used as glob expression."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all scheduling policies with name InClusterUpgrade:
|
||||
- ovirt_scheduling_policy_info:
|
||||
name: InClusterUpgrade
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_scheduling_policies }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_scheduling_policies:
|
||||
description: "List of dictionaries describing the scheduling policies.
|
||||
Scheduling policies attributes are mapped to dictionary keys,
|
||||
all scheduling policies attributes can be found at following
|
||||
url: https://ovirt.example.com/ovirt-engine/api/model#types/scheduling_policy."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
id=dict(default=None),
|
||||
name=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_scheduling_policy_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_scheduling_policy_facts' module has been renamed to 'ovirt_scheduling_policy_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
system_service = connection.system_service()
|
||||
sched_policies_service = system_service.scheduling_policies_service()
|
||||
if module.params['name']:
|
||||
sched_policies = [
|
||||
e for e in sched_policies_service.list()
|
||||
if fnmatch.fnmatch(e.name, module.params['name'])
|
||||
]
|
||||
elif module.params['id']:
|
||||
sched_policies = [
|
||||
sched_policies_service.service(module.params['id']).get()
|
||||
]
|
||||
else:
|
||||
sched_policies = sched_policies_service.list()
|
||||
|
||||
result = dict(
|
||||
ovirt_scheduling_policies=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in sched_policies
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_snapshot_info.py
|
140
lib/ansible/modules/cloud/ovirt/_ovirt_snapshot_facts.py
Normal file
140
lib/ansible/modules/cloud/ovirt/_ovirt_snapshot_facts.py
Normal file
|
@ -0,0 +1,140 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
# 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': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_snapshot_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV virtual machine snapshots
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_snapshot_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV virtual machine snapshots."
|
||||
- This module was called C(ovirt_snapshot_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_snapshot_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_snapshots), which
|
||||
contains a list of snapshots. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
vm:
|
||||
description:
|
||||
- "Name of the VM with snapshot."
|
||||
required: true
|
||||
description:
|
||||
description:
|
||||
- "Description of the snapshot, can be used as glob expression."
|
||||
snapshot_id:
|
||||
description:
|
||||
- "Id of the snapshot we want to retrieve information about."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all snapshots which description start with C(update) for VM named C(centos7):
|
||||
- ovirt_snapshot_info:
|
||||
vm: centos7
|
||||
description: update*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_snapshots }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_snapshots:
|
||||
description: "List of dictionaries describing the snapshot. Snapshot attributes are mapped to dictionary keys,
|
||||
all snapshot attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/snapshot."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
search_by_name,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
vm=dict(required=True),
|
||||
description=dict(default=None),
|
||||
snapshot_id=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_snapshot_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_snapshot_facts' module has been renamed to 'ovirt_snapshot_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
vms_service = connection.system_service().vms_service()
|
||||
vm_name = module.params['vm']
|
||||
vm = search_by_name(vms_service, vm_name)
|
||||
if vm is None:
|
||||
raise Exception("VM '%s' was not found." % vm_name)
|
||||
|
||||
snapshots_service = vms_service.service(vm.id).snapshots_service()
|
||||
if module.params['description']:
|
||||
snapshots = [
|
||||
e for e in snapshots_service.list()
|
||||
if fnmatch.fnmatch(e.description, module.params['description'])
|
||||
]
|
||||
elif module.params['snapshot_id']:
|
||||
snapshots = [
|
||||
snapshots_service.snapshot_service(module.params['snapshot_id']).get()
|
||||
]
|
||||
else:
|
||||
snapshots = snapshots_service.list()
|
||||
|
||||
result = dict(
|
||||
ovirt_snapshots=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in snapshots
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_storage_domain_info.py
|
128
lib/ansible/modules/cloud/ovirt/_ovirt_storage_domain_facts.py
Normal file
128
lib/ansible/modules/cloud/ovirt/_ovirt_storage_domain_facts.py
Normal file
|
@ -0,0 +1,128 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_storage_domain_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV storage domains
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_storage_domain_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV storage domains."
|
||||
- This module was called C(ovirt_storage_domain_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_storage_domain_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_storage_domains), which
|
||||
contains a list of storage domains. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search storage domain X from datacenter Y use following pattern:
|
||||
name=X and datacenter=Y"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all storage domains which names start with C(data) and
|
||||
# belong to data center C(west):
|
||||
- ovirt_storage_domain_info:
|
||||
pattern: name=data* and datacenter=west
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_storage_domains }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_storage_domains:
|
||||
description: "List of dictionaries describing the storage domains. Storage_domain attributes are mapped to dictionary keys,
|
||||
all storage domains attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/storage_domain."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_storage_domain_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_storage_domain_facts' module has been renamed to 'ovirt_storage_domain_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
storage_domains_service = connection.system_service().storage_domains_service()
|
||||
storage_domains = storage_domains_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_storage_domains=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in storage_domains
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_storage_template_info.py
|
146
lib/ansible/modules/cloud/ovirt/_ovirt_storage_template_facts.py
Normal file
146
lib/ansible/modules/cloud/ovirt/_ovirt_storage_template_facts.py
Normal file
|
@ -0,0 +1,146 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2017 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_storage_template_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV templates relate to a storage domain.
|
||||
author: "Maor Lipchuk (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_storage_template_info) instead
|
||||
version_added: "2.4"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV templates relate to a storage domain."
|
||||
- This module was called C(ovirt_storage_template_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_storage_template_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_storage_templates), which
|
||||
contains a list of templates. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
unregistered:
|
||||
description:
|
||||
- "Flag which indicates whether to get unregistered templates which contain one or more
|
||||
disks which reside on a storage domain or diskless templates."
|
||||
type: bool
|
||||
default: false
|
||||
max:
|
||||
description:
|
||||
- "Sets the maximum number of templates to return. If not specified all the templates are returned."
|
||||
storage_domain:
|
||||
description:
|
||||
- "The storage domain name where the templates should be listed."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all Templates which relate to a storage domain and
|
||||
# are unregistered:
|
||||
- ovirt_storage_template_info:
|
||||
unregistered=True
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_storage_templates }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_storage_templates:
|
||||
description: "List of dictionaries describing the Templates. Template attributes are mapped to dictionary keys,
|
||||
all Templates attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/template."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
get_id_by_name
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
storage_domain=dict(default=None),
|
||||
max=dict(default=None, type='int'),
|
||||
unregistered=dict(default=False, type='bool'),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_storage_template_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_storage_template_facts' module has been renamed to 'ovirt_storage_template_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
storage_domains_service = connection.system_service().storage_domains_service()
|
||||
sd_id = get_id_by_name(storage_domains_service, module.params['storage_domain'])
|
||||
storage_domain_service = storage_domains_service.storage_domain_service(sd_id)
|
||||
templates_service = storage_domain_service.templates_service()
|
||||
|
||||
# Find the unregistered Template we want to register:
|
||||
if module.params.get('unregistered'):
|
||||
templates = templates_service.list(unregistered=True)
|
||||
else:
|
||||
templates = templates_service.list(max=module.params['max'])
|
||||
result = dict(
|
||||
ovirt_storage_templates=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in templates
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_storage_vm_info.py
|
146
lib/ansible/modules/cloud/ovirt/_ovirt_storage_vm_facts.py
Normal file
146
lib/ansible/modules/cloud/ovirt/_ovirt_storage_vm_facts.py
Normal file
|
@ -0,0 +1,146 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2017 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_storage_vm_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV virtual machines relate to a storage domain.
|
||||
author: "Maor Lipchuk (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_storage_vm_info) instead
|
||||
version_added: "2.4"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV virtual machines relate to a storage domain."
|
||||
- This module was called C(ovirt_storage_vm_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_storage_vm_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_storage_vms), which
|
||||
contains a list of virtual machines. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
unregistered:
|
||||
description:
|
||||
- "Flag which indicates whether to get unregistered virtual machines which contain one or more
|
||||
disks which reside on a storage domain or diskless virtual machines."
|
||||
type: bool
|
||||
default: false
|
||||
max:
|
||||
description:
|
||||
- "Sets the maximum number of virtual machines to return. If not specified all the virtual machines are returned."
|
||||
storage_domain:
|
||||
description:
|
||||
- "The storage domain name where the virtual machines should be listed."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all VMs which relate to a storage domain and
|
||||
# are unregistered:
|
||||
- ovirt_vms_info:
|
||||
unregistered=True
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_storage_vms }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_storage_vms:
|
||||
description: "List of dictionaries describing the VMs. VM attributes are mapped to dictionary keys,
|
||||
all VMs attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/vm."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
get_id_by_name
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
storage_domain=dict(default=None),
|
||||
max=dict(default=None, type='int'),
|
||||
unregistered=dict(default=False, type='bool'),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_storage_vm_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_storage_vm_facts' module has been renamed to 'ovirt_storage_vm_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
storage_domains_service = connection.system_service().storage_domains_service()
|
||||
sd_id = get_id_by_name(storage_domains_service, module.params['storage_domain'])
|
||||
storage_domain_service = storage_domains_service.storage_domain_service(sd_id)
|
||||
vms_service = storage_domain_service.vms_service()
|
||||
|
||||
# Find the unregistered VM we want to register:
|
||||
if module.params.get('unregistered'):
|
||||
vms = vms_service.list(unregistered=True)
|
||||
else:
|
||||
vms = vms_service.list()
|
||||
result = dict(
|
||||
ovirt_storage_vms=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in vms
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_tag_info.py
|
175
lib/ansible/modules/cloud/ovirt/_ovirt_tag_facts.py
Normal file
175
lib/ansible/modules/cloud/ovirt/_ovirt_tag_facts.py
Normal file
|
@ -0,0 +1,175 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_tag_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV tags
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_tag_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV tags."
|
||||
- This module was called C(ovirt_tag_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_tag_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_tags), which
|
||||
contains a list of tags. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
name:
|
||||
description:
|
||||
- "Name of the tag which should be listed."
|
||||
vm:
|
||||
description:
|
||||
- "Name of the VM, which tags should be listed."
|
||||
host:
|
||||
description:
|
||||
- "Name of the host, which tags should be listed."
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all tags, which names start with C(tag):
|
||||
- ovirt_tag_info:
|
||||
name: tag*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_tags }}"
|
||||
|
||||
# Gather information about all tags, which are assigned to VM C(postgres):
|
||||
- ovirt_tag_info:
|
||||
vm: postgres
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_tags }}"
|
||||
|
||||
# Gather information about all tags, which are assigned to host C(west):
|
||||
- ovirt_tag_info:
|
||||
host: west
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_tags }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_tags:
|
||||
description: "List of dictionaries describing the tags. Tags attributes are mapped to dictionary keys,
|
||||
all tags attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/tag."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import fnmatch
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
search_by_name,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
name=dict(default=None),
|
||||
host=dict(default=None),
|
||||
vm=dict(default=None),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_tag_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_tag_facts' module has been renamed to 'ovirt_tag_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
tags_service = connection.system_service().tags_service()
|
||||
tags = []
|
||||
all_tags = tags_service.list()
|
||||
if module.params['name']:
|
||||
tags.extend([
|
||||
t for t in all_tags
|
||||
if fnmatch.fnmatch(t.name, module.params['name'])
|
||||
])
|
||||
if module.params['host']:
|
||||
hosts_service = connection.system_service().hosts_service()
|
||||
host = search_by_name(hosts_service, module.params['host'])
|
||||
if host is None:
|
||||
raise Exception("Host '%s' was not found." % module.params['host'])
|
||||
tags.extend([
|
||||
tag for tag in hosts_service.host_service(host.id).tags_service().list()
|
||||
])
|
||||
if module.params['vm']:
|
||||
vms_service = connection.system_service().vms_service()
|
||||
vm = search_by_name(vms_service, module.params['vm'])
|
||||
if vm is None:
|
||||
raise Exception("Vm '%s' was not found." % module.params['vm'])
|
||||
tags.extend([
|
||||
tag for tag in vms_service.vm_service(vm.id).tags_service().list()
|
||||
])
|
||||
|
||||
if not (module.params['vm'] or module.params['host'] or module.params['name']):
|
||||
tags = all_tags
|
||||
|
||||
result = dict(
|
||||
ovirt_tags=[
|
||||
get_dict_of_struct(
|
||||
struct=t,
|
||||
connection=connection,
|
||||
fetch_nested=module.params['fetch_nested'],
|
||||
attributes=module.params['nested_attributes'],
|
||||
) for t in tags
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_template_info.py
|
128
lib/ansible/modules/cloud/ovirt/_ovirt_template_facts.py
Normal file
128
lib/ansible/modules/cloud/ovirt/_ovirt_template_facts.py
Normal file
|
@ -0,0 +1,128 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_template_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV templates
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_template_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV templates."
|
||||
- This module was called C(ovirt_template_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_template_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_templates), which
|
||||
contains a list of templates. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search template X from datacenter Y use following pattern:
|
||||
name=X and datacenter=Y"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all templates which names start with C(centos) and
|
||||
# belongs to data center C(west):
|
||||
- ovirt_template_info:
|
||||
pattern: name=centos* and datacenter=west
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_templates }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_templates:
|
||||
description: "List of dictionaries describing the templates. Template attributes are mapped to dictionary keys,
|
||||
all templates attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/template."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_template_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_template_facts' module has been renamed to 'ovirt_template_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
templates_service = connection.system_service().templates_service()
|
||||
templates = templates_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_templates=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in templates
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_user_info.py
|
126
lib/ansible/modules/cloud/ovirt/_ovirt_user_facts.py
Normal file
126
lib/ansible/modules/cloud/ovirt/_ovirt_user_facts.py
Normal file
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_user_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV users
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_user_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV users."
|
||||
- This module was called C(ovirt_user_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_user_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_users), which
|
||||
contains a list of users. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search user X use following pattern: name=X"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all users which first names start with C(john):
|
||||
- ovirt_user_info:
|
||||
pattern: name=john*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_users }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_users:
|
||||
description: "List of dictionaries describing the users. User attributes are mapped to dictionary keys,
|
||||
all users attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/user."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_user_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_user_facts' module has been renamed to 'ovirt_user_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
users_service = connection.system_service().users_service()
|
||||
users = users_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_users=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in users
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_vm_info.py
|
168
lib/ansible/modules/cloud/ovirt/_ovirt_vm_facts.py
Normal file
168
lib/ansible/modules/cloud/ovirt/_ovirt_vm_facts.py
Normal file
|
@ -0,0 +1,168 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_vm_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV virtual machines
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_vm_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV virtual machines."
|
||||
- This module was called C(ovirt_vm_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_vm_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_vms), which
|
||||
contains a list of virtual machines. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search VM X from cluster Y use following pattern:
|
||||
name=X and cluster=Y"
|
||||
all_content:
|
||||
description:
|
||||
- "If I(true) all the attributes of the virtual machines should be
|
||||
included in the response."
|
||||
type: bool
|
||||
case_sensitive:
|
||||
description:
|
||||
- "If I(true) performed search will take case into account."
|
||||
type: bool
|
||||
default: true
|
||||
max:
|
||||
description:
|
||||
- "The maximum number of results to return."
|
||||
next_run:
|
||||
description:
|
||||
- "Indicates if the returned result describes the virtual machine as it is currently running or if describes
|
||||
the virtual machine with the modifications that have already been performed but that will only come into
|
||||
effect when the virtual machine is restarted. By default the value is set by engine."
|
||||
type: bool
|
||||
version_added: "2.8"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all VMs which names start with C(centos) and
|
||||
# belong to cluster C(west):
|
||||
- ovirt_vm_info:
|
||||
pattern: name=centos* and cluster=west
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_vms }}"
|
||||
|
||||
# Gather info about next run configuration of virtual machine named myvm
|
||||
- ovirt_vm_info:
|
||||
pattern: name=myvm
|
||||
next_run: true
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_vms[0] }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_vms:
|
||||
description: "List of dictionaries describing the VMs. VM attributes are mapped to dictionary keys,
|
||||
all VMs attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/vm."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
all_content=dict(default=False, type='bool'),
|
||||
next_run=dict(default=None, type='bool'),
|
||||
case_sensitive=dict(default=True, type='bool'),
|
||||
max=dict(default=None, type='int'),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_vm_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_vm_facts' module has been renamed to 'ovirt_vm_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
vms_service = connection.system_service().vms_service()
|
||||
vms = vms_service.list(
|
||||
search=module.params['pattern'],
|
||||
all_content=module.params['all_content'],
|
||||
case_sensitive=module.params['case_sensitive'],
|
||||
max=module.params['max'],
|
||||
)
|
||||
if module.params['next_run']:
|
||||
vms = [vms_service.vm_service(vm.id).get(next_run=True) for vm in vms]
|
||||
|
||||
result = dict(
|
||||
ovirt_vms=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in vms
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_vmpool_info.py
|
126
lib/ansible/modules/cloud/ovirt/_ovirt_vmpool_facts.py
Normal file
126
lib/ansible/modules/cloud/ovirt/_ovirt_vmpool_facts.py
Normal file
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['deprecated'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_vmpool_facts
|
||||
short_description: Retrieve information about one or more oVirt/RHV vmpools
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_vmpool_info) instead
|
||||
version_added: "2.3"
|
||||
description:
|
||||
- "Retrieve information about one or more oVirt/RHV vmpools."
|
||||
- This module was called C(ovirt_vmpool_facts) before Ansible 2.9, returning C(ansible_facts).
|
||||
Note that the M(ovirt_vmpool_info) module no longer returns C(ansible_facts)!
|
||||
notes:
|
||||
- "This module returns a variable C(ovirt_vmpools), which
|
||||
contains a list of vmpools. You need to register the result with
|
||||
the I(register) keyword to use it."
|
||||
options:
|
||||
pattern:
|
||||
description:
|
||||
- "Search term which is accepted by oVirt/RHV search backend."
|
||||
- "For example to search vmpool X: name=X"
|
||||
extends_documentation_fragment: ovirt_info
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Gather information about all vm pools which names start with C(centos):
|
||||
- ovirt_vmpool_info:
|
||||
pattern: name=centos*
|
||||
register: result
|
||||
- debug:
|
||||
msg: "{{ result.ovirt_vm_pools }}"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
ovirt_vm_pools:
|
||||
description: "List of dictionaries describing the vmpools. Vm pool attributes are mapped to dictionary keys,
|
||||
all vmpools attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/vm_pool."
|
||||
returned: On success.
|
||||
type: list
|
||||
'''
|
||||
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.removed import removed_module
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.ovirt import (
|
||||
check_sdk,
|
||||
create_connection,
|
||||
get_dict_of_struct,
|
||||
ovirt_info_full_argument_spec,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_info_full_argument_spec(
|
||||
pattern=dict(default='', required=False),
|
||||
)
|
||||
module = AnsibleModule(argument_spec)
|
||||
is_old_facts = module._name == 'ovirt_vmpool_facts'
|
||||
if is_old_facts:
|
||||
module.deprecate("The 'ovirt_vmpool_facts' module has been renamed to 'ovirt_vmpool_info', "
|
||||
"and the renamed one no longer returns ansible_facts", version='2.13')
|
||||
|
||||
check_sdk(module)
|
||||
|
||||
try:
|
||||
auth = module.params.pop('auth')
|
||||
connection = create_connection(auth)
|
||||
vmpools_service = connection.system_service().vm_pools_service()
|
||||
vmpools = vmpools_service.list(search=module.params['pattern'])
|
||||
result = dict(
|
||||
ovirt_vm_pools=[
|
||||
get_dict_of_struct(
|
||||
struct=c,
|
||||
connection=connection,
|
||||
fetch_nested=module.params.get('fetch_nested'),
|
||||
attributes=module.params.get('nested_attributes'),
|
||||
) for c in vmpools
|
||||
],
|
||||
)
|
||||
if is_old_facts:
|
||||
module.exit_json(changed=False, ansible_facts=result)
|
||||
else:
|
||||
module.exit_json(changed=False, **result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=str(e), exception=traceback.format_exc())
|
||||
finally:
|
||||
connection.close(logout=auth.get('token') is None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
removed_module("2.10")
|
|
@ -1 +0,0 @@
|
|||
ovirt_info.py
|
64
lib/ansible/plugins/doc_fragments/ovirt_facts.py
Normal file
64
lib/ansible/plugins/doc_fragments/ovirt_facts.py
Normal file
|
@ -0,0 +1,64 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright: (c) 2016, Red Hat, Inc.
|
||||
# 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
|
||||
|
||||
|
||||
class ModuleDocFragment(object):
|
||||
|
||||
# info standard oVirt documentation fragment
|
||||
DOCUMENTATION = r'''
|
||||
deprecated:
|
||||
removed_in: "2.10"
|
||||
why: When migrating to collection we decided to use only _info modules.
|
||||
alternative: Use M(ovirt_info) instead
|
||||
options:
|
||||
fetch_nested:
|
||||
description:
|
||||
- If I(yes) the module will fetch additional data from the API.
|
||||
- It will fetch only IDs of nested entity. It doesn't fetch multiple levels of nested attributes.
|
||||
Only the attributes of the current entity. User can configure to fetch other
|
||||
attributes of the nested entities by specifying C(nested_attributes).
|
||||
type: bool
|
||||
version_added: "2.3"
|
||||
nested_attributes:
|
||||
description:
|
||||
- Specifies list of the attributes which should be fetched from the API.
|
||||
- This parameter apply only when C(fetch_nested) is I(true).
|
||||
type: list
|
||||
version_added: "2.3"
|
||||
auth:
|
||||
description:
|
||||
- "Dictionary with values needed to create HTTP/HTTPS connection to oVirt:"
|
||||
- C(username)[I(required)] - The name of the user, something like I(admin@internal).
|
||||
Default value is set by I(OVIRT_USERNAME) environment variable.
|
||||
- "C(password)[I(required)] - The password of the user. Default value is set by I(OVIRT_PASSWORD) environment variable."
|
||||
- "C(url)- A string containing the API URL of the server, usually
|
||||
something like `I(https://server.example.com/ovirt-engine/api)`. Default value is set by I(OVIRT_URL) environment variable.
|
||||
Either C(url) or C(hostname) is required."
|
||||
- "C(hostname) - A string containing the hostname of the server, usually
|
||||
something like `I(server.example.com)`. Default value is set by I(OVIRT_HOSTNAME) environment variable.
|
||||
Either C(url) or C(hostname) is required."
|
||||
- "C(token) - Token to be used instead of login with username/password. Default value is set by I(OVIRT_TOKEN) environment variable."
|
||||
- "C(insecure) - A boolean flag that indicates if the server TLS
|
||||
certificate and host name should be checked."
|
||||
- "C(ca_file) - A PEM file containing the trusted CA certificates. The
|
||||
certificate presented by the server will be verified using these CA
|
||||
certificates. If `C(ca_file)` parameter is not set, system wide
|
||||
CA certificate store is used. Default value is set by I(OVIRT_CAFILE) environment variable."
|
||||
- "C(kerberos) - A boolean flag indicating if Kerberos authentication
|
||||
should be used instead of the default basic authentication."
|
||||
- "C(headers) - Dictionary of HTTP headers to be added to each API call."
|
||||
type: dict
|
||||
required: true
|
||||
requirements:
|
||||
- python >= 2.7
|
||||
- ovirt-engine-sdk-python >= 4.3.0
|
||||
notes:
|
||||
- "In order to use this module you have to install oVirt Python SDK.
|
||||
To ensure it's installed with correct version you can create the following task:
|
||||
pip: name=ovirt-engine-sdk-python version=4.3.0"
|
||||
'''
|
|
@ -1839,9 +1839,6 @@ lib/ansible/modules/cloud/memset/memset_zone_record.py validate-modules:paramete
|
|||
lib/ansible/modules/cloud/misc/cloud_init_data_facts.py validate-modules:doc-missing-type
|
||||
lib/ansible/modules/cloud/misc/helm.py validate-modules:doc-missing-type
|
||||
lib/ansible/modules/cloud/misc/helm.py validate-modules:parameter-type-not-in-doc
|
||||
lib/ansible/modules/cloud/misc/ovirt.py validate-modules:doc-choices-do-not-match-spec
|
||||
lib/ansible/modules/cloud/misc/ovirt.py validate-modules:parameter-type-not-in-doc
|
||||
lib/ansible/modules/cloud/misc/ovirt.py validate-modules:undocumented-parameter
|
||||
lib/ansible/modules/cloud/misc/proxmox.py validate-modules:doc-missing-type
|
||||
lib/ansible/modules/cloud/misc/proxmox.py validate-modules:parameter-type-not-in-doc
|
||||
lib/ansible/modules/cloud/misc/proxmox_kvm.py validate-modules:doc-default-does-not-match-spec
|
||||
|
|
Loading…
Reference in a new issue