@@ -51,31 +51,37 @@ def collect_attachments(self, run_id=None):
5151 body = {}
5252 has_attachments = False
5353 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 ))
7376 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 ))
7985
8086 if "workflow_url" in body :
8187 if ":" not in body ["workflow_url" ]:
0 commit comments