2
2
import errno
3
3
import os
4
4
import requests
5
- import sys
6
5
import tarfile
7
6
8
7
from configparser import ConfigParser
@@ -26,32 +25,38 @@ def __init__(self, result_dir, target_dir, user, prefix, config, logger):
26
25
self .logger = logger
27
26
28
27
def check_result_target_dir (self , result_dir , target_dir ):
29
- sts = 0
30
28
if not result_dir :
31
- self .logger .error ("Result directory not provided" )
32
- sts = 1
33
- if not target_dir :
34
- self .logger .error ("Target directory not provided" )
35
- sts = 1
36
- try :
37
- self .result_dir = Path (result_dir ).resolve (strict = True )
38
- except FileNotFoundError :
39
- self .logger .error ("Invalid result directory provided: {}" , result_dir )
40
- sts = 1
29
+ raise FileNotFoundError ("Result directory not provided" )
41
30
else :
42
- if not self .result_dir .is_dir ():
43
- self .logger .error ("Invalid result directory provided: {}" , result_dir )
44
- sts = 1
45
- try :
46
- self .target_dir = Path (target_dir ).resolve (strict = True )
47
- except FileNotFoundError :
48
- self .logger .error ("Invalid target directory provided: {}" , target_dir )
49
- sts = 1
31
+ try :
32
+ self .result_dir = Path (result_dir ).resolve (strict = True )
33
+ except Exception :
34
+ raise FileNotFoundError (
35
+ "Invalid result directory provided: {}" , result_dir
36
+ )
37
+ else :
38
+ if not self .result_dir .is_dir ():
39
+ self .logger .error (
40
+ "Invalid result directory provided: {}" , result_dir
41
+ )
42
+ return 1
43
+
44
+ if not target_dir :
45
+ raise FileNotFoundError ("Target directory not provided" )
50
46
else :
51
- if not self .target_dir .is_dir ():
52
- self .logger .error ("Invalid target directory provided: {}" , target_dir )
53
- sts = 1
54
- return sts
47
+ try :
48
+ self .target_dir = Path (target_dir ).resolve (strict = True )
49
+ except Exception :
50
+ raise FileNotFoundError (
51
+ "Invalid target directory provided: {}" , target_dir
52
+ )
53
+ else :
54
+ if not self .target_dir .is_dir ():
55
+ self .logger .error (
56
+ "Invalid target directory provided: {}" , target_dir
57
+ )
58
+ return 1
59
+ return 0
55
60
56
61
def make_result_tb (self ):
57
62
if os .path .exists (f"{ self .result_dir } .copied" ):
@@ -60,7 +65,7 @@ def make_result_tb(self):
60
65
61
66
pbench_run_name = self .result_dir .name
62
67
if os .path .exists (f"{ self .result_dir } /.running" ):
63
- self .logger .debug (
68
+ self .logger .warning (
64
69
"The benchmark is still running in {} - skipping; if that is"
65
70
" not true, rmdir {}/.running, and try again" ,
66
71
pbench_run_name ,
@@ -124,7 +129,8 @@ def make_result_tb(self):
124
129
self .logger .error ("error removing failed tar ball, {}" , tarball )
125
130
return (1 , "" )
126
131
127
- self .make_md5sum (tarball )
132
+ ret = self .make_md5sum (tarball )
133
+ return (ret , "" )
128
134
129
135
# The contract with the caller is to just return the full path to the
130
136
# created tar ball.
@@ -149,7 +155,8 @@ def make_md5sum(self, tarball):
149
155
self .logger .error (
150
156
"error removing failed tar ball MD5, {}" , tarball_md5
151
157
)
152
- sys .exit (1 )
158
+ return 1
159
+ return 0
153
160
154
161
155
162
class CopyResultTb :
@@ -192,17 +199,25 @@ def copy_result_tb(self, token):
192
199
with open (self .tarball_md5 , "r" ) as md5fp :
193
200
md5sum = md5fp .read ().split ()[0 ]
194
201
filename = secure_filename (str (self .tarball ))
195
- headers = {"filename" : filename , "Content-MD5" : md5sum , "token" : token }
202
+ headers = {
203
+ "filename" : filename ,
204
+ "Content-MD5" : md5sum ,
205
+ "Authorization" : f"Bearer { token } " ,
206
+ }
196
207
with self .tarball .open ("rb" ) as f :
197
208
try :
198
209
response = requests .put (
199
210
self .upload_url , data = self .read_in_chunks (f ), headers = headers
200
211
)
201
212
self .logger .info ("File uploaded successfully" )
202
213
except Exception :
203
- self .logger .exception ("There was something wrong with your request" )
214
+ self .logger .exception (
215
+ "There was something wrong with file upload request: file: '{}', URL: '{}'" ,
216
+ self .tarball ,
217
+ self .upload_url ,
218
+ )
204
219
return 1
205
- if not response .status_code == 200 :
220
+ if not response .ok :
206
221
self .logger .error (
207
222
"There was something wrong with your request, error code: '{}'" ,
208
223
response .status_code ,
0 commit comments