Skip to content

Conversation

@happz
Copy link
Contributor

@happz happz commented Dec 17, 2025

TL;DR: guest fact discovery now runs as a single remote command, whose
output is then parsed into values of individual facts.

  • Each fact attribute is now defined with a descriptor (see [1]). It
    keeps the proper type annotation, but we can attach more information.
  • Each probe is now a shell script snippet, and is attached to its
    owning fact.
  • Snippets are collected, joined, and the resulting script is executed.
    GuestFacts then processes the output, delivers discovered values to
    the right attributes.
  • No Python code in probes, custom Python code to handle decoding of the
    script output fully supported (and used, see package manager facts).

For the tmt code, nothing changes, GuestFacts API remains the same.

[1] https://docs.python.org/3/howto/descriptor.html

Pull Request Checklist

  • implement the feature
  • write the documentation

@happz happz added this to planning Dec 17, 2025
@happz happz added step | provision Stuff related to the provision step ci | full test Pull request is ready for the full test execution labels Dec 17, 2025
@github-project-automation github-project-automation bot moved this to backlog in planning Dec 17, 2025
@happz
Copy link
Contributor Author

happz commented Dec 17, 2025

Blocked on #4443

@happz happz force-pushed the guest-facts-discovery-single-script branch from 518614c to 4bde734 Compare December 30, 2025 21:50
@happz happz moved this from backlog to implement in planning Dec 30, 2025
happz added 4 commits January 5, 2026 14:28
TL;DR: guest fact discovery now runs as a single remote command, whose
output is then parsed into values of individual facts.

* Each fact attribute is now defined with a descriptor (see [1]). It
  keeps the proper type annotation, but we can attach more information.
* Each probe is now a shell script snippet, and is attached to its
  owning fact.
* Snippets are collected, joined, and the resulting script is executed.
  `GuestFacts` then processes the output, delivers discovered values to
  the right attributes.
* No Python code in probes, custom Python code to handle decoding of the
  script output fully supported (and used, see package manager facts).

For the tmt code, nothing changes, `GuestFacts` API remains the same.

[1] https://docs.python.org/3/howto/descriptor.html
@happz happz force-pushed the guest-facts-discovery-single-script branch from 4bde734 to 51f8a18 Compare January 5, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci | full test Pull request is ready for the full test execution step | provision Stuff related to the provision step

Projects

Status: implement

Development

Successfully merging this pull request may close these issues.

2 participants