@@ -106,40 +106,38 @@ def _run_command(log, logdir, pool_id, res_id, res_name, id_in_pool, command, lt
106
106
stdout_stopped = False
107
107
108
108
# Run the sub-command to be captured.
109
- sp = subprocess .Popen (command , env = env , shell = True ,
110
- stdout = subprocess .PIPE , stderr = logfile )
111
109
112
- captured_string = b""
110
+ with subprocess .Popen (command , env = env , shell = True ,
111
+ stdout = subprocess .PIPE , stderr = logfile ) as sp :
112
+ captured_string = b""
113
113
114
+ for line in iter (sp .stdout .readline , b'' ):
115
+ # Write to the log.
116
+ logfile .write (line )
117
+ logfile .flush ()
114
118
115
- for line in iter (sp .stdout .readline , b'' ):
116
- # Write to the log.
117
- logfile .write (line )
118
- logfile .flush ()
119
-
120
- if stdout_stopped :
121
- continue
122
-
123
- if stdout_written + len (line ) > catch_stdout_bytes :
124
- if stdout_written == 0 and not catch_stdout_lines_securely :
125
- # Even the first line is too long for this buffer. Catch at
126
- # least part of it.
127
- line = line [:catch_stdout_bytes ]
128
- captured_string += line
119
+ if stdout_stopped :
120
+ continue
129
121
130
- stdout_stopped = True
131
- if not catch_stdout_lines_securely :
132
- captured_string += b"<< trimmed >>\n "
133
- continue
122
+ if stdout_written + len (line ) > catch_stdout_bytes :
123
+ if stdout_written == 0 and not catch_stdout_lines_securely :
124
+ # Even the first line is too long for this buffer. Catch at
125
+ # least part of it.
126
+ line = line [:catch_stdout_bytes ]
127
+ captured_string += line
134
128
135
- stdout_written += len (line )
136
- captured_string += line
129
+ stdout_stopped = True
130
+ if not catch_stdout_lines_securely :
131
+ captured_string += b"<< trimmed >>\n "
132
+ continue
137
133
134
+ stdout_written += len (line )
135
+ captured_string += line
138
136
139
- return {
140
- 'status' : sp .wait (),
141
- 'stdout' : captured_string ,
142
- }
137
+ return {
138
+ 'status' : sp .wait (),
139
+ 'stdout' : captured_string ,
140
+ }
143
141
144
142
145
143
def normalize_tags (tags ):
0 commit comments