summaryrefslogtreecommitdiff
path: root/MistyCore/node_modules/systeminformation/lib/dockerSocket.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-11-28 17:31:34 +0100
committerMinteck <contact@minteck.org>2022-11-28 17:31:34 +0100
commit7923aa8942b55884320ef2428417e3ee4b121613 (patch)
tree7993632f2898b1998f25b11ce40a8d2eb3d44730 /MistyCore/node_modules/systeminformation/lib/dockerSocket.js
downloadmistyos-og-mane.tar.gz
mistyos-og-mane.tar.bz2
mistyos-og-mane.zip
Initial commitHEADmane
Diffstat (limited to 'MistyCore/node_modules/systeminformation/lib/dockerSocket.js')
-rw-r--r--MistyCore/node_modules/systeminformation/lib/dockerSocket.js327
1 files changed, 327 insertions, 0 deletions
diff --git a/MistyCore/node_modules/systeminformation/lib/dockerSocket.js b/MistyCore/node_modules/systeminformation/lib/dockerSocket.js
new file mode 100644
index 0000000..6508dd1
--- /dev/null
+++ b/MistyCore/node_modules/systeminformation/lib/dockerSocket.js
@@ -0,0 +1,327 @@
+'use strict';
+// @ts-check
+// ==================================================================================
+// dockerSockets.js
+// ----------------------------------------------------------------------------------
+// Description: System Information - library
+// for Node.js
+// Copyright: (c) 2014 - 2022
+// Author: Sebastian Hildebrandt
+// ----------------------------------------------------------------------------------
+// License: MIT
+// ==================================================================================
+// 13. DockerSockets
+// ----------------------------------------------------------------------------------
+
+const net = require('net');
+const isWin = require('os').type() === 'Windows_NT';
+const socketPath = isWin ? '//./pipe/docker_engine' : '/var/run/docker.sock';
+
+class DockerSocket {
+
+ getInfo(callback) {
+ try {
+
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/info HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ }
+
+ listImages(all, callback) {
+ try {
+
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/images/json' + (all ? '?all=1' : '') + ' HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ }
+
+ inspectImage(id, callback) {
+ id = id || '';
+ if (id) {
+ try {
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/images/' + id + '/json?stream=0 HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ } else {
+ callback({});
+ }
+ }
+
+ listContainers(all, callback) {
+ try {
+
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/containers/json' + (all ? '?all=1' : '') + ' HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ }
+
+ getStats(id, callback) {
+ id = id || '';
+ if (id) {
+ try {
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/containers/' + id + '/stats?stream=0 HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ } else {
+ callback({});
+ }
+ }
+
+ getInspect(id, callback) {
+ id = id || '';
+ if (id) {
+ try {
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/containers/' + id + '/json?stream=0 HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ } else {
+ callback({});
+ }
+ }
+
+ getProcesses(id, callback) {
+ id = id || '';
+ if (id) {
+ try {
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/containers/' + id + '/top?ps_args=-opid,ppid,pgid,vsz,time,etime,nice,ruser,user,rgroup,group,stat,rss,args HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ } else {
+ callback({});
+ }
+ }
+
+ listVolumes(callback) {
+ try {
+
+ let socket = net.createConnection({ path: socketPath });
+ let alldata = '';
+ let data;
+
+ socket.on('connect', () => {
+ socket.write('GET http:/volumes HTTP/1.0\r\n\r\n');
+ });
+
+ socket.on('data', data => {
+ alldata = alldata + data.toString();
+ });
+
+ socket.on('error', () => {
+ socket = false;
+ callback({});
+ });
+
+ socket.on('end', () => {
+ let startbody = alldata.indexOf('\r\n\r\n');
+ alldata = alldata.substring(startbody + 4);
+ socket = false;
+ try {
+ data = JSON.parse(alldata);
+ callback(data);
+ } catch (err) {
+ callback({});
+ }
+ });
+ } catch (err) {
+ callback({});
+ }
+ }
+}
+
+module.exports = DockerSocket;