mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-06 18:50:31 -07:00
Proxmox remote pct connection (#8424)
* First Revision (squashed)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Second Revision (squashed)
* implement data_in
* Removed quot()
There is no need for quoting, exec_command gets the command already quoted with shell from Ansible
* Use shell from self._shell
* Improved error handling
* updated docs
* Use Int for Container ID
* Updated docs to include detailed description for non root usage
* Fix ansible_user var in example
* Fix become method
We need to differentiate between become method used in Proxmox and the one inside the container.
* Implement review findings
- f-Strings
- lower() when input
- yaml indent
- consistent quotes
- use to_text()
- Enhanced examples
- Ansibullbot findings
* remove ssh cache
* Ensure we delete the tempfile
* use octal mode
* Use FileLock().lock_file
* ansibullbot findings
* refactor _connect()
* Update plugins/connection/pct_remote.py
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* renamed plugin to proxmox_pct_remote
* Use ansible.builtin.ping as example
* added unit tests
* fixed bugs in close()
* catch invalid host key
* test invalid host key
* Added integration test
* cleanup
* setup test via ansible
* Revised notes based on review feedback
* Review findings
Co-authored-by: Felix Fontein <felix@fontein.de>
* gather_facts hint in example
* Update tests/integration/targets/connection_proxmox_pct_remote/aliases
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix FreeBSD, deactivate macOS
* Test and Fix: Hang on copy with empty content
---------
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit cee62a4069
)
Co-authored-by: Nils <31704359+mietzen@users.noreply.github.com>
33 lines
825 B
Bash
Executable file
33 lines
825 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# Copyright (c) 2025 Nils Stein (@mietzen) <github.nstein@mailbox.org>
|
|
# Copyright (c) 2025 Ansible Project
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# Shell script to mock proxmox pct behaviour
|
|
|
|
>&2 echo "[DEBUG] INPUT: $@"
|
|
|
|
pwd="$(pwd)"
|
|
|
|
# Get quoted parts and restore quotes
|
|
declare -a cmd=()
|
|
for arg in "$@"; do
|
|
if [[ $arg =~ [[:space:]] ]]; then
|
|
arg="'$arg'"
|
|
fi
|
|
cmd+=("$arg")
|
|
done
|
|
|
|
cmd="${cmd[@]:3}"
|
|
vmid="${@:2:1}"
|
|
>&2 echo "[INFO] MOCKING: pct ${@:1:3} ${cmd}"
|
|
tmp_dir="/tmp/ansible-remote/proxmox_pct_remote/integration_test/ct_${vmid}"
|
|
mkdir -p "$tmp_dir"
|
|
>&2 echo "[INFO] PWD: $tmp_dir"
|
|
>&2 echo "[INFO] CMD: ${cmd}"
|
|
cd "$tmp_dir"
|
|
|
|
eval "${cmd}"
|
|
|
|
cd "$pwd"
|