1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-04-21 19:29:05 +00:00
Commit graph

20 commits

Author SHA1 Message Date
Martin Schürrer
df252e5fab
incus, machinectl, run0 - fix become over pty connections (#11771)
* incus, machinectl, run0 - fix become over pty connections

Four small fixes across three plugins, all discovered while trying to
use community.general.machinectl (and later community.general.run0)
as become methods over the community.general.incus connection.

Core bug: machinectl and run0 both set require_tty = True, but the
incus connection plugin was ignoring that hint and invoking
'incus exec' without -t. Honor require_tty by passing -t, mirroring
what the OpenSSH plugin does with -tt.

Once the pty is in place, both become plugins emit terminal control
sequences (window-title OSC, ANSI reset) around the child command
that land in captured stdout alongside the module JSON and trip the
result parser with "Module invocation had junk after the JSON data".
Suppress that decoration at the source by prefixing the constructed
shell command with SYSTEMD_COLORS=0. TERM=dumb would work too but
has a wider blast radius (it also affects interactive tools inside
the become-user session); SYSTEMD_COLORS is the documented
systemd-scoped knob.

run0 was also missing pipelining = False. When run0 is used over a
connection that honors require_tty, ansible's pipelining sends the
module source on stdin to remote python3, which cannot be forwarded
cleanly through the pty chain and hangs indefinitely. Disable
pipelining the same way community.general.machinectl already does.

Also add tests/unit/plugins/become/test_machinectl.py mirroring the
existing test_run0.py. machinectl had no unit test coverage before,
which is why CI did not catch the SYSTEMD_COLORS=0 prefix change
when the equivalent run0 change broke test_run0_basic/test_run0_flags.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update changelogs/fragments/11771-incus-machinectl-run0-become-pty.yml

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-04-15 17:47:09 +02:00
Alexei Znamensky
e790b95067
incus connection: fix regex (#11347)
* incus connection: fix regex

* updates

* Apply suggestions from code review

* expand regexp capture

* add changelog frag

* Update plugins/connection/incus.py

* split arguments after command option

* Update plugins/connection/incus.py

* remove *() and split from the last command

* add tests, make small adjustments

* remove redundant strip()

* add more tests

* adjusted changelog fragment
2026-01-09 21:07:31 +01:00
Felix Fontein
236b9c0e04
Sort imports with ruff check --fix (#11400)
Sort imports with ruff check --fix.
2026-01-09 07:40:58 +01:00
Alexei Znamensky
61d794f171
incus conn plugin: improve readability (was ruff: set target-python 3.7) (#11346)
* incus connection plugin: improve readability

* add changelog frag

* Update plugins/connection/incus.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/connection/incus.py

* Update plugins/connection/incus.py

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-12-31 11:27:49 +13:00
Marc Olivier Bergeron
22a4f8e272
Added support for Windows VM with Incus connection. (#11199)
* Added support for Windows VM with Incus connection.

* Update changelogs/fragments/11199-incus-windows.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Attempt to fix the argument splitting.

* Only split on the first occurrence of the command argument

* Applying nox

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-11-29 15:18:02 +01:00
Felix Fontein
340ff8586d Reformat everything. 2025-11-01 13:46:53 +01:00
Felix Fontein
74c2c804e5
Cleanup: use super() instead of super(__class__, self) (#11016)
* Address UP008: Use super() instead of super(__class__, self).

* Linting.
2025-10-30 20:17:26 +01:00
Felix Fontein
6088b0cff5
CI: add type checking (#10997)
* Set up type checking with mypy.

* Make mypy pass.

* Use list() instead of sorted().
2025-10-29 17:13:38 +00:00
Felix Fontein
8f8a0e1d7c
Fix __future__ imports, __metaclass__ = type, and remove explicit UTF-8 encoding statement for Python files (#10886)
* Adjust all __future__ imports:

for i in $(grep -REl "__future__.*absolute_import" plugins/ tests/); do
  sed -e 's/from __future__ import .*/from __future__ import annotations/g' -i $i;
done

* Remove all UTF-8 encoding specifications for Python source files:

for i in $(grep -REl '[-][*]- coding: utf-8 -[*]-' plugins/ tests/); do
  sed -e '/^# -\*- coding: utf-8 -\*-/d' -i $i;
done

* Remove __metaclass__ = type:

for i in $(grep -REl '__metaclass__ = type' plugins/ tests/); do
  sed -e '/^__metaclass__ = type/d' -i $i;
done
2025-10-10 19:52:04 +02:00
Felix Fontein
47e8a3c193
ansible-core 2.20: avoid deprecated functionality (#10687)
Avoid deprecated functionality.
2025-08-18 06:25:23 +02:00
Stéphane Graber
4195cbb364
incus_connection: Improve error handling (#10349)
Related to #10344

This tweaks the error handling logic to work with more versions of Incus
as well as catching some of the project and instance access errors.

The full context (instance name, project name and remote name) is now
included so that the user can easily diagnose access problems.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
2025-07-07 20:52:55 +02:00
Alexei Znamensky
580ac1e30d
fix style in plugins (#10302)
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-02 01:15:50 +12:00
Peter Siegel
94e1511005
incus_connection: Allow non-root users to connect to an instance (#9743)
* feat: add remote_user option to incus connection

* feat: add changelog fragment

* fix: formatting
2025-02-17 07:41:17 +01:00
Alexei Znamensky
bd864c45ff
connection/inventory: adjust import __future__ for Python3 (#9584)
* connection/inventory: adjust import __future__ for Python3

* add changelog frag

* remove metaclass

* adjust chglog
2025-01-20 19:36:29 +01:00
Alexei Znamensky
040cd0ca50
normalize docs in cache/connection plugins (#9453)
Normalize doc blocks for plugins
2024-12-29 13:34:33 +01:00
Felix Fontein
2203560867
plugins: replace to_native(), to_text(), str() with str() where possible or leave it away in f-string formatting (#9379)
* Replace to_native(), to_text(), str() with str() where possible or leave it away in f-string formatting.

* Improve formulation.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* Use more f-strings.

* Remove unicode prefix for strings.

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2024-12-28 22:47:18 +01:00
Alexei Znamensky
d539b00d4c
connection plugins: use f-strings (#9322)
* connection plugins: use f-strings

* add changelog frag
2024-12-24 12:00:19 +01:00
Felix Fontein
ce65eb8736
Type options of connection plugins (#8627)
Type options of connection plugins.
2024-07-21 21:04:53 +02:00
Travis McCollum
44028060c3
Fix: incus connection plugin treats inventory_hostname incorrectly in remote config (#7875)
* Fixes inventory_hostname treatment as a litteral instead of inventory_hostname variable. Similar problem fixed in LXD: https://github.com/ansible-collections/community.general/pull/4912

* changelog for upsream

* Update changelogs/fragments/7874-incus_connection_treats_inventory_hostname_as_literal_in_remotes.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: travis <travis@cypressMini.local>
Co-authored-by: Felix Fontein <felix@fontein.de>
2024-01-23 07:18:25 +01:00
Stéphane Graber
6d74e0c640
Introduce an Incus connection plugin (#7726)
* plugins/connection/incus: Introduce new plugin

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>

* BOTMETA: Add incus connection plugin

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>

* tests/integration: Add connection_incus test

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>

---------

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
2023-12-28 08:32:31 +01:00