mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
ovirt: PEP8 compliancy fixes (#32316)
* ovirt: PEP8 compliancy fixes This PR includes: - PEP8 compliancy fixes Signed-off-by: Satyajit Bulage <sbulage@redhat.com> * Improve documentation * Update documentation * Update documentation * Update documentation * Fix legacy-files.txt * Update documentation * Fix PEP8 issue * Fix PEP8 issue * Fix another PEP8 issue * More typo fixes * Yet another PEP8 typo
This commit is contained in:
parent
a2d34e914e
commit
1857d11034
6 changed files with 669 additions and 772 deletions
|
@ -1,21 +1,20 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# (c) 2013, Vincent Van der Kussen <vincent at vanderkussen.org>
|
||||
# Copyright: (c) 2013, Vincent Van der Kussen <vincent at vanderkussen.org>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt
|
||||
author: "Vincent Van der Kussen (@vincentvdk)"
|
||||
author:
|
||||
- Vincent Van der Kussen (@vincentvdk)
|
||||
short_description: oVirt/RHEV platform management
|
||||
description:
|
||||
- This module only supports oVirt/RHEV version 3. A newer module M(ovirt_vms) supports oVirt/RHV version 4.
|
||||
|
@ -24,190 +23,141 @@ version_added: "1.4"
|
|||
options:
|
||||
user:
|
||||
description:
|
||||
- the user to authenticate with
|
||||
default: null
|
||||
- The user to authenticate with.
|
||||
required: true
|
||||
aliases: []
|
||||
url:
|
||||
description:
|
||||
- the url of the oVirt instance
|
||||
default: null
|
||||
- The url of the oVirt instance.
|
||||
required: true
|
||||
aliases: []
|
||||
instance_name:
|
||||
description:
|
||||
- the name of the instance to use
|
||||
default: null
|
||||
- The name of the instance to use.
|
||||
required: true
|
||||
aliases: [ vmname ]
|
||||
password:
|
||||
description:
|
||||
- password of the user to authenticate with
|
||||
default: null
|
||||
- Password of the user to authenticate with.
|
||||
required: true
|
||||
aliases: []
|
||||
image:
|
||||
description:
|
||||
- template to use for the instance
|
||||
default: null
|
||||
required: false
|
||||
aliases: []
|
||||
- The template to use for the instance.
|
||||
resource_type:
|
||||
description:
|
||||
- whether you want to deploy an image or create an instance from scratch.
|
||||
default: null
|
||||
required: false
|
||||
aliases: []
|
||||
choices: [ 'new', 'template' ]
|
||||
- Whether you want to deploy an image or create an instance from scratch.
|
||||
choices: [ new, template ]
|
||||
zone:
|
||||
description:
|
||||
- deploy the image to this oVirt cluster
|
||||
default: null
|
||||
required: false
|
||||
aliases: []
|
||||
- Deploy the image to this oVirt cluster.
|
||||
instance_disksize:
|
||||
description:
|
||||
- size of the instance's disk in GB
|
||||
default: null
|
||||
required: false
|
||||
- Size of the instance's disk in GB.
|
||||
aliases: [ vm_disksize]
|
||||
instance_cpus:
|
||||
description:
|
||||
- the instance's number of cpu's
|
||||
- The instance's number of CPUs.
|
||||
default: 1
|
||||
required: false
|
||||
aliases: [ vmcpus ]
|
||||
instance_nic:
|
||||
description:
|
||||
- name of the network interface in oVirt/RHEV
|
||||
default: null
|
||||
required: false
|
||||
- The name of the network interface in oVirt/RHEV.
|
||||
aliases: [ vmnic ]
|
||||
instance_network:
|
||||
description:
|
||||
- the logical network the machine should belong to
|
||||
- The logical network the machine should belong to.
|
||||
default: rhevm
|
||||
required: false
|
||||
aliases: [ vmnetwork ]
|
||||
instance_mem:
|
||||
description:
|
||||
- the instance's amount of memory in MB
|
||||
default: null
|
||||
required: false
|
||||
- The instance's amount of memory in MB.
|
||||
aliases: [ vmmem ]
|
||||
instance_type:
|
||||
description:
|
||||
- define if the instance is a server or desktop
|
||||
- Define whether the instance is a server or desktop.
|
||||
choices: [ desktop, server ]
|
||||
default: server
|
||||
required: false
|
||||
aliases: [ vmtype ]
|
||||
choices: [ 'server', 'desktop' ]
|
||||
disk_alloc:
|
||||
description:
|
||||
- define if disk is thin or preallocated
|
||||
- Define whether disk is thin or preallocated.
|
||||
choices: [ preallocated, thin ]
|
||||
default: thin
|
||||
required: false
|
||||
aliases: []
|
||||
choices: [ 'thin', 'preallocated' ]
|
||||
disk_int:
|
||||
description:
|
||||
- interface type of the disk
|
||||
- Interface type of the disk.
|
||||
choices: [ ide, virtio ]
|
||||
default: virtio
|
||||
required: false
|
||||
aliases: []
|
||||
choices: [ 'virtio', 'ide' ]
|
||||
instance_os:
|
||||
description:
|
||||
- type of Operating System
|
||||
default: null
|
||||
required: false
|
||||
- Type of Operating System.
|
||||
aliases: [ vmos ]
|
||||
instance_cores:
|
||||
description:
|
||||
- define the instance's number of cores
|
||||
- Define the instance's number of cores.
|
||||
default: 1
|
||||
required: false
|
||||
aliases: [ vmcores ]
|
||||
sdomain:
|
||||
description:
|
||||
- the Storage Domain where you want to create the instance's disk on.
|
||||
default: null
|
||||
required: false
|
||||
aliases: []
|
||||
- The Storage Domain where you want to create the instance's disk on.
|
||||
region:
|
||||
description:
|
||||
- the oVirt/RHEV datacenter where you want to deploy to
|
||||
default: null
|
||||
required: false
|
||||
aliases: []
|
||||
- The oVirt/RHEV datacenter where you want to deploy to.
|
||||
instance_dns:
|
||||
description:
|
||||
- define the instance's Primary DNS server
|
||||
required: false
|
||||
- Define the instance's Primary DNS server.
|
||||
aliases: [ dns ]
|
||||
version_added: "2.1"
|
||||
instance_domain:
|
||||
description:
|
||||
- define the instance's Domain
|
||||
required: false
|
||||
- Define the instance's Domain.
|
||||
aliases: [ domain ]
|
||||
version_added: "2.1"
|
||||
instance_hostname:
|
||||
description:
|
||||
- define the instance's Hostname
|
||||
required: false
|
||||
- Define the instance's Hostname.
|
||||
aliases: [ hostname ]
|
||||
version_added: "2.1"
|
||||
instance_ip:
|
||||
description:
|
||||
- define the instance's IP
|
||||
required: false
|
||||
- Define the instance's IP.
|
||||
aliases: [ ip ]
|
||||
version_added: "2.1"
|
||||
instance_netmask:
|
||||
description:
|
||||
- define the instance's Netmask
|
||||
required: false
|
||||
- Define the instance's Netmask.
|
||||
aliases: [ netmask ]
|
||||
version_added: "2.1"
|
||||
instance_rootpw:
|
||||
description:
|
||||
- define the instance's Root password
|
||||
required: false
|
||||
- Define the instance's Root password.
|
||||
aliases: [ rootpw ]
|
||||
version_added: "2.1"
|
||||
instance_key:
|
||||
description:
|
||||
- define the instance's Authorized key
|
||||
required: false
|
||||
- Define the instance's Authorized key.
|
||||
aliases: [ key ]
|
||||
version_added: "2.1"
|
||||
state:
|
||||
description:
|
||||
- create, terminate or remove instances
|
||||
default: 'present'
|
||||
required: false
|
||||
aliases: []
|
||||
choices: ['present', 'absent', 'shutdown', 'started', 'restarted']
|
||||
|
||||
- Create, terminate or remove instances.
|
||||
choices: [ absent, present, restarted, shutdown, started ]
|
||||
default: present
|
||||
requirements:
|
||||
- "python >= 2.6"
|
||||
- "ovirt-engine-sdk-python"
|
||||
- ovirt-engine-sdk-python
|
||||
'''
|
||||
EXAMPLES = '''
|
||||
# Basic example provisioning from image.
|
||||
|
||||
ovirt:
|
||||
EXAMPLES = '''
|
||||
- name: Basic example to provision from image
|
||||
ovirt:
|
||||
user: admin@internal
|
||||
url: https://ovirt.example.com
|
||||
instance_name: ansiblevm04
|
||||
password: secret
|
||||
image: centos_64
|
||||
zone: cluster01
|
||||
resource_type: template"
|
||||
resource_type: template
|
||||
|
||||
# Full example to create new instance from scratch
|
||||
ovirt:
|
||||
- name: Full example to create new instance from scratch
|
||||
ovirt:
|
||||
instance_name: testansible
|
||||
resource_type: new
|
||||
instance_type: server
|
||||
|
@ -225,26 +175,26 @@ ovirt:
|
|||
sdomain: FIBER01
|
||||
instance_cores: 1
|
||||
instance_os: rhel_6x64
|
||||
disk_int: virtio"
|
||||
disk_int: virtio
|
||||
|
||||
# stopping an instance
|
||||
ovirt:
|
||||
- name: Stopping an existing instance
|
||||
ovirt:
|
||||
instance_name: testansible
|
||||
state: stopped
|
||||
user: admin@internal
|
||||
password: secret
|
||||
url: https://ovirt.example.com
|
||||
|
||||
# starting an instance
|
||||
ovirt:
|
||||
- name: Start an existing instance
|
||||
ovirt:
|
||||
instance_name: testansible
|
||||
state: started
|
||||
user: admin@internal
|
||||
password: secret
|
||||
url: https://ovirt.example.com
|
||||
|
||||
# starting an instance with cloud init information
|
||||
ovirt:
|
||||
- name: Start an instance with cloud init information
|
||||
ovirt:
|
||||
instance_name: testansible
|
||||
state: started
|
||||
user: admin@internal
|
||||
|
@ -256,8 +206,8 @@ ovirt:
|
|||
netmask: 255.255.255.0
|
||||
gateway: 192.0.2.1
|
||||
rootpw: bigsecret
|
||||
|
||||
'''
|
||||
|
||||
import time
|
||||
|
||||
try:
|
||||
|
@ -281,6 +231,7 @@ def conn(url, user, password):
|
|||
raise Exception("error connecting to the oVirt API")
|
||||
return api
|
||||
|
||||
|
||||
# ------------------------------------------------------------------- #
|
||||
# Create VM from scratch
|
||||
def create_vm(conn, vmtype, vmname, zone, vmdisk_size, vmcpus, vmnic, vmnetwork, vmmem, vmdisk_alloc, sdomain, vmcores, vmos, vmdisk_int):
|
||||
|
@ -290,8 +241,9 @@ def create_vm(conn, vmtype, vmname, zone, vmdisk_size, vmcpus, vmnic, vmnetwork,
|
|||
template=conn.templates.get(name="Blank"), memory=1024 * 1024 * int(vmmem),
|
||||
cpu=params.CPU(topology=params.CpuTopology(cores=int(vmcores))), type_=vmtype)
|
||||
# define disk params
|
||||
vmdisk= params.Disk(size=1024 * 1024 * 1024 * int(vmdisk_size), wipe_after_delete=True, sparse=True, interface=vmdisk_int, type_="System", format='cow',
|
||||
storage_domains=params.StorageDomains(storage_domain=[conn.storagedomains.get(name=sdomain)]))
|
||||
vmdisk = params.Disk(size=1024 * 1024 * 1024 * int(vmdisk_size), wipe_after_delete=True, sparse=True, interface=vmdisk_int, type_="System",
|
||||
format='cow',
|
||||
storage_domains=params.StorageDomains(storage_domain=[conn.storagedomains.get(name=sdomain)]))
|
||||
# define network parameters
|
||||
network_net = params.Network(name=vmnetwork)
|
||||
nic_net1 = params.NIC(name='nic1', network=network_net, interface='virtio')
|
||||
|
@ -299,10 +251,10 @@ def create_vm(conn, vmtype, vmname, zone, vmdisk_size, vmcpus, vmnic, vmnetwork,
|
|||
# define VM params
|
||||
vmparams = params.VM(name=vmname, cluster=conn.clusters.get(name=zone), os=params.OperatingSystem(type_=vmos),
|
||||
template=conn.templates.get(name="Blank"), memory=1024 * 1024 * int(vmmem),
|
||||
cpu=params.CPU(topology=params.CpuTopology(cores=int(vmcores))) ,type_=vmtype)
|
||||
cpu=params.CPU(topology=params.CpuTopology(cores=int(vmcores))), type_=vmtype)
|
||||
# define disk params
|
||||
vmdisk= params.Disk(size=1024 * 1024 * 1024 * int(vmdisk_size), wipe_after_delete=True, sparse=False, interface=vmdisk_int, type_="System",
|
||||
format='raw', storage_domains=params.StorageDomains(storage_domain=[conn.storagedomains.get(name=sdomain)]))
|
||||
vmdisk = params.Disk(size=1024 * 1024 * 1024 * int(vmdisk_size), wipe_after_delete=True, sparse=False, interface=vmdisk_int, type_="System",
|
||||
format='raw', storage_domains=params.StorageDomains(storage_domain=[conn.storagedomains.get(name=sdomain)]))
|
||||
# define network parameters
|
||||
network_net = params.Network(name=vmnetwork)
|
||||
nic_net1 = params.NIC(name=vmnic, network=network_net, interface='virtio')
|
||||
|
@ -324,7 +276,7 @@ def create_vm(conn, vmtype, vmname, zone, vmdisk_size, vmcpus, vmnic, vmnetwork,
|
|||
|
||||
# create an instance from a template
|
||||
def create_vm_template(conn, vmname, image, zone):
|
||||
vmparams = params.VM(name=vmname, cluster=conn.clusters.get(name=zone), template=conn.templates.get(name=image),disks=params.Disks(clone=True))
|
||||
vmparams = params.VM(name=vmname, cluster=conn.clusters.get(name=zone), template=conn.templates.get(name=image), disks=params.Disks(clone=True))
|
||||
try:
|
||||
conn.vms.add(vmparams)
|
||||
except:
|
||||
|
@ -345,17 +297,19 @@ def vm_start(conn, vmname, hostname=None, ip=None, netmask=None, gateway=None,
|
|||
nic = params.GuestNicConfiguration(name='eth0', boot_protocol='STATIC', ip=ipinfo, on_boot=True)
|
||||
nics = params.Nics()
|
||||
nics = params.GuestNicsConfiguration(nic_configuration=[nic])
|
||||
initialization=params.Initialization(regenerate_ssh_keys=True, host_name=hostname, domain=domain, user_name='root',
|
||||
root_password=rootpw, nic_configurations=nics, dns_servers=dns,
|
||||
authorized_ssh_keys=key)
|
||||
initialization = params.Initialization(regenerate_ssh_keys=True, host_name=hostname, domain=domain, user_name='root',
|
||||
root_password=rootpw, nic_configurations=nics, dns_servers=dns,
|
||||
authorized_ssh_keys=key)
|
||||
action = params.Action(use_cloud_init=use_cloud_init, vm=params.VM(initialization=initialization))
|
||||
vm.start(action=action)
|
||||
|
||||
|
||||
# Stop instance
|
||||
def vm_stop(conn, vmname):
|
||||
vm = conn.vms.get(name=vmname)
|
||||
vm.stop()
|
||||
|
||||
|
||||
# restart instance
|
||||
def vm_restart(conn, vmname):
|
||||
state = vm_status(conn, vmname)
|
||||
|
@ -365,11 +319,13 @@ def vm_restart(conn, vmname):
|
|||
time.sleep(5)
|
||||
vm.start()
|
||||
|
||||
|
||||
# remove an instance
|
||||
def vm_remove(conn, vmname):
|
||||
vm = conn.vms.get(name=vmname)
|
||||
vm.delete()
|
||||
|
||||
|
||||
# ------------------------------------------------------------------- #
|
||||
# VM statuses
|
||||
#
|
||||
|
@ -395,76 +351,75 @@ def get_vm(conn, vmname):
|
|||
# ------------------------------------------------------------------- #
|
||||
# Main
|
||||
|
||||
def main():
|
||||
|
||||
def main():
|
||||
module = AnsibleModule(
|
||||
argument_spec = dict(
|
||||
state = dict(default='present', choices=['present', 'absent', 'shutdown', 'started', 'restart']),
|
||||
#name = dict(required=True),
|
||||
user = dict(required=True),
|
||||
url = dict(required=True),
|
||||
instance_name = dict(required=True, aliases=['vmname']),
|
||||
password = dict(required=True, no_log=True),
|
||||
image = dict(),
|
||||
resource_type = dict(choices=['new', 'template']),
|
||||
zone = dict(),
|
||||
instance_disksize = dict(aliases=['vm_disksize']),
|
||||
instance_cpus = dict(default=1, aliases=['vmcpus']),
|
||||
instance_nic = dict(aliases=['vmnic']),
|
||||
instance_network = dict(default='rhevm', aliases=['vmnetwork']),
|
||||
instance_mem = dict(aliases=['vmmem']),
|
||||
instance_type = dict(default='server', aliases=['vmtype'], choices=['server', 'desktop']),
|
||||
disk_alloc = dict(default='thin', choices=['thin', 'preallocated']),
|
||||
disk_int = dict(default='virtio', choices=['virtio', 'ide']),
|
||||
instance_os = dict(aliases=['vmos']),
|
||||
instance_cores = dict(default=1, aliases=['vmcores']),
|
||||
instance_hostname = dict(aliases=['hostname']),
|
||||
instance_ip = dict(aliases=['ip']),
|
||||
instance_netmask = dict(aliases=['netmask']),
|
||||
instance_gateway = dict(aliases=['gateway']),
|
||||
instance_domain = dict(aliases=['domain']),
|
||||
instance_dns = dict(aliases=['dns']),
|
||||
instance_rootpw = dict(aliases=['rootpw']),
|
||||
instance_key = dict(aliases=['key']),
|
||||
sdomain = dict(),
|
||||
region = dict(),
|
||||
)
|
||||
argument_spec=dict(
|
||||
state=dict(type='str', default='present', choices=['absent', 'present', 'restart', 'shutdown', 'started']),
|
||||
user=dict(type='str', required=True),
|
||||
url=dict(type='str', required=True),
|
||||
instance_name=dict(type='str', required=True, aliases=['vmname']),
|
||||
password=dict(type='str', required=True, no_log=True),
|
||||
image=dict(type='str'),
|
||||
resource_type=dict(type='str', choices=['new', 'template']),
|
||||
zone=dict(type='str'),
|
||||
instance_disksize=dict(type='str', aliases=['vm_disksize']),
|
||||
instance_cpus=dict(type='str', default=1, aliases=['vmcpus']),
|
||||
instance_nic=dict(type='str', aliases=['vmnic']),
|
||||
instance_network=dict(type='str', default='rhevm', aliases=['vmnetwork']),
|
||||
instance_mem=dict(type='str', aliases=['vmmem']),
|
||||
instance_type=dict(type='str', default='server', aliases=['vmtype'], choices=['desktop', 'server']),
|
||||
disk_alloc=dict(type='str', default='thin', choices=['preallocated', 'thin']),
|
||||
disk_int=dict(type='str', default='virtio', choices=['ide', 'virtio']),
|
||||
instance_os=dict(type='str', aliases=['vmos']),
|
||||
instance_cores=dict(type='str', default=1, aliases=['vmcores']),
|
||||
instance_hostname=dict(type='str', aliases=['hostname']),
|
||||
instance_ip=dict(type='str', aliases=['ip']),
|
||||
instance_netmask=dict(type='str', aliases=['netmask']),
|
||||
instance_gateway=dict(type='str', aliases=['gateway']),
|
||||
instance_domain=dict(type='str', aliases=['domain']),
|
||||
instance_dns=dict(type='str', aliases=['dns']),
|
||||
instance_rootpw=dict(type='str', aliases=['rootpw']),
|
||||
instance_key=dict(type='str', aliases=['key']),
|
||||
sdomain=dict(type='str'),
|
||||
region=dict(type='str'),
|
||||
),
|
||||
)
|
||||
|
||||
if not HAS_OVIRTSDK:
|
||||
module.fail_json(msg='ovirtsdk required for this module')
|
||||
|
||||
state = module.params['state']
|
||||
user = module.params['user']
|
||||
url = module.params['url']
|
||||
vmname = module.params['instance_name']
|
||||
password = module.params['password']
|
||||
image = module.params['image'] # name of the image to deploy
|
||||
resource_type = module.params['resource_type'] # template or from scratch
|
||||
zone = module.params['zone'] # oVirt cluster
|
||||
vmdisk_size = module.params['instance_disksize'] # disksize
|
||||
vmcpus = module.params['instance_cpus'] # number of cpu
|
||||
vmnic = module.params['instance_nic'] # network interface
|
||||
vmnetwork = module.params['instance_network'] # logical network
|
||||
vmmem = module.params['instance_mem'] # mem size
|
||||
vmdisk_alloc = module.params['disk_alloc'] # thin, preallocated
|
||||
vmdisk_int = module.params['disk_int'] # disk interface virtio or ide
|
||||
vmos = module.params['instance_os'] # Operating System
|
||||
vmtype = module.params['instance_type'] # server or desktop
|
||||
vmcores = module.params['instance_cores'] # number of cores
|
||||
sdomain = module.params['sdomain'] # storage domain to store disk on
|
||||
region = module.params['region'] # oVirt Datacenter
|
||||
hostname = module.params['instance_hostname']
|
||||
ip = module.params['instance_ip']
|
||||
netmask = module.params['instance_netmask']
|
||||
gateway = module.params['instance_gateway']
|
||||
domain = module.params['instance_domain']
|
||||
dns = module.params['instance_dns']
|
||||
rootpw = module.params['instance_rootpw']
|
||||
key = module.params['instance_key']
|
||||
#initialize connection
|
||||
state = module.params['state']
|
||||
user = module.params['user']
|
||||
url = module.params['url']
|
||||
vmname = module.params['instance_name']
|
||||
password = module.params['password']
|
||||
image = module.params['image'] # name of the image to deploy
|
||||
resource_type = module.params['resource_type'] # template or from scratch
|
||||
zone = module.params['zone'] # oVirt cluster
|
||||
vmdisk_size = module.params['instance_disksize'] # disksize
|
||||
vmcpus = module.params['instance_cpus'] # number of cpu
|
||||
vmnic = module.params['instance_nic'] # network interface
|
||||
vmnetwork = module.params['instance_network'] # logical network
|
||||
vmmem = module.params['instance_mem'] # mem size
|
||||
vmdisk_alloc = module.params['disk_alloc'] # thin, preallocated
|
||||
vmdisk_int = module.params['disk_int'] # disk interface virtio or ide
|
||||
vmos = module.params['instance_os'] # Operating System
|
||||
vmtype = module.params['instance_type'] # server or desktop
|
||||
vmcores = module.params['instance_cores'] # number of cores
|
||||
sdomain = module.params['sdomain'] # storage domain to store disk on
|
||||
region = module.params['region'] # oVirt Datacenter
|
||||
hostname = module.params['instance_hostname']
|
||||
ip = module.params['instance_ip']
|
||||
netmask = module.params['instance_netmask']
|
||||
gateway = module.params['instance_gateway']
|
||||
domain = module.params['instance_domain']
|
||||
dns = module.params['instance_dns']
|
||||
rootpw = module.params['instance_rootpw']
|
||||
key = module.params['instance_key']
|
||||
# initialize connection
|
||||
try:
|
||||
c = conn(url+"/api", user, password)
|
||||
c = conn(url + "/api", user, password)
|
||||
except Exception as e:
|
||||
module.fail_json(msg='%s' % e)
|
||||
|
||||
|
@ -475,14 +430,14 @@ def main():
|
|||
create_vm_template(c, vmname, image, zone)
|
||||
except Exception as e:
|
||||
module.fail_json(msg='%s' % e)
|
||||
module.exit_json(changed=True, msg="deployed VM %s from template %s" % (vmname,image))
|
||||
module.exit_json(changed=True, msg="deployed VM %s from template %s" % (vmname, image))
|
||||
elif resource_type == 'new':
|
||||
# FIXME: refactor, use keyword args.
|
||||
try:
|
||||
create_vm(c, vmtype, vmname, zone, vmdisk_size, vmcpus, vmnic, vmnetwork, vmmem, vmdisk_alloc, sdomain, vmcores, vmos, vmdisk_int)
|
||||
except Exception as e:
|
||||
module.fail_json(msg='%s' % e)
|
||||
module.exit_json(changed=True, msg="deployed VM %s from scratch" % vmname)
|
||||
module.exit_json(changed=True, msg="deployed VM %s from scratch" % vmname)
|
||||
else:
|
||||
module.exit_json(changed=False, msg="You did not specify a resource type")
|
||||
else:
|
||||
|
@ -492,7 +447,7 @@ def main():
|
|||
if vm_status(c, vmname) == 'up':
|
||||
module.exit_json(changed=False, msg="VM %s is already running" % vmname)
|
||||
else:
|
||||
#vm_start(c, vmname)
|
||||
# vm_start(c, vmname)
|
||||
vm_start(c, vmname, hostname, ip, netmask, gateway, domain, dns, rootpw, key)
|
||||
module.exit_json(changed=True, msg="VM %s started" % vmname)
|
||||
|
||||
|
|
|
@ -1,85 +1,67 @@
|
|||
#!/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/>.
|
||||
#
|
||||
|
||||
# Copyright: (c) 2017, Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_affinity_group
|
||||
short_description: Module to manage affinity groups in oVirt/RHV
|
||||
version_added: "2.3"
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
author:
|
||||
- Ondra Machacek (@machacekondra)
|
||||
description:
|
||||
- "This module manage affinity groups in oVirt/RHV. It can also manage assignments
|
||||
of those groups to VMs."
|
||||
options:
|
||||
name:
|
||||
description:
|
||||
- "Name of the affinity group to manage."
|
||||
- Name of the affinity group to manage.
|
||||
required: true
|
||||
state:
|
||||
description:
|
||||
- "Should the affinity group be present or absent."
|
||||
choices: ['present', 'absent']
|
||||
- Should the affinity group be present or absent.
|
||||
choices: [ absent, present ]
|
||||
default: present
|
||||
cluster:
|
||||
description:
|
||||
- "Name of the cluster of the affinity group."
|
||||
- Name of the cluster of the affinity group.
|
||||
description:
|
||||
description:
|
||||
- "Description of the affinity group."
|
||||
- Description of the affinity group.
|
||||
host_enforcing:
|
||||
description:
|
||||
- "If I(true) VM cannot start on host if it does not satisfy the C(host_rule)."
|
||||
- "C(This parameter is support since oVirt/RHV 4.1 version.)"
|
||||
- If I(yes) VM cannot start on host if it does not satisfy the C(host_rule).
|
||||
- This parameter is support since oVirt/RHV 4.1 version.
|
||||
type: bool
|
||||
host_rule:
|
||||
description:
|
||||
- "If I(positive) I(all) VMs in this group should run on the this host."
|
||||
- "If I(negative) I(no) VMs in this group should run on the this host."
|
||||
- "C(This parameter is support since oVirt/RHV 4.1 version.)"
|
||||
choices:
|
||||
- positive
|
||||
- negative
|
||||
- If I(positive) I(all) VMs in this group should run on the this host.
|
||||
- If I(negative) I(no) VMs in this group should run on the this host.
|
||||
- This parameter is support since oVirt/RHV 4.1 version.
|
||||
choices: [ negative, positive ]
|
||||
vm_enforcing:
|
||||
description:
|
||||
- "If I(true) VM cannot start if it does not satisfy the C(vm_rule)."
|
||||
- If I(yes) VM cannot start if it does not satisfy the C(vm_rule).
|
||||
type: bool
|
||||
vm_rule:
|
||||
description:
|
||||
- "If I(positive) I(all) VMs in this group should run on the host defined by C(host_rule)."
|
||||
- "If I(negative) I(no) VMs in this group should run on the host defined by C(host_rule)."
|
||||
- "If I(disabled) this affinity group doesn't take effect."
|
||||
choices:
|
||||
- positive
|
||||
- negative
|
||||
- disabled
|
||||
- If I(positive) I(all) VMs in this group should run on the host defined by C(host_rule).
|
||||
- If I(negative) I(no) VMs in this group should run on the host defined by C(host_rule).
|
||||
- If I(disabled) this affinity group doesn't take effect.
|
||||
choices: [ disabled, negative, positive ]
|
||||
vms:
|
||||
description:
|
||||
- "List of the VMs names, which should have assigned this affinity group."
|
||||
- List of the VMs names, which should have assigned this affinity group.
|
||||
hosts:
|
||||
description:
|
||||
- "List of the hosts names, which should have assigned this affinity group."
|
||||
- "C(This parameter is support since oVirt/RHV 4.1 version.)"
|
||||
- List of the hosts names, which should have assigned this affinity group.
|
||||
- This parameter is support since oVirt/RHV 4.1 version.
|
||||
extends_documentation_fragment: ovirt
|
||||
'''
|
||||
|
||||
|
@ -87,8 +69,8 @@ EXAMPLES = '''
|
|||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Create(if not exists) and assign affinity group to VMs vm1 and vm2 and host host1
|
||||
- ovirt_affinity_group:
|
||||
- name: Create(if not exists) and assign affinity group to VMs vm1 and vm2 and host host1
|
||||
ovirt_affinity_group:
|
||||
name: mygroup
|
||||
cluster: mycluster
|
||||
vm_enforcing: true
|
||||
|
@ -101,8 +83,8 @@ EXAMPLES = '''
|
|||
hosts:
|
||||
- host1
|
||||
|
||||
# Detach VMs from affinity group and disable VM rule:
|
||||
- ovirt_affinity_group:
|
||||
- name: Detach VMs from affinity group and disable VM rule
|
||||
ovirt_affinity_group:
|
||||
name: mygroup
|
||||
cluster: mycluster
|
||||
vm_enforcing: false
|
||||
|
@ -114,8 +96,8 @@ EXAMPLES = '''
|
|||
- host1
|
||||
- host2
|
||||
|
||||
# Remove affinity group
|
||||
- ovirt_affinity_group:
|
||||
- name: Remove affinity group
|
||||
ovirt_affinity_group:
|
||||
state: absent
|
||||
cluster: mycluster
|
||||
name: mygroup
|
||||
|
@ -245,13 +227,10 @@ class AffinityGroupsModule(BaseModule):
|
|||
def update_check(self, entity):
|
||||
assigned_vms = self.assigned_vms(entity)
|
||||
do_update = (
|
||||
equal(self.param('description'), entity.description)
|
||||
and equal(self.param('vm_enforcing'), entity.enforcing)
|
||||
and equal(
|
||||
equal(self.param('description'), entity.description) and equal(self.param('vm_enforcing'), entity.enforcing) and equal(
|
||||
self.param('vm_rule') == 'positive' if self.param('vm_rule') else None,
|
||||
entity.positive
|
||||
)
|
||||
and equal(self._vm_ids, assigned_vms)
|
||||
) and equal(self._vm_ids, assigned_vms)
|
||||
)
|
||||
# Following attributes is supported since 4.1,
|
||||
# so return if it doesn't exist:
|
||||
|
@ -262,32 +241,24 @@ class AffinityGroupsModule(BaseModule):
|
|||
return do_update and (
|
||||
equal(
|
||||
self.param('host_rule') == 'positive' if self.param('host_rule') else None,
|
||||
entity.hosts_rule.positive
|
||||
)
|
||||
and equal(self.param('host_enforcing'), entity.hosts_rule.enforcing)
|
||||
and equal(
|
||||
entity.hosts_rule.positive) and equal(self.param('host_enforcing'), entity.hosts_rule.enforcing) and equal(
|
||||
self.param('vm_rule') in ['negative', 'positive'] if self.param('vm_rule') else None,
|
||||
entity.vms_rule.enabled
|
||||
)
|
||||
and equal(self._host_ids, sorted([host.id for host in entity.hosts]))
|
||||
entity.vms_rule.enabled) and equal(self._host_ids, sorted([host.id for host in entity.hosts]))
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = ovirt_full_argument_spec(
|
||||
state=dict(
|
||||
choices=['present', 'absent'],
|
||||
default='present',
|
||||
),
|
||||
cluster=dict(default=None, required=True),
|
||||
name=dict(default=None, required=True),
|
||||
description=dict(default=None),
|
||||
vm_enforcing=dict(default=None, type='bool'),
|
||||
vm_rule=dict(default=None, choices=['positive', 'negative', 'disabled']),
|
||||
host_enforcing=dict(default=None, type='bool'),
|
||||
host_rule=dict(default=None, choices=['positive', 'negative']),
|
||||
vms=dict(default=None, type='list'),
|
||||
hosts=dict(default=None, type='list'),
|
||||
state=dict(type='str', default='present', choices=['absent', 'present']),
|
||||
cluster=dict(type='str', required=True),
|
||||
name=dict(type='str', required=True),
|
||||
description=dict(type='str'),
|
||||
vm_enforcing=dict(type='bool'),
|
||||
vm_rule=dict(type='str', choices=['disabled', 'negative', 'positive']),
|
||||
host_enforcing=dict(type='bool'),
|
||||
host_rule=dict(type='str', choices=['negative', 'positive']),
|
||||
vms=dict(type='list'),
|
||||
hosts=dict(type='list'),
|
||||
)
|
||||
module = AnsibleModule(
|
||||
argument_spec=argument_spec,
|
||||
|
|
|
@ -1,71 +1,56 @@
|
|||
#!/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/>.
|
||||
#
|
||||
|
||||
# Copyright: (c) 2017, Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_nics
|
||||
short_description: Module to manage network interfaces of Virtual Machines in oVirt/RHV
|
||||
version_added: "2.3"
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
author:
|
||||
- Ondra Machacek (@machacekondra)
|
||||
description:
|
||||
- "Module to manage network interfaces of Virtual Machines in oVirt/RHV."
|
||||
- Module to manage network interfaces of Virtual Machines in oVirt/RHV.
|
||||
options:
|
||||
name:
|
||||
description:
|
||||
- "Name of the network interface to manage."
|
||||
- Name of the network interface to manage.
|
||||
required: true
|
||||
vm:
|
||||
description:
|
||||
- "Name of the Virtual Machine to manage."
|
||||
- "You must provide either C(vm) parameter or C(template) parameter."
|
||||
- Name of the Virtual Machine to manage.
|
||||
- You must provide either C(vm) parameter or C(template) parameter.
|
||||
template:
|
||||
description:
|
||||
- "Name of the template to manage."
|
||||
- "You must provide either C(vm) parameter or C(template) parameter."
|
||||
- Name of the template to manage.
|
||||
- You must provide either C(vm) parameter or C(template) parameter.
|
||||
version_added: "2.4"
|
||||
state:
|
||||
description:
|
||||
- "Should the Virtual Machine NIC be present/absent/plugged/unplugged."
|
||||
choices: ['present', 'absent', 'plugged', 'unplugged']
|
||||
- Should the Virtual Machine NIC be present/absent/plugged/unplugged.
|
||||
choices: [ absent, plugged, present, unplugged ]
|
||||
default: present
|
||||
network:
|
||||
description:
|
||||
- "Logical network to which the VM network interface should use,
|
||||
by default Empty network is used if network is not specified."
|
||||
- Logical network to which the VM network interface should use,
|
||||
by default Empty network is used if network is not specified.
|
||||
profile:
|
||||
description:
|
||||
- "Virtual network interface profile to be attached to VM network interface."
|
||||
- Virtual network interface profile to be attached to VM network interface.
|
||||
interface:
|
||||
description:
|
||||
- "Type of the network interface."
|
||||
choices: ['virtio', 'e1000', 'rtl8139', 'pci_passthrough', 'rtl8139_virtio', 'spapr_vlan']
|
||||
default: 'virtio'
|
||||
- Type of the network interface.
|
||||
choices: [ e1000, pci_passthrough, rtl8139, rtl8139_virtio, spapr_vlan, virtio ]
|
||||
default: virtio
|
||||
mac_address:
|
||||
description:
|
||||
- "Custom MAC address of the network interface, by default it's obtained from MAC pool."
|
||||
- Custom MAC address of the network interface, by default it's obtained from MAC pool.
|
||||
extends_documentation_fragment: ovirt
|
||||
'''
|
||||
|
||||
|
@ -73,8 +58,8 @@ EXAMPLES = '''
|
|||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Add NIC to VM
|
||||
- ovirt_nics:
|
||||
- name: Add NIC to VM
|
||||
ovirt_nics:
|
||||
state: present
|
||||
vm: myvm
|
||||
name: mynic
|
||||
|
@ -83,21 +68,20 @@ EXAMPLES = '''
|
|||
profile: ovirtmgmt
|
||||
network: ovirtmgmt
|
||||
|
||||
# Plug NIC to VM
|
||||
- ovirt_nics:
|
||||
- name: Plug NIC to VM
|
||||
ovirt_nics:
|
||||
state: plugged
|
||||
vm: myvm
|
||||
name: mynic
|
||||
|
||||
# Unplug NIC from VM
|
||||
- ovirt_nics:
|
||||
- name: Unplug NIC from VM
|
||||
ovirt_nics:
|
||||
state: unplugged
|
||||
vm: myvm
|
||||
name: mynic
|
||||
|
||||
|
||||
# add NIC to template
|
||||
- ovirt_nics:
|
||||
- name: Add NIC to template
|
||||
ovirt_nics:
|
||||
auth: "{{ ovirt_auth }}"
|
||||
state: present
|
||||
template: my_template
|
||||
|
@ -106,13 +90,11 @@ EXAMPLES = '''
|
|||
profile: ovirtmgmt
|
||||
network: ovirtmgmt
|
||||
|
||||
|
||||
# Remove NIC from VM
|
||||
- ovirt_nics:
|
||||
- name: Remove NIC from VM
|
||||
ovirt_nics:
|
||||
state: absent
|
||||
vm: myvm
|
||||
name: mynic
|
||||
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
|
@ -191,22 +173,19 @@ class EntityNicsModule(BaseModule):
|
|||
|
||||
def main():
|
||||
argument_spec = ovirt_full_argument_spec(
|
||||
state=dict(
|
||||
choices=['present', 'absent', 'plugged', 'unplugged'],
|
||||
default='present'
|
||||
),
|
||||
vm=dict(required=False),
|
||||
template=dict(required=False),
|
||||
name=dict(required=True),
|
||||
interface=dict(default=None),
|
||||
profile=dict(default=None),
|
||||
network=dict(default=None),
|
||||
mac_address=dict(default=None),
|
||||
state=dict(type='str', default='present', choices=['absent', 'plugged', 'present', 'unplugged']),
|
||||
vm=dict(type='str'),
|
||||
template=dict(type='str'),
|
||||
name=dict(type='str', required=True),
|
||||
interface=dict(type='str'),
|
||||
profile=dict(type='str'),
|
||||
network=dict(type='str'),
|
||||
mac_address=dict(type='str'),
|
||||
)
|
||||
module = AnsibleModule(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
required_one_of=[['vm', 'template']]
|
||||
required_one_of=[['vm', 'template']],
|
||||
)
|
||||
check_sdk(module)
|
||||
|
||||
|
@ -249,7 +228,7 @@ def main():
|
|||
networks_service = dcs_service.service(dc.id).networks_service()
|
||||
network = next(
|
||||
(n for n in networks_service.list()
|
||||
if n.name == module.params['network']),
|
||||
if n.name == module.params['network']),
|
||||
None
|
||||
)
|
||||
if network is None:
|
||||
|
|
|
@ -1,92 +1,75 @@
|
|||
#!/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/>.
|
||||
#
|
||||
|
||||
# Copyright: (c) 2017, Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: ovirt_permissions
|
||||
short_description: "Module to manage permissions of users/groups in oVirt/RHV"
|
||||
short_description: Module to manage permissions of users/groups in oVirt/RHV
|
||||
version_added: "2.3"
|
||||
author: "Ondra Machacek (@machacekondra)"
|
||||
author:
|
||||
- Ondra Machacek (@machacekondra)
|
||||
description:
|
||||
- "Module to manage permissions of users/groups in oVirt/RHV"
|
||||
- Module to manage permissions of users/groups in oVirt/RHV.
|
||||
options:
|
||||
role:
|
||||
description:
|
||||
- "Name of the role to be assigned to user/group on specific object."
|
||||
- Name of the role to be assigned to user/group on specific object.
|
||||
default: UserRole
|
||||
state:
|
||||
description:
|
||||
- "Should the permission be present/absent."
|
||||
choices: ['present', 'absent']
|
||||
- Should the permission be present/absent.
|
||||
choices: [ absent, present ]
|
||||
default: present
|
||||
object_id:
|
||||
description:
|
||||
- "ID of the object where the permissions should be managed."
|
||||
- ID of the object where the permissions should be managed.
|
||||
object_name:
|
||||
description:
|
||||
- "Name of the object where the permissions should be managed."
|
||||
- Name of the object where the permissions should be managed.
|
||||
object_type:
|
||||
description:
|
||||
- "The object where the permissions should be managed."
|
||||
default: 'vm'
|
||||
choices: [
|
||||
'data_center',
|
||||
'cluster',
|
||||
'host',
|
||||
'storage_domain',
|
||||
'network',
|
||||
'disk',
|
||||
'vm',
|
||||
'vm_pool',
|
||||
'template',
|
||||
'cpu_profile',
|
||||
'disk_profile',
|
||||
'vnic_profile',
|
||||
'system',
|
||||
]
|
||||
- The object where the permissions should be managed.
|
||||
choices:
|
||||
- cluster
|
||||
- cpu_profile
|
||||
- data_center
|
||||
- disk
|
||||
- disk_profile
|
||||
- host
|
||||
- network
|
||||
- storage_domain
|
||||
- system
|
||||
- template
|
||||
- vm
|
||||
- vm_pool
|
||||
- vnic_profile
|
||||
default: vm
|
||||
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."
|
||||
- "Note that if user don't exist in the system this module will fail,
|
||||
you should ensure the user exists by using M(ovirt_users) module."
|
||||
- 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.
|
||||
- Note that if user does not exist in the system this module will fail,
|
||||
you should ensure the user exists by using M(ovirt_users) module.
|
||||
group_name:
|
||||
description:
|
||||
- "Name of the group to manage."
|
||||
- "Note that if group don't exist in the system this module will fail,
|
||||
you should ensure the group exists by using M(ovirt_groups) module."
|
||||
- Name of the group to manage.
|
||||
- Note that if group does not exist in the system this module will fail,
|
||||
you should ensure the group exists by using M(ovirt_groups) module.
|
||||
authz_name:
|
||||
description:
|
||||
- "Authorization provider of the user/group. In previous versions of oVirt/RHV known as domain."
|
||||
- Authorization provider of the user/group.
|
||||
required: true
|
||||
aliases: ['domain']
|
||||
aliases: [ domain ]
|
||||
namespace:
|
||||
description:
|
||||
- "Namespace of the authorization provider, where user/group resides."
|
||||
required: false
|
||||
- Namespace of the authorization provider, where user/group resides.
|
||||
extends_documentation_fragment: ovirt
|
||||
'''
|
||||
|
||||
|
@ -94,16 +77,16 @@ EXAMPLES = '''
|
|||
# Examples don't contain auth parameter for simplicity,
|
||||
# look at ovirt_auth module to see how to reuse authentication:
|
||||
|
||||
# Add user user1 from authorization provider example.com-authz
|
||||
- ovirt_permissions:
|
||||
- name: Add user user1 from authorization provider example.com-authz
|
||||
ovirt_permissions:
|
||||
user_name: user1
|
||||
authz_name: example.com-authz
|
||||
object_type: vm
|
||||
object_name: myvm
|
||||
role: UserVmManager
|
||||
|
||||
# Remove permission from user
|
||||
- ovirt_permissions:
|
||||
- name: Remove permission from user
|
||||
ovirt_permissions:
|
||||
state: absent
|
||||
user_name: user1
|
||||
authz_name: example.com-authz
|
||||
|
@ -241,35 +224,30 @@ class PermissionsModule(BaseModule):
|
|||
|
||||
def main():
|
||||
argument_spec = ovirt_full_argument_spec(
|
||||
state=dict(
|
||||
choices=['present', 'absent'],
|
||||
default='present',
|
||||
),
|
||||
role=dict(default='UserRole'),
|
||||
object_type=dict(
|
||||
default='vm',
|
||||
choices=[
|
||||
'data_center',
|
||||
'cluster',
|
||||
'host',
|
||||
'storage_domain',
|
||||
'network',
|
||||
'disk',
|
||||
'vm',
|
||||
'vm_pool',
|
||||
'template',
|
||||
'cpu_profile',
|
||||
'disk_profile',
|
||||
'vnic_profile',
|
||||
'system',
|
||||
]
|
||||
),
|
||||
authz_name=dict(required=True, aliases=['domain']),
|
||||
object_id=dict(default=None),
|
||||
object_name=dict(default=None),
|
||||
user_name=dict(rdefault=None),
|
||||
group_name=dict(default=None),
|
||||
namespace=dict(default=None),
|
||||
state=dict(type='str', default='present', choices=['absent', 'present']),
|
||||
role=dict(type='str', default='UserRole'),
|
||||
object_type=dict(type='str', default='vm',
|
||||
choices=[
|
||||
'cluster',
|
||||
'cpu_profile',
|
||||
'data_center',
|
||||
'disk',
|
||||
'disk_profile',
|
||||
'host',
|
||||
'network',
|
||||
'storage_domain',
|
||||
'system',
|
||||
'template',
|
||||
'vm',
|
||||
'vm_pool',
|
||||
'vnic_profile',
|
||||
]),
|
||||
authz_name=dict(type='str', required=True, aliases=['domain']),
|
||||
object_id=dict(type='str'),
|
||||
object_name=dict(type='str'),
|
||||
user_name=dict(type='str'),
|
||||
group_name=dict(type='str'),
|
||||
namespace=dict(type='str'),
|
||||
)
|
||||
module = AnsibleModule(
|
||||
argument_spec=argument_spec,
|
||||
|
@ -277,10 +255,7 @@ def main():
|
|||
)
|
||||
check_sdk(module)
|
||||
|
||||
if (
|
||||
(module.params['object_name'] is None and module.params['object_id'] is None)
|
||||
and module.params['object_type'] != 'system'
|
||||
):
|
||||
if (module.params['object_name'] is None and module.params['object_id'] is None) and module.params['object_type'] != 'system':
|
||||
module.fail_json(msg='"object_name" or "object_id" is required')
|
||||
|
||||
if module.params['user_name'] is None and module.params['group_name'] is None:
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -70,7 +70,6 @@ lib/ansible/modules/cloud/google/gcpubsub.py
|
|||
lib/ansible/modules/cloud/google/gcspanner.py
|
||||
lib/ansible/modules/cloud/lxc/lxc_container.py
|
||||
lib/ansible/modules/cloud/lxd/lxd_container.py
|
||||
lib/ansible/modules/cloud/misc/ovirt.py
|
||||
lib/ansible/modules/cloud/misc/rhevm.py
|
||||
lib/ansible/modules/cloud/misc/serverless.py
|
||||
lib/ansible/modules/cloud/misc/virt_net.py
|
||||
|
@ -85,11 +84,6 @@ lib/ansible/modules/cloud/openstack/os_security_group_rule.py
|
|||
lib/ansible/modules/cloud/openstack/os_server.py
|
||||
lib/ansible/modules/cloud/openstack/os_stack.py
|
||||
lib/ansible/modules/cloud/ovh/ovh_ip_loadbalancing_backend.py
|
||||
lib/ansible/modules/cloud/ovirt/_ovirt_affinity_groups.py
|
||||
lib/ansible/modules/cloud/ovirt/ovirt_affinity_group.py
|
||||
lib/ansible/modules/cloud/ovirt/ovirt_nics.py
|
||||
lib/ansible/modules/cloud/ovirt/ovirt_permissions.py
|
||||
lib/ansible/modules/cloud/ovirt/ovirt_vms.py
|
||||
lib/ansible/modules/cloud/packet/packet_sshkey.py
|
||||
lib/ansible/modules/cloud/profitbricks/profitbricks.py
|
||||
lib/ansible/modules/cloud/profitbricks/profitbricks_datacenter.py
|
||||
|
|
Loading…
Reference in a new issue