File: 1.01.2a/server/web/main.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008 PurplePixie Systems 6: 7: FreeNATS is free software: you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation, either version 3 of the License, or 10: (at your option) any later version. 11: 12: FreeNATS is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with FreeNATS. If not, see www.gnu.org/licenses 19: 20: For more information see www.purplepixie.org/freenats 21: -------------------------------------------------------------- */ 22: 23: ob_start(); 24: require("include.php"); 25: $NATS->Start(); 26: if (!$NATS_Session->Check($NATS->DB)) 27: { 28: header("Location: ./?login_msg=Invalid+Or+Expired+Session"); 29: exit(); 30: } 31: ob_end_flush(); 32: 33: if (isset($_REQUEST['mode'])) $mode=$_REQUEST['mode']; 34: else 35: { 36: $mode="overview"; 37: $_REQUEST['mode']="overview"; 38: } 39: 40: Screen_Header("Monitoring Configuration",1,0,"","main"); 41: 42: if (isset($_REQUEST['message'])) 43: { 44: echo "".$_REQUEST['message']."
";
45: $poplist[]=$_REQUEST['message']; 46: } 47: 48: if (isset($_REQUEST['nodemove'])) $nm=true; 49: else $nm=false; 50: 51: function dispyn($val) 52: { 53: if ($val==0) return "N"; 54: else if ($val==1) return "Y"; 55: else return $val."?"; 56: } 57: 58: ?> 59:
60: 61: if (isset($_REQUEST['check_updates'])) 62: { 63: // check for updates 64: $dq="?CheckVersion=".$NATS->Version."&JSMode=1"; 65: $dl="http://www.purplepixie.org/freenats/download.php"; 66: $du=$dl.$dq; 67: echo "Checking for Updates: "; 68: echo "\n"; 69: echo "
";
70: if (!isset($_REQUEST['quiet_check'])) 71: { 72: echo "If this test fails you can check on the website.
";
73: echo "You are currently running version "; 74: echo $NATS->Version.$NATS->Release."."; 75: echo "
It is recommended that you check regularly for updates
";
76: } 77: echo "
";
78: } 79: 80: 81: if ($mode=="overview") 82: { 83: $t="FreeNATS Overview"; 84: Start_Round($t,600); 85: echo ""; 98: 99: echo ""; 100: $fx=time(); 101: $sx=$fx-(60*60*24); 102: echo ""; 122: echo ""; 123: echo ""; 128: echo ""; 129: echo ""; 163: echo "
"; 86: $al=$NATS->GetAlerts(); 87: if (($al===false)||(count($al)==0)) 88: { 89: echo "No Monitoring Alerts"; 90: } 91: else 92: { 93: echo ""; 94: echo "Monitoring Alerts"; 95: echo ""; 96: } 97: echo "Check for Updates

"; 103: echo "Monitoring

";
104: $nq="SELECT COUNT(nodeid) FROM fnnode"; 105: $nr=$NATS->DB->Query($nq); 106: if ($nrow=$NATS->DB->Fetch_Array($nr)) $nodecount=$nrow['COUNT(nodeid)']; 107: else $nodecount=0; 108: $NATS->DB->Free($nr); 109: $gq="SELECT COUNT(groupid) FROM fngroup"; 110: $gr=$NATS->DB->Query($gq); 111: if ($nrow=$NATS->DB->Fetch_Array($gr)) $groupcount=$nrow['COUNT(groupid)']; 112: else $groupcount=0; 113: $NATS->DB->Free($gr); 114: echo "".$nodecount." Nodes Configured

";
115: echo "".$groupcount." Node Groups
";
116: echo "
"; 117: echo "Common Tasks

";
118: echo "Add Nodes
";
119: echo "Email Alerting
";
120: echo "Configure Tests
";
121: echo "

Test Summaries

"; 124: echo "Today - "; 125: echo "Last 24 Hrs - "; 126: echo "Custom"; 127: echo "

"; 130: /* 131: echo "Installed Test Modules

";
132: echo ""; 133: echo ""; 134: foreach($NATS->Tests->QuickList as $key => $val) 135: { 136: echo ""; 145: } 146: echo "
NameProvidesRevisionAdditional
"; 137: echo $NATS->Tests->Tests[$key]->name; 138: echo ""; 139: echo $NATS->Tests->Tests[$key]->type; 140: echo ""; 141: echo $NATS->Tests->Tests[$key]->revision; 142: echo ""; 143: echo $NATS->Tests->Tests[$key]->additional; 144: echo "
";
147: */ 148: echo "Monitored Nodes

";
149: $q="SELECT nodeid,nodename,alertlevel FROM fnnode WHERE nodeenabled=1 ORDER BY alertlevel DESC, weight ASC"; 150: $r=$NATS->DB->Query($q); 151: $first=true; 152: while ($row=$NATS->DB->Fetch_Array($r)) 153: { 154: if ($first) $first=false; 155: else echo ", "; 156: echo ""; 157: echo ""; 158: if ($row['nodename']!="") echo $row['nodename']; 159: else echo $row['nodeid']; 160: echo ""; 161: } 162: echo "
";
164: echo "
";
165: End_Round(); 166: echo "

";
167: } 168: 169: else if ($mode=="nodes") 170: { 171: 172: if ($nm) 173: { 174: $q="SELECT nodeid,weight FROM fnnode ORDER BY weight ASC"; 175: $r=$NATS->DB->Query($q); 176: $nml="Move Before "; 182: $NATS->DB->Free($r); 183: } 184: 185: Start_Round("Nodes ".hlink("Node",12),600); 186: $q="SELECT nodeid,nodename,alertlevel,weight FROM fnnode ORDER BY weight ASC"; 187: $r=$NATS->DB->Query($q); 188: 189: echo ""; 190: echo ""; 191: $f=0; 192: $l=$NATS->DB->Num_Rows($r); 193: while ($row=$NATS->DB->Fetch_Array($r)) 194: { 195: //echo ""; 210: 211: if ($nm) 212: { 213: echo "
";
214: echo ""; 215: echo ""; 216: } 217: 218: echo ""; 243: 244: if ($nm) echo ""; 245: $f++; 246: 247: echo ""; 248: } 249: echo ""; 250: echo "
";
251: echo ""; 255: 256: $fx=time(); 257: $sx=$fx-(60*60*24); 258: echo ""; 262: 263: echo "
NodeOptionsMove
"; 196: echo "
"; 197: echo ""; 198: 199: echo ""; 200: echo $row['nodename']; 201: echo ""; 202: 203: echo " "; 204: echo "(".$row['nodeid'].")"; 205: echo ""; 206: echo " "; 207: echo " "; 208: echo " "; 209: echo ""; 219: if ($f==0) echo ""; 220: else 221: { 222: echo ""; 223: echo ""; 224: echo ""; 225: } 226: 227: if ($f>=($l-1)) echo ""; 228: else 229: { 230: echo ""; 231: echo ""; 232: echo ""; 233: } 234: 235: if ($nm) 236: { 237: echo " [".$row['weight']."] "; 238: echo $nml; 239: echo " "; 240: } 241: 242: echo "
 
