more resilient fetching of archived executions
This commit is contained in:
parent
a58fdbfd3d
commit
9b2ce4f710
|
@ -695,38 +695,42 @@ class CCPExecutionHistory extends HTMLElement {
|
|||
//parse all metada content that is useful to build up an entry
|
||||
const metadata = await this.#ws.download(metadatafolder[0].id, null, true)
|
||||
const zip = new JSZip()
|
||||
const req = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/request.json").async("string"))))
|
||||
const status = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/jobStatus.json").async("string"))))
|
||||
const meth = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/method.json").async("string"))))
|
||||
const infra = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/infrastructure.json").async("string"))))
|
||||
const parser = new DOMParser()
|
||||
// Fasted way to get context is from prov-o. If it doesn't match the context in boot skip this execution
|
||||
const provo = parser.parseFromString(await zip.loadAsync(metadata).then(z=>z.file("metadata/prov-o.xml").async("string")), "text/xml")
|
||||
const context = provo.querySelector("entity[*|id='d4s:VRE']>value").textContent
|
||||
if(context !== this.#boot.context && context.replaceAll("/", "%2F") !== this.#boot.context) continue;
|
||||
//build entry from downloaded data
|
||||
const entry = {
|
||||
id : req.id,
|
||||
status : status.status,
|
||||
created : status.created,
|
||||
started : status.started,
|
||||
updated : status.updated,
|
||||
message : status.message,
|
||||
method : meth.title,
|
||||
methodversion : meth.version,
|
||||
infrastructure: infra.name,
|
||||
infrastructuretype : infra.type,
|
||||
ccpnote : req.inputs.ccpnote ? req.inputs.ccpnote : "",
|
||||
runtime : req.inputs.ccpimage,
|
||||
replicas : req.inputs.ccpreplicas ? req.inputs.ccpreplicas : 1,
|
||||
href : `items/${executionfolders[j].id}/download`,
|
||||
wsid : executionfolders[j].id,
|
||||
fullrequest : req,
|
||||
fullmethod : meth,
|
||||
fullinfrastructure : infra
|
||||
try{
|
||||
const req = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/request.json").async("string"))))
|
||||
const status = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/jobStatus.json").async("string"))))
|
||||
const meth = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/method.json").async("string"))))
|
||||
const infra = JSON.parse(await (zip.loadAsync(metadata).then(z=>z.file("metadata/infrastructure.json").async("string"))))
|
||||
const parser = new DOMParser()
|
||||
// Fasted way to get context is from prov-o. If it doesn't match the context in boot skip this execution
|
||||
const provo = parser.parseFromString(await zip.loadAsync(metadata).then(z=>z.file("metadata/prov-o.xml").async("string")), "text/xml")
|
||||
const context = provo.querySelector("entity[*|id='d4s:VRE']>value").textContent
|
||||
if(context !== this.#boot.context && context.replaceAll("/", "%2F") !== this.#boot.context) continue;
|
||||
//build entry from downloaded data
|
||||
const entry = {
|
||||
id : req.id,
|
||||
status : status.status,
|
||||
created : status.created,
|
||||
started : status.started,
|
||||
updated : status.updated,
|
||||
message : status.message,
|
||||
method : meth.title,
|
||||
methodversion : meth.version,
|
||||
infrastructure: infra.name,
|
||||
infrastructuretype : infra.type,
|
||||
ccpnote : req.inputs.ccpnote ? req.inputs.ccpnote : "",
|
||||
runtime : req.inputs.ccpimage,
|
||||
replicas : req.inputs.ccpreplicas ? req.inputs.ccpreplicas : 1,
|
||||
href : `items/${executionfolders[j].id}/download`,
|
||||
wsid : executionfolders[j].id,
|
||||
fullrequest : req,
|
||||
fullmethod : meth,
|
||||
fullinfrastructure : infra
|
||||
}
|
||||
if(this.#archived[entry.method]) this.#archived[entry.method].push(entry);
|
||||
else this.#archived[entry.method] = [entry]
|
||||
} catch (err){
|
||||
console.warn(`Skipping entry ${metadatafolder[0].id} because of ${err}`)
|
||||
}
|
||||
if(this.#archived[entry.method]) this.#archived[entry.method].push(entry);
|
||||
else this.#archived[entry.method] = [entry]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue