You need to sign in or sign up before continuing.
Commit 3b42d302 authored by Kento HASEGAWA's avatar Kento HASEGAWA

Add support for 'resolver' argument when data is send by POST

parent 884f0c85
...@@ -42,18 +42,17 @@ def start(): ...@@ -42,18 +42,17 @@ def start():
qstr = request.form["question"] qstr = request.form["question"]
qname = request.form["qname"] qname = request.form["qname"]
qseed = request.form["qseed"] qseed = request.form["qseed"]
req_id = request.form["req_id"]
boardstr = BoardStr.conv_boardstr(qstr.split('\n'), 'random', int(qseed)) boardstr = BoardStr.conv_boardstr(qstr.split('\n'), 'random', int(qseed))
option = { option = {
"name": qname, "name": qname,
"host": args['host'], "host": args['host'],
"client": client_baseurl, "client": client_baseurl,
"req_id": req_id "req_id": request.form['req_id'],
"resolver": request.form['resolver']
} }
pynqrouter.start_solver(boardstr, qseed, option) pynqrouter.start_solver(boardstr, qseed, option)
# pynq_thread = pynqrouter.start_solver(boardstr, qseed, option)
# 実行だけ開始する # 実行だけ開始する
ans["status"] = "Processing" ans["status"] = "Processing"
......
...@@ -78,6 +78,15 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()): ...@@ -78,6 +78,15 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()):
print(seed) print(seed)
print('') print('')
res = {
'client': option['client'],
'qname': option['name'],
'solution': '',
'cputime': -1.0,
'req_id': option['req_id'],
'solved': False
}
# LINE数を数えてコンフィグするbitstreamを分岐 # LINE数を数えてコンフィグするbitstreamを分岐
line_num = boardstr.count('L') line_num = boardstr.count('L')
if line_num < 127: if line_num < 127:
...@@ -89,7 +98,9 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()): ...@@ -89,7 +98,9 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()):
else: else:
solver_thread.stopped() solver_thread.stopped()
solver_thread = None solver_thread = None
return {'solved': False, 'solution': '', 'elapsed': -1.0} if "host" in option:
requests.post("http://{}/post".format(option['host']), data=res)
return res
# ボード文字列から X, Y, Z を読んでくる # ボード文字列から X, Y, Z を読んでくる
size_x = (ord(boardstr[1]) - ord('0')) * 10 + (ord(boardstr[2]) - ord('0')) size_x = (ord(boardstr[1]) - ord('0')) * 10 + (ord(boardstr[2]) - ord('0'))
...@@ -137,7 +148,9 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()): ...@@ -137,7 +148,9 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()):
if (solver_thread is not None) and (not solver_thread.is_running()): if (solver_thread is not None) and (not solver_thread.is_running()):
solver_thread.stopped() solver_thread.stopped()
solver_thread = None solver_thread = None
return { 'solved': False, 'solution': '', 'elapsed': -1.0 } if "host" in option:
requests.post("http://{}/post".format(option['host']), data=res)
return res
# 完了の確認 # 完了の確認
print('Done!') print('Done!')
...@@ -154,14 +167,6 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()): ...@@ -154,14 +167,6 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()):
# 解けなかったらLEDを消す # 解けなかったらLEDを消す
mmio_led.write(0, 0) mmio_led.write(0, 0)
sys.stderr.write('Cannot solve it!\n') sys.stderr.write('Cannot solve it!\n')
res = {
'client': option['client'],
'qname': option['name'],
'solution': '',
'cputime': -1.0,
'req_id': option['req_id'],
'solved': False
}
if "host" in option: if "host" in option:
requests.post("http://{}/post".format(option['host']), data=res) requests.post("http://{}/post".format(option['host']), data=res)
solver_thread = None solver_thread = None
...@@ -193,9 +198,6 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()): ...@@ -193,9 +198,6 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()):
solution += str(boards[i]) # 普通に表示 solution += str(boards[i]) # 普通に表示
solution += '\n' solution += '\n'
if solver_thread is not None:
solver_thread.stopped()
res = { res = {
'client': option['client'], 'client': option['client'],
'qname': option['name'], 'qname': option['name'],
...@@ -204,8 +206,13 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()): ...@@ -204,8 +206,13 @@ def solve(boardstr, seed=12345, zero_padding=False, option=dict()):
'req_id': option['req_id'], 'req_id': option['req_id'],
'solved': True 'solved': True
} }
if "host" in option: if "resolver" in option:
r = requests.post("http://{}/post".format(option['resolver']), data=res)
elif "host" in option:
r = requests.post("http://{}/post".format(option['host']), data=res) r = requests.post("http://{}/post".format(option['host']), data=res)
if solver_thread is not None:
solver_thread.stopped()
solver_thread = None solver_thread = None
return res return res
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment