diff options
Diffstat (limited to 'web/share')
-rw-r--r-- | web/share/js/ipmi/main.js | 73 | ||||
-rw-r--r-- | web/share/js/vnc/main.js | 50 |
2 files changed, 94 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); + } + } + }); } diff --git a/web/share/js/vnc/main.js b/web/share/js/vnc/main.js new file mode 100644 index 00000000..41f310b7 --- /dev/null +++ b/web/share/js/vnc/main.js @@ -0,0 +1,50 @@ +/***************************************************************************** +# # +# KVMD - The main Pi-KVM daemon. # +# # +# Copyright (C) 2018 Maxim Devaev <[email protected]> # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <https://www.gnu.org/licenses/>. # +# # +*****************************************************************************/ + + +"use strict"; + + +import {$, tools} from "../tools.js"; + + +export function main() { + __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.vnc.port; + let host = window.location.hostname; + $("vnc-text").innerHTML = ` + <span class="code-comment"># How to connect using the Linux terminal:<br> + $</span> vncviewer ${host}::${port} + `; + } else if (http.status === 401 || http.status === 403) { + document.location.href = "/login"; + } else { + setTimeout(__loadKvmdInfo, 1000); + } + } + }); +} |