async function fetchConfig(element) { let xhr = new XMLHttpRequest(); xhr.open("GET", '/-/config', true); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { element.innerHTML = JSON.stringify(JSON.parse(xhr.response),null,2); } }; xhr.send(); } async function fetchOriginsWithLeases(element) { let xhr = new XMLHttpRequest(); xhr.open("GET", '/-/origins?leases=true', true); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { const x = JSON.parse(xhr.response) console.debug(x) element.innerHTML = '' let table = document.createElement('table') table.classList.add('table', 'mt-4'); let thead = document.createElement('thead'); thead.innerHTML = ` origin hostname OS driver version leases ` table.appendChild(thead) let tbody = document.createElement('thead'); x.forEach((o) => { let row = document.createElement('tr'); row.innerHTML = ` ${o.origin_ref} ${o.hostname} ${o.os_platform} ${o.os_version} ${o.leases.map(x => `${x.lease_ref}`).join(', ')}` tbody.appendChild(row); }) table.appendChild(tbody) element.appendChild(table) } }; xhr.send(); } async function fetchLeases(element) { let xhr = new XMLHttpRequest(); xhr.open("GET", '/-/leases?origin=true', true); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { const x = JSON.parse(xhr.response) console.debug(x) element.innerHTML = '' let table = document.createElement('table') table.classList.add('table', 'mt-4'); let thead = document.createElement('thead'); thead.innerHTML = ` lease created updated expires origin ` table.appendChild(thead) let tbody = document.createElement('thead'); x.forEach((o) => { let row = document.createElement('tr'); row.innerHTML = ` ${o.lease_ref} ${o.lease_created} ${o.lease_updated} ${o.lease_expires} ${o.origin_ref}` tbody.appendChild(row); }) table.appendChild(tbody) element.appendChild(table) } }; xhr.send(); } async function deleteOrigins() { let xhr = new XMLHttpRequest(); xhr.open("DELETE", '/-/origins', true); xhr.send(); await fetchOriginsWithLeases() } async function deleteLease(lease_ref) { if (lease_ref === undefined) lease_ref = window.prompt("Please enter 'lease_ref' which should be deleted"); if (lease_ref === null || lease_ref === "") return let xhr = new XMLHttpRequest(); xhr.open("DELETE", `/-/lease/${{lease_ref}}`, true); xhr.send(); }