@@ -51,31 +51,37 @@ def collect_attachments(self, run_id=None):
51
51
body = {}
52
52
has_attachments = False
53
53
for k , ls in iterlists (connexion .request .files ):
54
- for v in ls :
55
- if k == "workflow_attachment" :
56
- sp = v .filename .split ("/" )
57
- fn = []
58
- for p in sp :
59
- if p not in ("" , "." , ".." ):
60
- fn .append (secure_filename (p ))
61
- dest = os .path .join (tempdir , * fn )
62
- if not os .path .isdir (os .path .dirname (dest )):
63
- os .makedirs (os .path .dirname (dest ))
64
- self .log_for_run (run_id , "Staging attachment '%s' to '%s'" % (v .filename , dest ))
65
- v .save (dest )
66
- has_attachments = True
67
- body [k ] = "file://%s" % tempdir # Reference to temp working dir.
68
- elif k in ("workflow_params" , "tags" , "workflow_engine_parameters" ):
69
- content = v .read ()
70
- body [k ] = json .loads (content .decode ("utf-8" ))
71
- else :
72
- body [k ] = v .read ().decode ()
54
+ try :
55
+ for v in ls :
56
+ if k == "workflow_attachment" :
57
+ sp = v .filename .split ("/" )
58
+ fn = []
59
+ for p in sp :
60
+ if p not in ("" , "." , ".." ):
61
+ fn .append (secure_filename (p ))
62
+ dest = os .path .join (tempdir , * fn )
63
+ if not os .path .isdir (os .path .dirname (dest )):
64
+ os .makedirs (os .path .dirname (dest ))
65
+ self .log_for_run (run_id , "Staging attachment '%s' to '%s'" % (v .filename , dest ))
66
+ v .save (dest )
67
+ has_attachments = True
68
+ body [k ] = "file://%s" % tempdir # Reference to temp working dir.
69
+ elif k in ("workflow_params" , "tags" , "workflow_engine_parameters" ):
70
+ content = v .read ()
71
+ body [k ] = json .loads (content .decode ("utf-8" ))
72
+ else :
73
+ body [k ] = v .read ().decode ()
74
+ except Exception as e :
75
+ raise ValueError ("Error reading parameter '%s': %s" % (k , e ))
73
76
for k , ls in iterlists (connexion .request .form ):
74
- for v in ls :
75
- if k in ("workflow_params" , "tags" , "workflow_engine_parameters" ):
76
- body [k ] = json .loads (v )
77
- else :
78
- body [k ] = v
77
+ try :
78
+ for v in ls :
79
+ if k in ("workflow_params" , "tags" , "workflow_engine_parameters" ) and v != "" :
80
+ body [k ] = json .loads (v )
81
+ else :
82
+ body [k ] = v
83
+ except Exception as e :
84
+ raise ValueError ("Error reading parameter '%s': %s" % (k , e ))
79
85
80
86
if "workflow_url" in body :
81
87
if ":" not in body ["workflow_url" ]:
0 commit comments