In my controller function I have a couple of try excepts. In case of except I want to update db record status to different value based on where the error occurred. somehow update record is not executed
def runWoshi(scriptId, script, outPath, org, path,llsPath):
print "scriptId ", scriptId
db.script_activity.insert(sa_id_script = scriptId, sa_start = 'now', sa_organization = org, sa_location = llsPath);
##validiramo json če ima kakršne koli napake idt.
try:
print "tukej validiram neki"
valJson = validateJson(script.sc_menu_data)
except Exception as e:
"Če je napaka v validaciji Jsona je status v 92"
script.update_record(sc_status = 92)
print db._lastsql
print "je biu error scripta id " ,scriptId
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
errmsg = ["error v validaciji Jsona", exc_type, fname, exc_tb.tb_lineno,e.__doc__ , e.message]
print errmsg
print(exc_type, fname, exc_tb.tb_lineno)
print e.__doc__
print e.message
return dict(status = 672, errmsg = errmsg)
# if not valJson:
# script.update_record(sc_status = 92)
# #validacija ni uspela vrnemo error 300
# return dict(status = 300)
# #nov json - z vsemi errorji zapiđšemo v sc_menu_data
# else:
script.update_record(sc_menu_data = valJson["formJson"])
#če obstajjo errorji pol konc
if valJson["errors"]:
#skripta gre v status 91, kar pomen da je user ne more dat računat
print "Json errors " , valJson["errors"]
return dict(status = 200)
updateScripts = db(
db.scripts.id == scriptId).update(sc_engine_output = None)
##kreiram LLS
try:
transData = TranslateData(script.sc_menu_data, path, scriptId, org)
except Exception as e:
"Status 91 pomen da je bila napaka pri kreiranju lls skripte"
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
errmsg = ["Creating LLS from Json failed ", exc_type, fname, exc_tb.tb_lineno,e.__doc__ , e.message]
print "errmsg ", errmsg
print(exc_type, fname, exc_tb.tb_lineno)
print e.__doc__
print e.message
return dict(status = 668, errmsg = errmsg)
#Se prav se je zgodu error pri kreiranju datoteke
# if transData["data"]["type"] == 666:
# #status damo v 90 in vrnemo kar je v error
# #print 'transData["data"] ' , transData["data"]
# #transDataError = transData["data"]
# return dict(status = 664)
#
# try:
#Pobiršem out file če obstaja v mapi engine/e1 in sc_engine_out
count = 0
while ( count < 10 and ( os.path.isfile(outPath))):
count += 1
# print count
# print "brisem out..."
os.remove(outPath)
time.sleep(0.05)
# Run woshi engine
path_1 = os.path.join(path, 'e1')
os.chdir(path_1)
#pot = path_1 + "\\woshi_engine.exe"
#print pot
#p = subprocess.Popen(['w_parameter.bat', id], shell=True, stdout = subprocess.PIPE)
p = subprocess.Popen(['woshi_engine.exe', scriptId], shell=True, stdout = subprocess.PIPE)
return dict(status = 1)