2020-05-12 10:20:09 -05:00
|
|
|
#!/usr/bin/python
|
2022-07-28 09:19:14 +02:00
|
|
|
# -*- coding: utf-8 -*-
|
2020-05-12 10:20:09 -05:00
|
|
|
|
|
|
|
# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
|
2023-01-13 14:29:17 +01:00
|
|
|
DOCUMENTATION = r'''
|
2022-02-07 20:05:28 +05:30
|
|
|
---
|
2020-05-12 10:20:09 -05:00
|
|
|
module: image_info
|
2023-01-13 14:29:17 +01:00
|
|
|
short_description: Fetch images from OpenStack image (Glance) service.
|
2020-06-17 12:35:09 -05:00
|
|
|
author: OpenStack Ansible SIG
|
2020-05-12 10:20:09 -05:00
|
|
|
description:
|
2023-01-13 14:29:17 +01:00
|
|
|
- Fetch images from OpenStack image (Glance) service.
|
2020-05-12 10:20:09 -05:00
|
|
|
options:
|
2023-01-13 14:29:17 +01:00
|
|
|
name:
|
|
|
|
description:
|
|
|
|
- Name or ID of the image
|
|
|
|
type: str
|
|
|
|
aliases: ['image']
|
|
|
|
filters:
|
|
|
|
description:
|
|
|
|
- Dict of properties of the images used for query
|
|
|
|
type: dict
|
|
|
|
aliases: ['properties']
|
2020-05-12 10:20:09 -05:00
|
|
|
extends_documentation_fragment:
|
2023-01-13 14:29:17 +01:00
|
|
|
- openstack.cloud.openstack
|
2020-05-12 10:20:09 -05:00
|
|
|
'''
|
|
|
|
|
2023-01-13 14:29:17 +01:00
|
|
|
EXAMPLES = r'''
|
|
|
|
- name: Gather previously created image named image1
|
2020-05-12 10:20:09 -05:00
|
|
|
openstack.cloud.image_info:
|
2023-01-13 14:29:17 +01:00
|
|
|
cloud: devstack-admin
|
2020-05-12 10:20:09 -05:00
|
|
|
image: image1
|
|
|
|
|
2023-01-13 14:29:17 +01:00
|
|
|
- name: List all images
|
2020-05-12 10:20:09 -05:00
|
|
|
openstack.cloud.image_info:
|
|
|
|
|
2023-01-13 14:29:17 +01:00
|
|
|
- name: Retrieve and filter images
|
|
|
|
openstack.cloud.image_info:
|
2022-02-07 20:05:28 +05:30
|
|
|
filters:
|
2023-01-13 14:29:17 +01:00
|
|
|
is_protected: False
|
2020-05-12 10:20:09 -05:00
|
|
|
'''
|
|
|
|
|
2023-01-13 14:29:17 +01:00
|
|
|
RETURN = r'''
|
2022-02-07 20:05:28 +05:30
|
|
|
images:
|
2023-01-13 14:29:17 +01:00
|
|
|
description: List of dictionaries describing matching images.
|
|
|
|
returned: always
|
|
|
|
type: list
|
|
|
|
elements: dict
|
|
|
|
contains:
|
|
|
|
id:
|
|
|
|
description: Unique UUID.
|
|
|
|
type: str
|
|
|
|
name:
|
|
|
|
description: Name given to the image.
|
|
|
|
type: str
|
|
|
|
status:
|
|
|
|
description: Image status.
|
|
|
|
type: str
|
|
|
|
architecture:
|
|
|
|
description: The CPU architecture that must be supported by
|
|
|
|
the hypervisor.
|
|
|
|
type: str
|
|
|
|
created_at:
|
|
|
|
description: Image created at timestamp.
|
|
|
|
type: str
|
|
|
|
container_format:
|
|
|
|
description: Container format of the image.
|
|
|
|
type: str
|
|
|
|
direct_url:
|
|
|
|
description: URL to access the image file kept in external store.
|
|
|
|
type: str
|
|
|
|
min_ram:
|
|
|
|
description: Min amount of RAM required for this image.
|
|
|
|
type: int
|
|
|
|
disk_format:
|
|
|
|
description: Disk format of the image.
|
|
|
|
type: str
|
|
|
|
file:
|
|
|
|
description: The URL for the virtual machine image file.
|
|
|
|
type: str
|
|
|
|
has_auto_disk_config:
|
|
|
|
description: If root partition on disk is automatically resized
|
|
|
|
before the instance boots.
|
|
|
|
type: bool
|
|
|
|
hash_algo:
|
|
|
|
description: The algorithm used to compute a secure hash of the
|
|
|
|
image data.
|
|
|
|
type: str
|
|
|
|
hash_value:
|
|
|
|
description: The hexdigest of the secure hash of the image data
|
|
|
|
computed using the algorithm whose name is the value of the
|
|
|
|
os_hash_algo property.
|
|
|
|
type: str
|
|
|
|
hw_cpu_cores:
|
|
|
|
description: Used to pin the virtual CPUs (vCPUs) of instances to
|
|
|
|
the host's physical CPU cores (pCPUs).
|
|
|
|
type: str
|
|
|
|
hw_cpu_policy:
|
|
|
|
description: The hexdigest of the secure hash of the image data.
|
|
|
|
type: str
|
|
|
|
hw_cpu_sockets:
|
|
|
|
description: Preferred number of sockets to expose to the guest.
|
|
|
|
type: str
|
|
|
|
hw_cpu_thread_policy:
|
|
|
|
description: Defines how hardware CPU threads in a simultaneous
|
|
|
|
multithreading-based (SMT) architecture be used.
|
|
|
|
type: str
|
|
|
|
hw_cpu_threads:
|
|
|
|
description: The preferred number of threads to expose to the guest.
|
|
|
|
type: str
|
|
|
|
hw_disk_bus:
|
|
|
|
description: Specifies the type of disk controller to attach disk
|
|
|
|
devices to.
|
|
|
|
type: str
|
|
|
|
hw_machine_type:
|
|
|
|
description: Enables booting an ARM system using the
|
|
|
|
specified machine type.
|
|
|
|
type: str
|
|
|
|
hw_qemu_guest_agent:
|
|
|
|
description: "A string boolean, which if 'true', QEMU guest agent
|
|
|
|
will be exposed to the instance."
|
|
|
|
type: str
|
|
|
|
hw_rng_model:
|
|
|
|
description: "Adds a random-number generator device to the image's
|
|
|
|
instances."
|
|
|
|
type: str
|
|
|
|
hw_scsi_model:
|
|
|
|
description: Enables the use of VirtIO SCSI (virtio-scsi) to
|
|
|
|
provide block device access for compute instances.
|
|
|
|
type: str
|
|
|
|
hw_video_model:
|
|
|
|
description: The video image driver used.
|
|
|
|
type: str
|
|
|
|
hw_video_ram:
|
|
|
|
description: Maximum RAM for the video image.
|
|
|
|
type: str
|
|
|
|
hw_vif_model:
|
|
|
|
description: Specifies the model of virtual network interface device to
|
|
|
|
use.
|
|
|
|
type: str
|
|
|
|
hw_watchdog_action:
|
|
|
|
description: Enables a virtual hardware watchdog device that
|
|
|
|
carries out the specified action if the server hangs.
|
|
|
|
type: str
|
|
|
|
hypervisor_type:
|
|
|
|
description: The hypervisor type.
|
|
|
|
type: str
|
|
|
|
instance_type_rxtx_factor:
|
|
|
|
description: Optional property allows created servers to have a
|
|
|
|
different bandwidth cap than that defined in the network
|
|
|
|
they are attached to.
|
|
|
|
type: str
|
|
|
|
instance_uuid:
|
|
|
|
description: For snapshot images, this is the UUID of the server
|
|
|
|
used to create this image.
|
|
|
|
type: str
|
|
|
|
is_hidden:
|
|
|
|
description: Controls whether an image is displayed in the default
|
|
|
|
image-list response
|
|
|
|
type: bool
|
|
|
|
is_hw_boot_menu_enabled:
|
|
|
|
description: Enables the BIOS bootmenu.
|
|
|
|
type: bool
|
|
|
|
is_hw_vif_multiqueue_enabled:
|
|
|
|
description: Enables the virtio-net multiqueue feature.
|
|
|
|
type: bool
|
|
|
|
kernel_id:
|
|
|
|
description: The ID of an image stored in the Image service that
|
|
|
|
should be used as the kernel when booting an AMI-style
|
|
|
|
image.
|
|
|
|
type: str
|
|
|
|
locations:
|
|
|
|
description: A list of URLs to access the image file in external store.
|
|
|
|
type: str
|
|
|
|
metadata:
|
|
|
|
description: The location metadata.
|
|
|
|
type: str
|
|
|
|
needs_config_drive:
|
|
|
|
description: Specifies whether the image needs a config drive.
|
|
|
|
type: bool
|
|
|
|
needs_secure_boot:
|
|
|
|
description: Whether Secure Boot is needed.
|
|
|
|
type: bool
|
|
|
|
os_admin_user:
|
|
|
|
description: The operating system admin username.
|
|
|
|
type: str
|
|
|
|
os_command_line:
|
|
|
|
description: The kernel command line to be used by libvirt driver.
|
|
|
|
type: str
|
|
|
|
os_distro:
|
|
|
|
description: The common name of the operating system distribution
|
|
|
|
in lowercase.
|
|
|
|
type: str
|
|
|
|
os_require_quiesce:
|
|
|
|
description: If true, require quiesce on snapshot via
|
|
|
|
QEMU guest agent.
|
|
|
|
type: str
|
|
|
|
os_shutdown_timeout:
|
|
|
|
description: Time for graceful shutdown.
|
|
|
|
type: str
|
|
|
|
os_type:
|
|
|
|
description: The operating system installed on the image.
|
|
|
|
type: str
|
|
|
|
os_version:
|
|
|
|
description: The operating system version as specified by
|
|
|
|
the distributor.
|
|
|
|
type: str
|
|
|
|
owner_id:
|
|
|
|
description: The ID of the owner, or project, of the image.
|
|
|
|
type: str
|
|
|
|
ramdisk_id:
|
|
|
|
description: The ID of image stored in the Image service that should
|
|
|
|
be used as the ramdisk when booting an AMI-style image.
|
|
|
|
type: str
|
|
|
|
schema:
|
|
|
|
description: URL for the schema describing a virtual machine image.
|
|
|
|
type: str
|
|
|
|
store:
|
|
|
|
description: Glance will attempt to store the disk image data in the
|
|
|
|
backing store indicated by the value of the header.
|
|
|
|
type: str
|
|
|
|
updated_at:
|
|
|
|
description: Image updated at timestamp.
|
|
|
|
type: str
|
|
|
|
url:
|
|
|
|
description: URL to access the image file kept in external store.
|
|
|
|
type: str
|
|
|
|
virtual_size:
|
|
|
|
description: The virtual size of the image.
|
|
|
|
type: str
|
|
|
|
vm_mode:
|
|
|
|
description: The virtual machine mode.
|
|
|
|
type: str
|
|
|
|
vmware_adaptertype:
|
|
|
|
description: The virtual SCSI or IDE controller used by the
|
|
|
|
hypervisor.
|
|
|
|
type: str
|
|
|
|
vmware_ostype:
|
|
|
|
description: Operating system installed in the image.
|
|
|
|
type: str
|
|
|
|
filters:
|
|
|
|
description: Additional properties associated with the image.
|
|
|
|
type: dict
|
|
|
|
min_disk:
|
|
|
|
description: Min amount of disk space required for this image.
|
|
|
|
type: int
|
|
|
|
is_protected:
|
|
|
|
description: Image protected flag.
|
|
|
|
type: bool
|
|
|
|
checksum:
|
|
|
|
description: Checksum for the image.
|
|
|
|
type: str
|
|
|
|
owner:
|
|
|
|
description: Owner for the image.
|
|
|
|
type: str
|
|
|
|
visibility:
|
|
|
|
description: Indicates who has access to the image.
|
|
|
|
type: str
|
|
|
|
size:
|
|
|
|
description: Size of the image.
|
|
|
|
type: int
|
|
|
|
tags:
|
|
|
|
description: List of tags assigned to the image
|
|
|
|
type: list
|
2020-05-12 10:20:09 -05:00
|
|
|
'''
|
2023-01-13 14:29:17 +01:00
|
|
|
|
2021-02-02 15:07:59 +01:00
|
|
|
from ansible_collections.openstack.cloud.plugins.module_utils.openstack import OpenStackModule
|
2020-05-12 10:20:09 -05:00
|
|
|
|
|
|
|
|
2021-02-02 15:07:59 +01:00
|
|
|
class ImageInfoModule(OpenStackModule):
|
|
|
|
|
|
|
|
argument_spec = dict(
|
2022-07-27 12:39:44 +02:00
|
|
|
filters=dict(type='dict', aliases=['properties']),
|
2023-01-13 14:29:17 +01:00
|
|
|
name=dict(aliases=['image']),
|
2020-05-12 10:20:09 -05:00
|
|
|
)
|
2023-01-13 14:29:17 +01:00
|
|
|
|
2021-08-16 13:21:27 +03:00
|
|
|
module_kwargs = dict(
|
|
|
|
supports_check_mode=True
|
|
|
|
)
|
2021-02-02 15:07:59 +01:00
|
|
|
|
|
|
|
def run(self):
|
2023-01-13 14:29:17 +01:00
|
|
|
kwargs = dict((k, self.params[k])
|
|
|
|
for k in ['filters']
|
|
|
|
if self.params[k] is not None)
|
|
|
|
|
|
|
|
name_or_id = self.params['name']
|
|
|
|
if name_or_id is not None:
|
|
|
|
kwargs['name_or_id'] = name_or_id
|
|
|
|
|
|
|
|
self.exit(changed=False,
|
|
|
|
images=[i.to_dict(computed=False)
|
|
|
|
for i in self.conn.search_images(**kwargs)])
|
2021-02-02 15:07:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
module = ImageInfoModule()
|
|
|
|
module()
|
2020-05-12 10:20:09 -05:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|