diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-07-19 09:30:53 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:29:42 -0500 |
commit | 82f1a9474d85f75291d0af0e51d55fa904d42055 (patch) | |
tree | e7875ca9d28e260d4b30cd5cb5ff7a88024c952f | |
parent | 0e7b9f84ce2dcd5363409acc99a7b887a29be595 (diff) | |
download | samba-82f1a9474d85f75291d0af0e51d55fa904d42055.tar.gz samba-82f1a9474d85f75291d0af0e51d55fa904d42055.tar.bz2 samba-82f1a9474d85f75291d0af0e51d55fa904d42055.zip |
r8590: added server status utility functions for checking on the status of a task via irpc
- for stream tasks, returns the number of connections
- for non-stream tasks, returns "RUNNING"
For both, return "DISABLED" or "NOT RESPONDING" appropriately
(This used to be commit 78d6303814382f7835212f5045f12180e396b540)
-rw-r--r-- | source4/scripting/libjs/base.js | 11 | ||||
-rw-r--r-- | source4/scripting/libjs/management.js | 69 |
2 files changed, 80 insertions, 0 deletions
diff --git a/source4/scripting/libjs/base.js b/source4/scripting/libjs/base.js index 181b3ca959..39b62b133e 100644 --- a/source4/scripting/libjs/base.js +++ b/source4/scripting/libjs/base.js @@ -87,3 +87,14 @@ function substitute_var(str, subobj) } return join("", list); } + +/* + return "s" if a number should be shown as plural +*/ +function plural(n) +{ + if (n == 1) { + return ""; + } + return "s"; +} diff --git a/source4/scripting/libjs/management.js b/source4/scripting/libjs/management.js index 8b04247248..7130cdc5dd 100644 --- a/source4/scripting/libjs/management.js +++ b/source4/scripting/libjs/management.js @@ -91,3 +91,72 @@ function nbtd_statistics() } return io.results[0].info.stats; } + +/* + see if a service is enabled +*/ +function service_enabled(name) +{ + var services = lpGet("server services"); + var i; + for (i=0;i<services.length;i++) { + if (services[i] == name) { + return true; + } + } + return false; +} + +/* + show status of a server +*/ +function server_status(name) +{ + var conn = new Object(); + var i; + var io; + var irpc = irpc_init(); + + if (!service_enabled(name)) { + return "DISABLED"; + } + + status = irpc_connect(conn, name + "_server"); + if (status.is_ok != true) { + return "DOWN"; + } + + var io = irpcObj(); + status = irpc.irpc_uptime(conn, io); + if (status.is_ok != true) { + return "NOT RESPONDING"; + } + + return "RUNNING"; +} + +/* + show status of a stream server +*/ +function stream_server_status(name) +{ + var conn = new Object(); + var irpc = irpc_init(); + + if (!service_enabled(name)) { + return "DISABLED"; + } + status = irpc_connect(conn, name + "_server"); + if (status.is_ok != true) { + return "0 connections"; + } + + var io = irpcObj(); + status = irpc.irpc_uptime(conn, io); + if (status.is_ok != true) { + return "NOT RESPONDING"; + } + + var n = io.results.length; + return sprintf("%u connection%s", n, plural(n)); +} |