Commit 98fc717
perf(refhosts): parse refhosts.yml once per report, not per testplatform
refhosts_from_tp built a fresh Refhosts store via the factory on every call
(~1s ruamel parse of refhosts.yml each), and autoconnect/add_host call it once
per testplatform -- so a K-testplatform template paid ~K seconds at session
start. Reuse the already-memoized, thread-safe store from _get_refhosts_store
(the same one the product-drift check uses) so the file is parsed once and
shared. The store is read-only after build, so sharing one instance across
testplatforms and the concurrent connect_targets fan-out is safe.
Behavior is preserved: the factory funnels every resolver error into
RefhostsResolveFailedError, which the memo swallows to None, matching the old
`except RefhostsResolveFailedError: return`. One deliberate difference: a failed
build is now cached and not retried for the report's lifetime (reload to
recover) -- acceptable because resolver failures are effectively persistent and
within one autoconnect loop caching is strictly better.
Also restores static typing of the memoized store (Refhosts | None) so both
call sites are ty-checked again.
Tests: factory called once across testplatforms, a pre-built store is reused,
and the sticky-None (no-retry-after-failure) property -- all revert-sensitive.1 parent 33f4e17 commit 98fc717
3 files changed
Lines changed: 104 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
27 | 31 | | |
28 | 32 | | |
29 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
| |||
168 | 169 | | |
169 | 170 | | |
170 | 171 | | |
171 | | - | |
172 | | - | |
173 | | - | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
174 | 177 | | |
175 | 178 | | |
176 | 179 | | |
| |||
449 | 452 | | |
450 | 453 | | |
451 | 454 | | |
452 | | - | |
| 455 | + | |
453 | 456 | | |
454 | 457 | | |
455 | | - | |
456 | | - | |
457 | | - | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
458 | 463 | | |
459 | 464 | | |
460 | 465 | | |
| |||
463 | 468 | | |
464 | 469 | | |
465 | 470 | | |
466 | | - | |
467 | | - | |
468 | | - | |
469 | | - | |
| 471 | + | |
470 | 472 | | |
471 | 473 | | |
472 | 474 | | |
| |||
782 | 784 | | |
783 | 785 | | |
784 | 786 | | |
785 | | - | |
786 | | - | |
787 | | - | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
788 | 803 | | |
789 | 804 | | |
790 | 805 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
890 | 890 | | |
891 | 891 | | |
892 | 892 | | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
893 | 963 | | |
894 | 964 | | |
895 | 965 | | |
| |||
0 commit comments