atex 2.0.dev1__tar.gz → 2.0.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. {atex-2.0.dev1 → atex-2.0.dev2}/PKG-INFO +1 -1
  2. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/shvirt/common.py +1 -1
  3. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/virt/install.py +0 -1
  4. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/shvirt/shvirt.py +17 -8
  5. {atex-2.0.dev1 → atex-2.0.dev2}/pyproject.toml +1 -1
  6. {atex-2.0.dev1 → atex-2.0.dev2}/.claude/CLAUDE.md +0 -0
  7. {atex-2.0.dev1 → atex-2.0.dev2}/.editorconfig +0 -0
  8. {atex-2.0.dev1 → atex-2.0.dev2}/.github/pull_request_template.md +0 -0
  9. {atex-2.0.dev1 → atex-2.0.dev2}/.github/scripts/pdoc/patch_pdoc.sh +0 -0
  10. {atex-2.0.dev1 → atex-2.0.dev2}/.github/scripts/pdoc/post_process_repo.sh +0 -0
  11. {atex-2.0.dev1 → atex-2.0.dev2}/.github/scripts/pdoc/prepare_templates.sh +0 -0
  12. {atex-2.0.dev1 → atex-2.0.dev2}/.github/workflows/pages.yaml +0 -0
  13. {atex-2.0.dev1 → atex-2.0.dev2}/.github/workflows/self-tests.yaml +0 -0
  14. {atex-2.0.dev1 → atex-2.0.dev2}/.github/workflows/style.yaml +0 -0
  15. {atex-2.0.dev1 → atex-2.0.dev2}/.gitignore +0 -0
  16. {atex-2.0.dev1 → atex-2.0.dev2}/AGENTS.md +0 -0
  17. {atex-2.0.dev1 → atex-2.0.dev2}/API_RULES.md +0 -0
  18. {atex-2.0.dev1 → atex-2.0.dev2}/COPYING.txt +0 -0
  19. {atex-2.0.dev1 → atex-2.0.dev2}/DEVEL.md +0 -0
  20. {atex-2.0.dev1 → atex-2.0.dev2}/README.md +0 -0
  21. {atex-2.0.dev1 → atex-2.0.dev2}/atex/__init__.py +0 -0
  22. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/README.md +0 -0
  23. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/__init__.py +0 -0
  24. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/jsonl/README.md +0 -0
  25. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/jsonl/__init__.py +0 -0
  26. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/jsonl/jsonl.py +0 -0
  27. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/multi/README.md +0 -0
  28. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/multi/__init__.py +0 -0
  29. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/multi/multi.py +0 -0
  30. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/reportportal/README.md +0 -0
  31. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/reportportal/__init__.py +0 -0
  32. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/reportportal/api.py +0 -0
  33. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/reportportal/reportportal.py +0 -0
  34. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/yamld/README.md +0 -0
  35. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/yamld/__init__.py +0 -0
  36. {atex-2.0.dev1 → atex-2.0.dev2}/atex/aggregator/yamld/yamld.py +0 -0
  37. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/README.md +0 -0
  38. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/__init__.py +0 -0
  39. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/fmf.py +0 -0
  40. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/reportportal.py +0 -0
  41. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/shvirt/__init__.py +0 -0
  42. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/shvirt/install.py +0 -0
  43. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/shvirt/reserve.py +0 -0
  44. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/testingfarm.py +0 -0
  45. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/virt/__init__.py +0 -0
  46. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/virt/kickstart.py +0 -0
  47. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/virt/ks.cfg +0 -0
  48. {atex-2.0.dev1 → atex-2.0.dev2}/atex/cli/virt/reserve.py +0 -0
  49. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/README.md +0 -0
  50. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/__init__.py +0 -0
  51. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/local/README.md +0 -0
  52. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/local/__init__.py +0 -0
  53. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/local/local.py +0 -0
  54. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/podman/README.md +0 -0
  55. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/podman/__init__.py +0 -0
  56. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/podman/podman.py +0 -0
  57. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/ssh/README.md +0 -0
  58. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/ssh/__init__.py +0 -0
  59. {atex-2.0.dev1 → atex-2.0.dev2}/atex/connection/ssh/ssh.py +0 -0
  60. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/README.md +0 -0
  61. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/__init__.py +0 -0
  62. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/beakerlib/README.md +0 -0
  63. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/beakerlib/__init__.py +0 -0
  64. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/beakerlib/beakerlib.py +0 -0
  65. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/command/README.md +0 -0
  66. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/command/__init__.py +0 -0
  67. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/command/command.py +0 -0
  68. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/README.md +0 -0
  69. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/RESULTS.md +0 -0
  70. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/TEST_CONTROL.md +0 -0
  71. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/__init__.py +0 -0
  72. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/discover.py +0 -0
  73. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/duration.py +0 -0
  74. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/fmf.py +0 -0
  75. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/metadata.py +0 -0
  76. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/reporter.py +0 -0
  77. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/scripts.py +0 -0
  78. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/test-wrapper +0 -0
  79. {atex-2.0.dev1 → atex-2.0.dev2}/atex/executor/fmf/testcontrol.py +0 -0
  80. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/README.md +0 -0
  81. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/__init__.py +0 -0
  82. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/adhoc/README.md +0 -0
  83. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/adhoc/__init__.py +0 -0
  84. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/adhoc/adhoc.py +0 -0
  85. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/adhoc/mixins.py +0 -0
  86. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/simple/README.md +0 -0
  87. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/simple/__init__.py +0 -0
  88. {atex-2.0.dev1 → atex-2.0.dev2}/atex/orchestrator/simple/simple.py +0 -0
  89. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/README.md +0 -0
  90. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/__init__.py +0 -0
  91. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/anyconn/README.md +0 -0
  92. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/anyconn/__init__.py +0 -0
  93. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/anyconn/anyconn.py +0 -0
  94. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/local/README.md +0 -0
  95. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/local/__init__.py +0 -0
  96. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/local/local.py +0 -0
  97. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/podman/README.md +0 -0
  98. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/podman/__init__.py +0 -0
  99. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/podman/podman.py +0 -0
  100. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/podman/systemd.py +0 -0
  101. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/podman/utils.py +0 -0
  102. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/shvirt/PROTOCOL.md +0 -0
  103. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/shvirt/README.md +0 -0
  104. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/shvirt/SERVER.md +0 -0
  105. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/shvirt/__init__.py +0 -0
  106. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/shvirt/atex-virt-helper +0 -0
  107. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/tempvirt/README.md +0 -0
  108. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/tempvirt/__init__.py +0 -0
  109. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/tempvirt/tempvirt.py +0 -0
  110. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/tempvirt/utils.py +0 -0
  111. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/testingfarm/README.md +0 -0
  112. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/testingfarm/__init__.py +0 -0
  113. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/testingfarm/api.py +0 -0
  114. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/testingfarm/cleaning.sh +0 -0
  115. {atex-2.0.dev1 → atex-2.0.dev2}/atex/provisioner/testingfarm/testingfarm.py +0 -0
  116. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/README.md +0 -0
  117. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/__init__.py +0 -0
  118. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/dedent.py +0 -0
  119. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/loggers.py +0 -0
  120. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/named_mapping.py +0 -0
  121. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/nonblock_line_reader.py +0 -0
  122. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/null_logger.py +0 -0
  123. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/path.py +0 -0
  124. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/ssh.py +0 -0
  125. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/subprocess.py +0 -0
  126. {atex-2.0.dev1 → atex-2.0.dev2}/atex/util/threads.py +0 -0
  127. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/conftest.py +0 -0
  128. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/shared.py +0 -0
  129. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/test_jsonl.py +0 -0
  130. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/test_jsonl_gzip.py +0 -0
  131. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/test_jsonl_lzma.py +0 -0
  132. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/test_multi.py +0 -0
  133. {atex-2.0.dev1 → atex-2.0.dev2}/tests/aggregator/test_yamld.py +0 -0
  134. {atex-2.0.dev1 → atex-2.0.dev2}/tests/conftest.py +0 -0
  135. {atex-2.0.dev1 → atex-2.0.dev2}/tests/connection/test_ssh.py +0 -0
  136. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/conftest.py +0 -0
  137. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/libraries/.fmf/version +0 -0
  138. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/libraries/main.fmf +0 -0
  139. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/libraries/rlimport.sh +0 -0
  140. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/libraries/rlimport_all.sh +0 -0
  141. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/reboot/.fmf/version +0 -0
  142. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/reboot/main.fmf +0 -0
  143. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/reboot/reboot.sh +0 -0
  144. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/reboot/reboot_fail.sh +0 -0
  145. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/reboot/reboot_noend.sh +0 -0
  146. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/reboot/reboot_rlrun.sh +0 -0
  147. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/results/.fmf/version +0 -0
  148. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/results/main.fmf +0 -0
  149. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/results/report_result.sh +0 -0
  150. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/results/submit_log.sh +0 -0
  151. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/sanity/.fmf/version +0 -0
  152. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/sanity/fallback_status.sh +0 -0
  153. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/fmf_trees/sanity/main.fmf +0 -0
  154. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/test_libraries.py +0 -0
  155. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/test_reboot.py +0 -0
  156. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/test_results.py +0 -0
  157. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/beakerlib/test_sanity.py +0 -0
  158. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/command/conftest.py +0 -0
  159. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/command/test_command.py +0 -0
  160. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/conftest.py +0 -0
  161. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/conftest.py +0 -0
  162. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/cwd/.fmf/version +0 -0
  163. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/cwd/file_in_fmfdir +0 -0
  164. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/cwd/main.fmf +0 -0
  165. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/cwd/subdir/file_in_subdir +0 -0
  166. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/cwd/subdir/main.fmf +0 -0
  167. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/.fmf/version +0 -0
  168. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/extlib/.fmf/version +0 -0
  169. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/extlib/extfunc/main.fmf +0 -0
  170. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/extlib/main.fmf +0 -0
  171. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/main.fmf +0 -0
  172. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/mylib/main.fmf +0 -0
  173. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/discover/subdir/main.fmf +0 -0
  174. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/env/.fmf/version +0 -0
  175. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/env/main.fmf +0 -0
  176. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/.fmf/version +0 -0
  177. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/adjusted.fmf +0 -0
  178. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/disabled.fmf +0 -0
  179. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/environment.fmf +0 -0
  180. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/filters.fmf +0 -0
  181. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/inherit/child/main.fmf +0 -0
  182. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/inherit/main.fmf +0 -0
  183. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/manual.fmf +0 -0
  184. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/nontest.fmf +0 -0
  185. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/plans/filtered.fmf +0 -0
  186. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/plans/with_env.fmf +0 -0
  187. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/simple/main.fmf +0 -0
  188. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/story.fmf +0 -0
  189. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/metadata/virtual.fmf +0 -0
  190. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/misc/.fmf/version +0 -0
  191. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/misc/main.fmf +0 -0
  192. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/pkgs/.fmf/version +0 -0
  193. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/pkgs/main.fmf +0 -0
  194. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/pty/.fmf/version +0 -0
  195. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/pty/main.fmf +0 -0
  196. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/reboot/.fmf/version +0 -0
  197. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/reboot/main.fmf +0 -0
  198. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/results/.fmf/version +0 -0
  199. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/results/functions +0 -0
  200. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/results/main.fmf +0 -0
  201. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/results/randfile +0 -0
  202. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/user/.fmf/version +0 -0
  203. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/fmf_trees/user/main.fmf +0 -0
  204. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_cwd.py +0 -0
  205. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_discover.py +0 -0
  206. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_env.py +0 -0
  207. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_metadata.py +0 -0
  208. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_misc.py +0 -0
  209. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_pkgs.py +0 -0
  210. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_pty.py +0 -0
  211. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_reboot.py +0 -0
  212. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_results.py +0 -0
  213. {atex-2.0.dev1 → atex-2.0.dev2}/tests/executor/fmf/test_user.py +0 -0
  214. {atex-2.0.dev1 → atex-2.0.dev2}/tests/orchestrator/conftest.py +0 -0
  215. {atex-2.0.dev1 → atex-2.0.dev2}/tests/orchestrator/test_adhoc.py +0 -0
  216. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/shared.py +0 -0
  217. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/test_anyconn.py +0 -0
  218. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/test_local.py +0 -0
  219. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/test_podman.py +0 -0
  220. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/test_podman_systemd.py +0 -0
  221. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/test_tempvirt.py +0 -0
  222. {atex-2.0.dev1 → atex-2.0.dev2}/tests/provisioner/test_testingfarm.py +0 -0
  223. {atex-2.0.dev1 → atex-2.0.dev2}/tests/testutil/__init__.py +0 -0
  224. {atex-2.0.dev1 → atex-2.0.dev2}/tests/testutil/ssh.py +0 -0
  225. {atex-2.0.dev1 → atex-2.0.dev2}/tests/testutil/timeout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: atex
3
- Version: 2.0.dev1
3
+ Version: 2.0.dev2
4
4
  Summary: Ad-hoc Test EXecution
5
5
  Project-URL: Homepage, https://github.com/RHSecurityCompliance/atex
6
6
  License-Expression: GPL-3.0-or-later
@@ -13,7 +13,7 @@ def make_helper_cmd(args):
13
13
  "ssh",
14
14
  "-oLogLevel=ERROR",
15
15
  "-oStrictHostKeyChecking=no", "-oUserKnownHostsFile=/dev/null",
16
- "-oConnectionAttempts=3", "-oServerAliveCountMax=4", "-oServerAliveInterval=5",
16
+ "-oConnectionAttempts=3", "-oServerAliveCountMax=10", "-oServerAliveInterval=30",
17
17
  "-oTCPKeepAlive=no", "-oEscapeChar=none", "-oRequestTTY=no",
18
18
  f"-oIdentityFile={str(Path(args.helper_sshkey).absolute())}",
19
19
  f"-oUser={args.helper_user}", f"-oHostname={args.helper_host}",
@@ -129,7 +129,6 @@ def install(args):
129
129
  "--graphics", "none",
130
130
  "--console", "pty",
131
131
  "--rng", "/dev/urandom",
132
- "--os-variant", "rhel8-unknown",
133
132
  "--extra-args", (
134
133
  "brltty=no " # avoid heavy console spam on missing devices
135
134
  "mitigations=off " # make things a bit faster during install
@@ -347,11 +347,22 @@ class SharedVirtProvisioner(Provisioner):
347
347
  else:
348
348
  break
349
349
 
350
- self.logger.debug(f"adding {remote}")
350
+ # .stop() or .clear() was called while we were reserving,
351
+ # release the just-reserved Remote
352
+ abort = False
351
353
  with self._lock:
352
- self._remotes.add(remote)
353
- self._reserving_remotes.add(remote)
354
- self._to_reserve -= 1
354
+ if self._to_reserve <= 0:
355
+ abort = True
356
+ else:
357
+ self._to_reserve -= 1
358
+ self._remotes.add(remote)
359
+ self._reserving_remotes.add(remote)
360
+ if abort:
361
+ self.logger.debug(f"releasing unrequested {remote}")
362
+ remote.release()
363
+ continue
364
+
365
+ self.logger.debug(f"created new {remote}")
355
366
  self._reserving_events.release(1)
356
367
 
357
368
  # delay for reserve_delay before reserving more
@@ -470,10 +481,8 @@ class SharedVirtProvisioner(Provisioner):
470
481
  return None
471
482
 
472
483
  def clear(self):
473
- # if there's a reservation in progress, it will lower to_reserve
474
- # to -1, but that's fine because the next .provision() will increase
475
- # it back to >= 0 and a follow-up .get_remote() will get the one
476
- # Remote that was reserved before
484
+ # any reservation in progress will be released, not returned
485
+ # via .get_remote(), when it completes
477
486
  with self._lock:
478
487
  self._to_reserve = 0
479
488
 
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
  name = "atex"
7
7
  description = "Ad-hoc Test EXecution"
8
8
  readme = "README.md"
9
- version = "2.0.dev1"
9
+ version = "2.0.dev2"
10
10
  license = "GPL-3.0-or-later"
11
11
  requires-python = ">= 3.12"
12
12
  dependencies = [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes