219 lines
6.7 KiB
JavaScript
219 lines
6.7 KiB
JavaScript
var express = require('express');
|
|
var router = express.Router();
|
|
var exec = require('child_process').execFile;
|
|
var os = require('os');
|
|
|
|
/* GET home page. */
|
|
router.get('/', function(req, res, next) {
|
|
exec('dladm', ['show-phys'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.split(os.EOL);
|
|
//data = data[0].split(' ');
|
|
link = [];
|
|
media = [];
|
|
state = [];
|
|
speed = [];
|
|
duplex = [];
|
|
device = [];
|
|
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
link.push(data[i].substring(0, data[0].indexOf('MEDIA')).trim());
|
|
media.push(data[i].substring(data[0].indexOf('MEDIA'), data[0].indexOf('STATE')).trim());
|
|
state.push(data[i].substring(data[0].indexOf('STATE'), data[0].indexOf('SPEED')).trim());
|
|
speed.push(data[i].substring(data[0].indexOf('SPEED'), data[0].indexOf('DUPLEX')).trim());
|
|
duplex.push(data[i].substring(data[0].indexOf('DUPLEX'), data[0].indexOf('DEVICE')).trim());
|
|
device.push(data[i].substring(data[0].indexOf('DEVICE'), data[i].length).trim());
|
|
}
|
|
}
|
|
res.render('show-phys', { title: 'Show-phys', link: link, media: media });
|
|
})
|
|
});
|
|
|
|
router.get('/show-vnic', function(req, res, next) {
|
|
exec('dladm', ['show-vnic'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.split(os.EOL);
|
|
link = [];
|
|
over = [];
|
|
speed = [];
|
|
macaddress = [];
|
|
macaddrtype = [];
|
|
vid = [];
|
|
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
link.push(data[i].substring(0, data[0].indexOf('OVER')).trim());
|
|
over.push(data[i].substring(data[0].indexOf('OVER'), data[0].indexOf('SPEED')).trim());
|
|
speed.push(data[i].substring(data[0].indexOf('SPEED'), data[0].indexOf('MACADDRESS')).trim());
|
|
macaddress.push(data[i].substring(data[0].indexOf('MACADDRESS'), data[0].indexOf('MACADDRTYPE')).trim());
|
|
macaddrtype.push(data[i].substring(data[0].indexOf('MACADDRTYPE'), data[0].indexOf('VID')).trim());
|
|
vid.push(data[i].substring(data[0].indexOf('VID'), data[i].length).trim());
|
|
}
|
|
}
|
|
res.render('show-vnic', { title: 'Show-vnic', link:link, over:over, speed:speed, macaddress:macaddress, macaddrtype:macaddrtype, vid:vid });
|
|
});
|
|
});
|
|
|
|
router.get('/list-zones', function(req, res, next) {
|
|
exec('zoneadm', ['list', '-cv'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.split(os.EOL);
|
|
zone = [];
|
|
id = [];
|
|
name = [];
|
|
status = [];
|
|
zone_path = [];
|
|
brand = [];
|
|
ip = [];
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
data_w = data[i].trim().split(/[ ]+/);
|
|
console.log(data_w);
|
|
if(data_w.length == 6) {
|
|
id.push(data_w[0].trim());
|
|
name.push(data_w[1].trim());
|
|
status.push(data_w[2].trim());
|
|
zone_path.push(data_w[3].trim());
|
|
brand.push(data_w[4].trim());
|
|
ip.push(data_w[5].trim());
|
|
}
|
|
}
|
|
}
|
|
res.render('list-zones', { title: 'List zones', id:id, name:name, status:status, zone_path:zone_path,
|
|
brand:brand, ip:ip });
|
|
});
|
|
});
|
|
|
|
router.get('/list-zfs', function(req, res, next) {
|
|
exec('zfs', ['list'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.split(os.EOL);
|
|
data_w = data[0].split(/[ ]+/);
|
|
console.log(data_w);
|
|
name = [];
|
|
used = [];
|
|
avail = [];
|
|
refer = [];
|
|
mountpoint = [];
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
data_w = data[i].split(/[ ]+/);
|
|
if(data_w.length == 5) {
|
|
name.push(data_w[0].trim());
|
|
used.push(data_w[1].trim());
|
|
avail.push(data_w[2].trim());
|
|
refer.push(data_w[3].trim());
|
|
mountpoint.push(data_w[4].trim());
|
|
}
|
|
}
|
|
}
|
|
res.render('list-zfs', { title: 'List ZFS', name: name, used: used, avail:avail, refer:refer, mountpoint:mountpoint });
|
|
});
|
|
});
|
|
|
|
router.get('/list-svc', function(req, res, next) {
|
|
exec('svcs', ['-a'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.split(os.EOL);
|
|
data_w = data[0].split(/[ ]+/);
|
|
console.log(data_w);
|
|
state = [];
|
|
stime = [];
|
|
fmri = [];
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
data_w = data[i].split(/[ ]+/);
|
|
if(data_w.length == 3) {
|
|
state.push(data_w[0].trim());
|
|
stime.push(data_w[1].trim());
|
|
fmri.push(data_w[2].trim());
|
|
}
|
|
}
|
|
}
|
|
res.render('list-svc', { title: 'List SVC', state:state, stime:stime, fmri:fmri });
|
|
});
|
|
});
|
|
|
|
router.get('/list-zpool', function(req, res, next) {
|
|
exec('zpool', ['list'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.split(os.EOL);
|
|
data_w = data[0].split(/[ ]+/);
|
|
console.log(data_w);
|
|
name = [];
|
|
size = [];
|
|
alloc = [];
|
|
free = [];
|
|
expandsz = [];
|
|
frag = [];
|
|
cap = [];
|
|
dedup = [];
|
|
health = [];
|
|
altroot = [];
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
data_w = data[i].split(/[ ]+/);
|
|
if(data_w.length == 10) {
|
|
name.push(data_w[0].trim());
|
|
size.push(data_w[1].trim());
|
|
alloc.push(data_w[2].trim());
|
|
free.push(data_w[3].trim());
|
|
expandsz.push(data_w[4].trim());
|
|
frag.push(data_w[5].trim());
|
|
cap.push(data_w[6].trim());
|
|
dedup.push(data_w[7].trim());
|
|
health.push(data_w[8].trim());
|
|
altroot.push(data_w[9].trim());
|
|
}
|
|
}
|
|
}
|
|
res.render('list-zpool', { title: 'List Zpool', name:name, size:size, alloc:alloc,
|
|
free:free, expandsz:expandsz, frag:frag, cap:cap, dedup:dedup, health:health, altroot:altroot });
|
|
});
|
|
});
|
|
|
|
router.get('/prstat', function(req, res, next) {
|
|
exec('prstat', ['-Z', '0', '1'], function(err, data) {
|
|
console.log(err);
|
|
console.log(data);
|
|
data = data.substring(data.indexOf('ZONEID'), data.indexOf('Total'));
|
|
data = data.split(os.EOL);
|
|
data_w = data[0].trim().split(/[ ]+/);
|
|
console.log(data_w);
|
|
zoneid = [];
|
|
nproc = [];
|
|
swap = [];
|
|
rss = [];
|
|
memory = [];
|
|
time = [];
|
|
cpu = [];
|
|
zone = [];
|
|
for(var i = 0; i < data.length; i++) {
|
|
if(data[i]) {
|
|
data_w = data[i].trim().split(/[ ]+/);
|
|
if(data_w.length == 8) {
|
|
zoneid.push(data_w[0].trim());
|
|
nproc.push(data_w[1].trim());
|
|
swap.push(data_w[2].trim());
|
|
rss.push(data_w[3].trim());
|
|
memory.push(data_w[4].trim());
|
|
time.push(data_w[5].trim());
|
|
cpu.push(data_w[6].trim());
|
|
zone.push(data_w[7].trim());
|
|
}
|
|
}
|
|
}
|
|
res.render('prstat', { title: 'Prstat', zoneid:zoneid, nproc:nproc, swap:swap, rss:rss, memory:memory,
|
|
time:time, cpu:cpu, zone:zone });
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|