v1.0.47: fix displayName capture before form clear; fix tracker_add race; add autotest-1 to tracker
This commit is contained in:
+1
-1
@@ -6,7 +6,7 @@ from routes.main import bp as main_bp
|
|||||||
from routes.api import bp as api_bp
|
from routes.api import bp as api_bp
|
||||||
from routes.api_test import bp as api_test_bp
|
from routes.api_test import bp as api_test_bp
|
||||||
|
|
||||||
VERSION = "1.0.46"
|
VERSION = "1.0.47"
|
||||||
|
|
||||||
app = Flask(__name__, template_folder="templates", static_folder="static")
|
app = Flask(__name__, template_folder="templates", static_folder="static")
|
||||||
app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc")
|
app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ _LOCK = threading.Lock()
|
|||||||
_PATH = "/tmp/instances.json"
|
_PATH = "/tmp/instances.json"
|
||||||
|
|
||||||
_INITIAL = {
|
_INITIAL = {
|
||||||
|
"408b7f96-6ed7-4985-be1b-f5bdcb6ab44d": {"svcId": 1, "displayName": "autotest-1", "instanceUid": "408b7f96-6ed7-4985-be1b-f5bdcb6ab44d"},
|
||||||
"884356cf-5212-4395-b56b-27c58a5fc1fa": {"svcId": 1, "displayName": "autotest-1-first", "instanceUid": "884356cf-5212-4395-b56b-27c58a5fc1fa"},
|
"884356cf-5212-4395-b56b-27c58a5fc1fa": {"svcId": 1, "displayName": "autotest-1-first", "instanceUid": "884356cf-5212-4395-b56b-27c58a5fc1fa"},
|
||||||
"6528854d-a4ea-428c-9fa4-68e85fa9b3ac": {"svcId": 1, "displayName": "curl-test-144834", "instanceUid": "6528854d-a4ea-428c-9fa4-68e85fa9b3ac"},
|
"6528854d-a4ea-428c-9fa4-68e85fa9b3ac": {"svcId": 1, "displayName": "curl-test-144834", "instanceUid": "6528854d-a4ea-428c-9fa4-68e85fa9b3ac"},
|
||||||
"fdcb5887-39f7-4ef8-a9c0-d55e434a55ff": {"svcId": 1, "displayName": "curl-final-test", "instanceUid": "fdcb5887-39f7-4ef8-a9c0-d55e434a55ff"},
|
"fdcb5887-39f7-4ef8-a9c0-d55e434a55ff": {"svcId": 1, "displayName": "curl-final-test", "instanceUid": "fdcb5887-39f7-4ef8-a9c0-d55e434a55ff"},
|
||||||
|
|||||||
@@ -173,17 +173,18 @@ def _finish_op(client, op_uid, instance_uid, svc_id, display_name, op_name, svc_
|
|||||||
if dt_finish and str(dt_finish).strip():
|
if dt_finish and str(dt_finish).strip():
|
||||||
is_ok = op.get("isSuccessful")
|
is_ok = op.get("isSuccessful")
|
||||||
err = op.get("errorLog") or ""
|
err = op.get("errorLog") or ""
|
||||||
|
# Сначала трекер — чтобы UI при poll уже видел инстанс
|
||||||
|
if is_ok:
|
||||||
|
if is_create:
|
||||||
|
tracker_add(instance_uid, svc_id, display_name)
|
||||||
|
elif is_delete:
|
||||||
|
tracker_remove(instance_uid)
|
||||||
_op_results[op_uid] = {
|
_op_results[op_uid] = {
|
||||||
"status": "OK" if is_ok else "FAIL",
|
"status": "OK" if is_ok else "FAIL",
|
||||||
"error": str(err) if err else "",
|
"error": str(err) if err else "",
|
||||||
"stages": op.get("stages", []),
|
"stages": op.get("stages", []),
|
||||||
"duration": round(time.time() - t0, 1),
|
"duration": round(time.time() - t0, 1),
|
||||||
}
|
}
|
||||||
if is_ok:
|
|
||||||
if is_create:
|
|
||||||
tracker_add(instance_uid, svc_id, display_name)
|
|
||||||
elif is_delete:
|
|
||||||
tracker_remove(instance_uid)
|
|
||||||
return
|
return
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
_op_results[op_uid] = {"status": "TIMEOUT", "duration": round(time.time() - t0, 1)}
|
_op_results[op_uid] = {"status": "TIMEOUT", "duration": round(time.time() - t0, 1)}
|
||||||
|
|||||||
@@ -215,6 +215,8 @@ function showParams(opId,opName){
|
|||||||
|
|
||||||
async function executeOp(params){
|
async function executeOp(params){
|
||||||
stopPoll();
|
stopPoll();
|
||||||
|
// Захватить displayName ДО очистки формы
|
||||||
|
const displayName=document.getElementById('param-displayname')?.value||'autotest-1';
|
||||||
document.getElementById('params-card').style.display='block';
|
document.getElementById('params-card').style.display='block';
|
||||||
document.getElementById('params-form').innerHTML='';
|
document.getElementById('params-form').innerHTML='';
|
||||||
const btn=document.getElementById('btn-test');
|
const btn=document.getElementById('btn-test');
|
||||||
@@ -232,7 +234,7 @@ async function executeOp(params){
|
|||||||
svcOperationId:selectedOp.opId,
|
svcOperationId:selectedOp.opId,
|
||||||
params,
|
params,
|
||||||
instanceUid:selectedInst||'',
|
instanceUid:selectedInst||'',
|
||||||
displayName:document.getElementById('param-displayname')?.value||'autotest-1'
|
displayName
|
||||||
})});
|
})});
|
||||||
const d=await r.json();
|
const d=await r.json();
|
||||||
if(d.status==='FAIL'){document.getElementById('test-status').innerHTML=` <span class="badge">FAIL</span> ${d.error||''}`;btn.disabled=false;return;}
|
if(d.status==='FAIL'){document.getElementById('test-status').innerHTML=` <span class="badge">FAIL</span> ${d.error||''}`;btn.disabled=false;return;}
|
||||||
|
|||||||
Reference in New Issue
Block a user