Browse Source

Merge branch 'master' of https://github.com/k3oni/pydash

windows
root 12 years ago
parent
commit
667ff09dd9
  1. 9
      README.md
  2. 17
      main/views.py
  3. 3
      pydash/settings.py
  4. 5
      static/css/style.css
  5. 20
      static/js/dashboard.js
  6. 39
      templates/main.html
  7. 8
      usage/views.py

9
README.md

@ -1,7 +1,7 @@
pyDash - v1.4
pyDash - v1.4.2
======
A small web monitoring dashboard for your linux pc/server writen in Python and Django + Chart.js.
A small web-based monitoring dashboard for your linux pc/server writen in Python and Django + Chart.js.
The dashboard is built using only Python libraries available in the main Python distribution, trying to create a small list of dependencies without the need of installing many packages or libraries.
@ -67,3 +67,8 @@ Credits
[Dashboard Template](http://www.egrappler.com/templatevamp-free-twitter-bootstrap-admin-template/),
[Bootstrap](http://getbootstrap.com/),
[Font Awesome](http://fontawesome.io/)
Follow [@hostechs](https://twitter.com/hostechs) on Twitter
[![Flattr this](http://api.flattr.com/button/flattr-badge-large.png)](http://flattr.com/thing/2630601/k3onipydash-on-GitHub "Flattr this")

17
main/views.py

@ -71,12 +71,18 @@ def get_ipaddress():
Get the IP Address
"""
try:
pipe = os.popen(" ip addr | grep -A3 'LOWER_UP' | awk '{printf \"%s,\",$2}'|awk -F,, '{print $0}'")
if get_platform()['osname'] == "Linux":
pipe = os.popen("ip addr | grep -A3 'LOWER_UP' | awk '{if ($2 == \"forever\"){printf \"unavailable,\"} else{ printf \"%s,\",$2}}'|awk -F,, '{print $0}'")
else:
pipe = os.popen("ip addr | grep -A3 'LOWER_UP' | awk '{if ($2 == \"forever\"){printf \"unavailable,,\"} else{ printf \"%s,\",$2}}'|awk -F,, '{print $0}'")
data = pipe.read().strip().split(',,')
pipe.close()
data = [n for n in data if not n.startswith(('lo', '127'))]
data = [i.split(',', 4) for i in data]
if len(data) == 2:
del data[0]
if len(data) > 2:
data = data[1:-1]
itf = []
for e in data:
@ -123,8 +129,11 @@ def get_users():
data = pipe.read().strip().split('\n')
pipe.close()
data = [i.split(None, 3) for i in data]
if data == [""]:
data = None
else:
data = [i.split(None, 3) for i in data]
except Exception, err:
data = str(err)

3
pydash/settings.py

@ -19,7 +19,6 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '1)$crmowu-23tz@i2-d=7tb3t+1u&(pm!lnjyuarki^72h!3af'
#SECRET_KEY = '1)$-23tz@i2-d=7tb3t+1u&(pm!lnjyuarki^72h!3a9'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
@ -37,7 +36,7 @@ TIME_JS_REFRESH = 30000
TIME_JS_REFRESH_LONG = 120000
TIME_JS_REFRESH_NET = 2000
VERSION = 1.4
VERSION = "1.4.2"
ALLOWED_HOSTS = ['*']

5
static/css/style.css

@ -410,12 +410,8 @@ textarea {
.widget-content {
padding: 20px 15px 15px;
background: #FFF;
border: 1px solid #D5D5D5;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
@ -423,7 +419,6 @@ textarea {
.widget-header+.widget-content {
border-top: none;
-webkit-border-top-left-radius: 0;
-webkit-border-top-right-radius: 0;
-moz-border-radius-topleft: 0;

20
static/js/dashboard.js

@ -153,11 +153,14 @@ dashboard.getUsers = function() {
{ sTitle: "USER" },
{ sTitle: "TTY" },
{ sTitle: "LOOGED IN FROM",
sDefaultContent: "unavailable" }
sDefaultContent: "unavailable" }
],
bPaginate: false,
bFilter: true,
sDom: "lrtip",
aaSorting: [
[0, "desc"]
],
bPaginate: true,
sPaginationType: "two_button",
bFilter: false,
bAutoWidth: false,
bInfo: false
}).fadeIn();
@ -247,3 +250,12 @@ dashboard.getIps = function() {
});
}
//Expand-Contract div/table
$(document).ready(function() {
$(".widget-content").show();
$(".widget-header").click(function()
{
$(this).next(".widget-content").slideToggle(500);
$("i",this).toggleClass("icon-minus icon-plus");
});
});

39
templates/main.html

@ -61,12 +61,10 @@
<div class="span3">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-info-sign"></i>
<h3>General Info</h3>
<div class="widget-header"> <i class="icon-dashboard"></i>
<h3>General Info</h3><i class="icon-minus"></i>
<div id="refresh-os">
</div>
</div>
<!-- /widget-header -->
<div class="widget-content">
@ -87,8 +85,8 @@
<div class="span3">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-info-sign"></i>
<h3>CPU Usage %</h3>
<div class="widget-header"> <i class="icon-check"></i>
<h3>CPU Usage %</h3><i class="icon-minus"></i>
<div id="refresh-cpu">
</div>
</div>
@ -108,9 +106,8 @@
<div class="span6">
<div class="widget widget-nopad">
<div class="widget-header">
<i class="icon-list-alt"></i>
<h3>Memory Usage</h3>
<div class="widget-header"> <i class="icon-list-alt"></i>
<h3>Memory Usage</h3><i class="icon-minus"></i>
<div id="refresh-ram">
</div>
</div>
@ -130,7 +127,7 @@
<div class="span6">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-hdd"></i>
<h3>Disk Usage</h3>
<h3>Disk Usage</h3><i class="icon-minus"></i>
<div id="refresh-df">
</div>
</div>
@ -146,7 +143,7 @@
<div class="span6">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-bolt"></i>
<h3>Load Average</h3>
<h3>Load Average</h3><i class="icon-minus"></i>
<div id="refresh-load">
</div>
</div>
@ -167,8 +164,8 @@
<div class="row">
<div class="span6">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-monitor"></i>
<h3>IP Adresses</h3>
<div class="widget-header"> <i class="icon-level-up"></i>
<h3>IP Adresses</h3><i class="icon-minus"></i>
<div id="refresh-ip">
</div>
</div>
@ -185,8 +182,8 @@
<div class="span3">
<div class="widget">
<div class="widget-header"> <i class="icon-monitor"></i>
<h3>Internet Traffic</h3>
<div class="widget-header"> <i class="icon-exchange"></i>
<h3>Internet Traffic</h3><i class="icon-minus"></i>
<div id="refresh-ispeed">
</div>
</div>
@ -207,8 +204,8 @@
<div class="span3">
<div class="widget">
<div class="widget-header"> <i class="icon-monitor"></i>
<h3>Disk Reads/Writes</h3>
<div class="widget-header"> <i class="icon-angle-up"></i>
<h3>Disk Reads/Writes</h3><i class="icon-minus"></i>
<div id="refresh-diskio">
</div>
</div>
@ -233,7 +230,7 @@
<div class="span6">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-group"></i>
<h3>Online</h3>
<h3>Online</h3><i class="icon-minus"></i>
<div id="refresh-online">
</div>
</div>
@ -250,7 +247,7 @@
<div class="span6">
<div class="widget widget-table action-table">
<div class="widget-header"> <i class="icon-angle-down"></i>
<h3>Netstat</h3>
<h3>Netstat</h3><i class="icon-minus"></i>
<div id="refresh-netstat">
</div>
</div>
@ -270,8 +267,8 @@
<div class="row">
<div class="span12">
<div class="widget">
<div class="widget-header"> <i class="icon-dashboard"></i>
<h3> Processes </h3>
<div class="widget-header"> <i class="icon-list-alt"></i>
<h3> Processes </h3><i class="icon-minus"></i>
<div id="refresh-ps">
</div>
</div>

8
usage/views.py

@ -244,7 +244,7 @@ def memusage(request):
if not cookies:
datasets.append(0)
else:
datasets = eval(cookies)
datasets = json.loads(cookies)
if len(datasets) > 10:
while datasets:
del datasets[0]
@ -303,7 +303,7 @@ def loadaverage(request):
if not cookies:
datasets.append(0)
else:
datasets = eval(cookies)
datasets = json.loads(cookies)
if len(datasets) > 10:
while datasets:
del datasets[0]
@ -375,7 +375,7 @@ def gettraffic(request):
datasets_out.append(0)
datasets_out_o.append(0)
else:
datasets = eval(cookies)
datasets = json.loads(cookies)
datasets_in = datasets[0]
datasets_out = datasets[1]
datasets_in_i = datasets[2]
@ -498,7 +498,7 @@ def getdiskio(request):
datasets_out.append(0)
datasets_out_o.append(0)
else:
datasets = eval(cookies)
datasets = json.loads(cookies)
datasets_in = datasets[0]
datasets_out = datasets[1]
datasets_in_i = datasets[2]

Loading…
Cancel
Save