Commit b0b713f
authored
Add the background and foreground mode for runners (flagos-ai#1134)
### PR Category
<!-- One of [ Train | Inference | Compress | Serve | RL | Core |
Hardware | CICD | Tools | Others ] -->
Core
### PR Types
<!-- One of [ User Experience | New Features | Bug Fixes | Improvements
| Performance | Breaking Change| Deprecations | Test Case | Docs |
Others ] -->
Improvements
### PR Description
<!-- Describe what you’ve done -->
This pull request refactors how test/background execution is handled in
the `flagscale` runner and its backends. The main change is the removal
of the `with_test` parameter in favor of a unified `background` flag,
simplifying script generation and making execution behavior more
consistent across different backends. Additionally, the foreground
execution logic is improved to use `tee` for real-time output streaming
and better error handling.
Key changes include:
**Unified Execution Control and API Simplification:**
- Removed the `with_test` parameter from all backend
`generate_run_script` methods and replaced it with a single `background`
parameter, standardizing how foreground/background execution is
specified throughout the codebase.
[[1]](diffhunk://#diff-bfd13ebd35f064c032620db5685d478276b27ebfbb251bc2062ae00f151e0e20L139-R139)
[[2]](diffhunk://#diff-631edcb28a8f12e6d60166e341b21846774b505e6413603fa05b2c7a42e44b25L39-R39)
[[3]](diffhunk://#diff-4dc79b3be860d48c2997c3532bd0d494700d921cb5322aa1a37fdd9f9d73d728L74-R74)
[[4]](diffhunk://#diff-6016265db35be235693fbe7e8fd21914c73f72a71c2d136f5cdc756eaa9d9302L150-R150)
[[5]](diffhunk://#diff-ba3e05e32ab54259c27405787a43efee535c22c1ff26413775c1fbe50c5ff0f7L152-R152)
[[6]](diffhunk://#diff-be8844e4e44f2a3baf2831150b013f9cba6051a21f4ded2adcd33de2b187bf40L63-R63)
[[7]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L370-R370)
[[8]](diffhunk://#diff-d8e24839736a7e8e228cd881f20818f23584d1b8ca510f318653403d23421ee3L36-R36)
**Improved Foreground Execution Output Handling:**
- Changed foreground execution in generated run scripts to use `set -o
pipefail` and pipe output through `tee -a` to the log file, ensuring
real-time output streaming and improved error propagation.
[[1]](diffhunk://#diff-bfd13ebd35f064c032620db5685d478276b27ebfbb251bc2062ae00f151e0e20L196-R202)
[[2]](diffhunk://#diff-631edcb28a8f12e6d60166e341b21846774b505e6413603fa05b2c7a42e44b25L111-R116)
[[3]](diffhunk://#diff-4dc79b3be860d48c2997c3532bd0d494700d921cb5322aa1a37fdd9f9d73d728L116-R122)
[[4]](diffhunk://#diff-6016265db35be235693fbe7e8fd21914c73f72a71c2d136f5cdc756eaa9d9302L353-R354)
[[5]](diffhunk://#diff-ba3e05e32ab54259c27405787a43efee535c22c1ff26413775c1fbe50c5ff0f7L388-R389)
[[6]](diffhunk://#diff-be8844e4e44f2a3baf2831150b013f9cba6051a21f4ded2adcd33de2b187bf40L115-R119)
[[7]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L407-R413)
[[8]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L598-R595)
[[9]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L980-R978)
[[10]](diffhunk://#diff-d8e24839736a7e8e228cd881f20818f23584d1b8ca510f318653403d23421ee3L108-R113)
**Launcher Refactoring:**
- Updated launcher methods (`launcher_cloud.py` and `launcher_ssh.py`)
to use the new `background` parameter instead of `with_test`, aligning
their APIs with backend changes and clarifying execution intent.
[[1]](diffhunk://#diff-1c2c242252fa9e9bfec772758217afdbd3a99097593b3882ab8e157c8f449e21L32-R48)
[[2]](diffhunk://#diff-1c2c242252fa9e9bfec772758217afdbd3a99097593b3882ab8e157c8f449e21L70-R70)
[[3]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1L144-R147)
[[4]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1L169-R172)
[[5]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1L199-R202)
[[6]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1L270-R273)
[[7]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1L281-R288)
**Code Clean-up:**
- Removed all logic branches and code paths related to `with_test`,
reducing complexity and eliminating redundant code.
[[1]](diffhunk://#diff-bfd13ebd35f064c032620db5685d478276b27ebfbb251bc2062ae00f151e0e20L196-R202)
[[2]](diffhunk://#diff-631edcb28a8f12e6d60166e341b21846774b505e6413603fa05b2c7a42e44b25L111-R116)
[[3]](diffhunk://#diff-4dc79b3be860d48c2997c3532bd0d494700d921cb5322aa1a37fdd9f9d73d728L116-R122)
[[4]](diffhunk://#diff-6016265db35be235693fbe7e8fd21914c73f72a71c2d136f5cdc756eaa9d9302L353-R354)
[[5]](diffhunk://#diff-ba3e05e32ab54259c27405787a43efee535c22c1ff26413775c1fbe50c5ff0f7L388-R389)
[[6]](diffhunk://#diff-be8844e4e44f2a3baf2831150b013f9cba6051a21f4ded2adcd33de2b187bf40L115-R119)
[[7]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L407-R413)
[[8]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L598-R595)
[[9]](diffhunk://#diff-5bca94ed0f2b711b68873de0fc56e2e67a70e0da0c305c3b4eb37cdcb9bc8965L980-R978)
[[10]](diffhunk://#diff-d8e24839736a7e8e228cd881f20818f23584d1b8ca510f318653403d23421ee3L108-R113)
**Minor Improvements:**
- Minor code style improvements, such as using unpacking in command
construction and removing unused variables.
[[1]](diffhunk://#diff-1c2c242252fa9e9bfec772758217afdbd3a99097593b3882ab8e157c8f449e21L32-R48)
[[2]](diffhunk://#diff-1c2c242252fa9e9bfec772758217afdbd3a99097593b3882ab8e157c8f449e21L121)
[[3]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1R19-R22)
[[4]](diffhunk://#diff-bf783cfb880f39690d7e8c9a101aa46035482edd5987af835dbd113fffb839e1R31)
These changes make the codebase cleaner, easier to maintain, and improve
the reliability of log handling for foreground tasks.1 parent 4bb7e97 commit b0b713f
16 files changed
Lines changed: 636 additions & 456 deletions
File tree
- flagscale
- runner
- backend
- launcher
- tests/unit_tests/runner
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
120 | 126 | | |
121 | 127 | | |
122 | 128 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| |||
193 | 193 | | |
194 | 194 | | |
195 | 195 | | |
196 | | - | |
197 | | - | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
198 | 200 | | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
| 201 | + | |
| 202 | + | |
205 | 203 | | |
206 | 204 | | |
207 | 205 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
| 39 | + | |
41 | 40 | | |
42 | 41 | | |
43 | 42 | | |
| |||
108 | 107 | | |
109 | 108 | | |
110 | 109 | | |
111 | | - | |
112 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
113 | 114 | | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
| 115 | + | |
| 116 | + | |
122 | 117 | | |
123 | 118 | | |
124 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
117 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
118 | 120 | | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 121 | + | |
| 122 | + | |
127 | 123 | | |
128 | 124 | | |
129 | 125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
| 150 | + | |
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
| |||
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
353 | | - | |
| 353 | + | |
| 354 | + | |
354 | 355 | | |
355 | 356 | | |
356 | 357 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
| 36 | + | |
38 | 37 | | |
39 | 38 | | |
40 | 39 | | |
| |||
105 | 104 | | |
106 | 105 | | |
107 | 106 | | |
108 | | - | |
109 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
110 | 111 | | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
| 112 | + | |
| 113 | + | |
119 | 114 | | |
120 | 115 | | |
121 | 116 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
| 152 | + | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| |||
385 | 385 | | |
386 | 386 | | |
387 | 387 | | |
388 | | - | |
| 388 | + | |
| 389 | + | |
389 | 390 | | |
390 | 391 | | |
391 | 392 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
64 | | - | |
65 | | - | |
| 63 | + | |
66 | 64 | | |
67 | 65 | | |
68 | 66 | | |
| |||
112 | 110 | | |
113 | 111 | | |
114 | 112 | | |
115 | | - | |
116 | | - | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
117 | 117 | | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
| 118 | + | |
| 119 | + | |
126 | 120 | | |
127 | 121 | | |
128 | 122 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
370 | | - | |
| 370 | + | |
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
| |||
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
407 | | - | |
408 | | - | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
409 | 411 | | |
410 | | - | |
411 | | - | |
412 | | - | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
| 412 | + | |
| 413 | + | |
418 | 414 | | |
419 | 415 | | |
420 | 416 | | |
| |||
595 | 591 | | |
596 | 592 | | |
597 | 593 | | |
598 | | - | |
| 594 | + | |
| 595 | + | |
599 | 596 | | |
600 | 597 | | |
601 | 598 | | |
| |||
977 | 974 | | |
978 | 975 | | |
979 | 976 | | |
980 | | - | |
| 977 | + | |
| 978 | + | |
981 | 979 | | |
982 | 980 | | |
983 | 981 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
121 | | - | |
122 | 121 | | |
123 | 122 | | |
124 | 123 | | |
| |||
0 commit comments