"; 252: echo hlink("Node:Create"); 253: if ($nm) echo " Refresh Weighting"; 254: echo "
Summary: Today - "; 259: echo "Last 24 Hrs - "; 260: echo "Custom - "; 261: echo "Configuration
";
264: End_Round(); 265: } 266: 267: else if ($mode=="groups") 268: { 269: 270: $t="Node Groups ".hlink("Group",12); 271: Start_Round($t,600); 272: 273: $q="SELECT groupid,groupname FROM fngroup ORDER BY weight ASC"; 274: $r=$NATS->DB->Query($q); 275: $f=0; 276: echo ""; 277: $l=$NATS->DB->Num_Rows($r); 278: while ($row=$NATS->DB->Fetch_Array($r)) 279: { 280: echo ""; 281: echo ""; 282: echo ""; 285: echo ""; 304: $f++; 305: 306: echo ""; 307: } 308: echo ""; 309: echo "
";
310: echo ""; 311: echo ""; 313: echo "
GroupAlertLevel($row['groupid'])."\">".$row['groupname'].""; 283: echo " "; 284: echo ""; 286: 287: if ($f==0) echo ""; 288: else 289: { 290: echo ""; 291: echo ""; 292: echo ""; 293: } 294: 295: if ($f>=($l-1)) echo ""; 296: else 297: { 298: echo ""; 299: echo ""; 300: echo ""; 301: } 302: 303: echo "
 
"; 312: echo " ".hlink("Group:Create")."
";
314: End_Round(); 315: } 316: 317: else if ($mode=="views") 318: { 319: $t="Views ".hlink("View",12); 320: Start_Round($t,600); 321: echo ""; 322: // get views... 323: $q="SELECT viewid,vtitle FROM fnview"; 324: $r=$NATS->DB->Query($q); 325: while ($row=$NATS->DB->Fetch_Array($r)) 326: { 327: echo ""; 334: } 335: 336: echo ""; 337: echo "
";
338: echo ""; 340: echo "
"; 328: echo "".$row['vtitle'].""; 329: echo ""; 330: echo ""; 331: echo " "; 332: echo ""; 333: echo "
 
"; 339: echo hlink("View:Create")."
";
341: End_Round(); 342: 343: echo "

";
344: $t="Availability Reports ".hlink("Report",12).""; 345: Start_Round($t,600); 346: echo "Create New Service Availability Report ".hlink("Report",12); 347: echo "

";
348: 349: // reports in here 350: $rq="SELECT reportid,reportname FROM fnreport"; 351: $rr=$NATS->DB->Query($rq); 352: if ($NATS->DB->Num_Rows($rr)>0) 353: { 354: echo ""; 355: while ($rep=$NATS->DB->Fetch_Array($rr)) 356: { 357: echo ""; 358: echo ""; 366: } 367: echo "
"; 359: echo "".$rep['reportname'].""; 360: echo ""; 361: echo ""; 362: echo ""; 363: echo ""; 364: echo "  "; 365: echo "
";
368: } 369: 370: End_Round(); 371: 372: } 373: 374: else if ($mode=="configsummary") 375: { 376: $scheds=array(); 377: $q="SELECT scheduleid,schedulename FROM fnschedule"; 378: $r=$NATS->DB->Query($q); 379: while ($row=$NATS->DB->Fetch_Array($r)) 380: { 381: $scheds[$row['scheduleid']]=$row['schedulename']; 382: } 383: $NATS->DB->Free($r); 384: 385: echo "Configuration Summary / Overview

";
386: echo ""; 387: echo ""; 388: echo ""; 391: echo ""; 394: echo ""; 397: echo ""; 400: echo ""; 403: echo ""; 406: echo ""; 409: echo ""; 412: echo ""; 413: $q="SELECT * FROM fnnode ORDER BY weight ASC"; 414: $r=$NATS->DB->Query($q); 415: while ($row=$NATS->DB->Fetch_Array($r)) 416: { 417: echo ""; 437: 438: echo ""; 439: } 440: $NATS->DB->Free($r); 441: echo "
"; 389: echo "Node ID"; 390: echo ""; 392: echo "Name"; 393: echo ""; 395: echo "Hostname"; 396: echo ""; 398: echo "Schedule"; 399: echo ""; 401: echo "Enabled"; 402: echo ""; 404: echo "Ping / Required"; 405: echo ""; 407: echo "Interval"; 408: echo ""; 410: echo "Nodeside"; 411: echo "
"; 418: echo $row['nodeid']; 419: echo ""; 420: echo $row['nodename']; 421: echo ""; 422: echo $row['hostname']; 423: echo ""; 424: if ($row['scheduleid']==0) $s="All Times"; 425: else if (isset($scheds[$row['scheduleid']])) $s=$scheds[$row['scheduleid']]; 426: else $s="UNKNOWN"; 427: echo $s; 428: echo ""; 429: echo dispyn($row['nodeenabled']); 430: echo ""; 431: echo dispyn($row['pingtest'])." / ".dispyn($row['pingfatal']); 432: echo ""; 433: echo $row['testinterval']; 434: echo ""; 435: echo dispyn($row['nsenabled']); 436: echo "


";
442: 443: } 444: 445: else 446: { 447: echo "Sorry - unknown mode for main.php"; 448: } 449: 450: 451: echo "

";
452: 453: ?> 454: 455: 456: 457: Screen_Footer(); 458: /* old PhoneHome Ping Tracker - now in screen as a png 459: $t=$NATS->Cfg->Get("freenats.tracker"); 460: if ( ($t!="") && ($t>0) ) 461: $NATS->PhoneHome(); 462: */ 463: ?> 464: