#!/usr/bin/python # coding: utf-8 -*- # Copyright (c) 2023, Pavel Dostal <@pdostal> # 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 DOCUMENTATION = r''' module: podman_runlabel short_description: Run given label from given image author: Pavel Dostal (@pdostal) description: - podman container runlabel runs selected label from given image options: image: description: - Image to get the label from. type: str required: true label: description: - Label to run. type: str required: true executable: description: - Path to C(podman) executable if it is not in the C($PATH) on the machine running C(podman) default: 'podman' type: str requirements: - "Podman installed on host" ''' RETURN = ''' ''' EXAMPLES = ''' # What modules does for example - containers.podman.podman_runlabel: image: docker.io/continuumio/miniconda3 label: INSTALL ''' from ansible.module_utils.basic import AnsibleModule # noqa: E402 def runlabel(module, executable): changed = False command = [executable, 'container', 'runlabel'] command.append(module.params['label']) command.append(module.params['image']) rc, out, err = module.run_command(command) if rc == 0: changed = True else: module.fail_json(msg="Error running the runlabel from image %s: %s" % ( module.params['image'], err)) return changed, out, err def main(): module = AnsibleModule( argument_spec=dict( image=dict(type='str', required=True), label=dict(type='str', required=True), executable=dict(type='str', default='podman') ), supports_check_mode=False, ) executable = module.get_bin_path(module.params['executable'], required=True) changed, out, err = runlabel(module, executable) results = { "changed": changed, "stdout": out, "stderr": err } module.exit_json(**results) if __name__ == '__main__': main()