diff options
Diffstat (limited to 'web/share/js/ipmi/main.js')
-rw-r--r-- | web/share/js/ipmi/main.js | 73 |
1 files changed, 44 insertions, 29 deletions
diff --git a/web/share/js/ipmi/main.js b/web/share/js/ipmi/main.js index ff3032f5..2c48e7d3 100644 --- a/web/share/js/ipmi/main.js +++ b/web/share/js/ipmi/main.js @@ -23,36 +23,51 @@ "use strict"; -import {$} from "../tools.js"; +import {$, tools} from "../tools.js"; export function main() { - let host = window.location.hostname; - let site = `${window.location.protocol}//${window.location.host}`; - $("ipmi-text").innerHTML = ` - <span class="code-comment"># Power on the server if it's off:<br> - $</span> ipmitool -I lanplus -U admin -P admin -H ${host} power on<br> - <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> - ${site}/api/atx/power?action=on<br> - <br> - <span class="code-comment"># Soft power off the server if it's on:<br> - $</span> ipmitool -I lanplus -U admin -P admin -H ${host} power soft<br> - <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> - ${site}/api/atx/power?action=off<br> - <br> - <span class="code-comment"># Hard power off the server if it's on:<br> - $</span> ipmitool -I lanplus -U admin -P admin -H ${host} power off<br> - <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> - ${site}/api/atx/power?action=off_hard<br> - <br> - <span class="code-comment"># Hard reset the server if it's on:<br> - $</span> ipmitool -I lanplus -U admin -P admin -H ${host} power reset<br> - <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> - ${site}/api/atx/power?action=reset_hard<br> - <br> - <span class="code-comment"># Check the power status:<br> - $</span> ipmitool -I lanplus -U admin -P admin -H ${host} power status<br> - <span class="code-comment">$</span> curl -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> - ${site}/api/atx - `; + __loadKvmdInfo(); +} + +function __loadKvmdInfo() { + let http = tools.makeRequest("GET", "/api/info", function() { + if (http.readyState === 4) { + if (http.status === 200) { + let port = JSON.parse(http.responseText).result.extras.ipmi.port; + let host = window.location.hostname; + let site = `${window.location.protocol}//${window.location.host}`; + $("ipmi-text").innerHTML = ` + <span class="code-comment"># Power on the server if it's off:<br> + $</span> ipmitool -I lanplus -U admin -P admin -H ${host} -p ${port} power on<br> + <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> + ${site}/api/atx/power?action=on<br> + <br> + <span class="code-comment"># Soft power off the server if it's on:<br> + $</span> ipmitool -I lanplus -U admin -P admin -H ${host} -p ${port} power soft<br> + <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> + ${site}/api/atx/power?action=off<br> + <br> + <span class="code-comment"># Hard power off the server if it's on:<br> + $</span> ipmitool -I lanplus -U admin -P admin -H ${host} -p ${port} power off<br> + <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> + ${site}/api/atx/power?action=off_hard<br> + <br> + <span class="code-comment"># Hard reset the server if it's on:<br> + $</span> ipmitool -I lanplus -U admin -P admin -H ${host} -p ${port} power reset<br> + <span class="code-comment">$</span> curl -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> + ${site}/api/atx/power?action=reset_hard<br> + <br> + <span class="code-comment"># Check the power status:<br> + $</span> ipmitool -I lanplus -U admin -P admin -H ${host} -p ${port} power status<br> + <span class="code-comment">$</span> curl -HX-KVMD-User:admin -HX-KVMD-Passwd:admin -k \\<br> + ${site}/api/atx + `; + } else if (http.status === 401 || http.status === 403) { + document.location.href = "/login"; + } else { + setTimeout(__loadKvmdInfo, 1000); + } + } + }); } |