Viewing File server/web/localtest.edit.php of 1.00.1a
|
1: <?php 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: if ($NATS_Session->userlevel<5) UL_Error("Edit Local Test"); 32: ob_end_flush(); 33: Screen_Header("Local Test Editor",1,1,"","main","nodes"); 34: ?> 35: <br> 36: <?php 37: $q="SELECT * FROM fnlocaltest WHERE localtestid=".ss($_REQUEST['localtestid'])." LIMIT 0,1"; 38: $r=$NATS->DB->Query($q); 39: if (!$row=$NATS->DB->Fetch_Array($r)) 40: { 41: echo "No such test!<br><br>"; 42: Screen_Footer(); 43: exit(); 44: } 45: if ($row['testname']!="") $nicename=$row['testname']; 46: else $nicename=lText($row['testtype']); 47: 48: echo "<b class=\"subtitle\">Editing Test: <a href=node.edit.php?nodeid=".$row['nodeid'].">".$row['nodeid']."</a> > ".$nicename."</b><br><br>"; 49: 50: if (isset($_REQUEST['message'])) 51: { 52: echo "<b>".$_REQUEST['message']."</b><br><br>"; 53: $poplist[]=$_REQUEST['message']; 54: } 55: $title="<b class=\"sectitle\">Test Settings</b>"; 56: Start_Round($title,600); 57: 58: echo "<table border=0 width=100%>"; 59: echo "<form action=localtest.action.php method=post>"; 60: echo "<input type=hidden name=localtestid value=".$_REQUEST['localtestid'].">"; 61: echo "<input type=hidden name=action value=save_form>"; 62: echo "<tr><td><b>Test Type :</b></td>"; 63: echo "<td><b>".lText($row['testtype']); 64: echo "</b></td></tr>"; 65: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 66: echo "<tr><td valign=top align=left>Test Options :</td><td>"; // new style multi-param options 67: 68: switch ($row['testtype']) 69: { 70: case "web": case "wsize": case "wtime": 71: echo "URL: <input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\"><br>"; 72: echo "<i>Full URL such as https://www.somehost.com/</i>"; 73: break; 74: case "icmp": case "ping": 75: echo "Host/IP: <input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\"><br>"; 76: echo "<i>DNS hostname or IP address to ping (DNS lookup not timed)</i>"; 77: break; 78: 79: case "testloop": case "testrand": 80: echo "Value: <input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\"><br>"; 81: echo "<i>Value for loop or rand tests (see documentation)</i>"; 82: break; 83: 84: case "tcp": 85: echo "Port: <input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\"><br>"; 86: echo "<i>TCP Port to connect to</i>"; 87: break; 88: 89: case "host": 90: echo "Host: <input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\"><br>"; 91: echo "<i>Hostname to resolve or IP to reverse lookup</i>"; 92: break; 93: 94: case "dns": 95: echo "<table border=0>"; 96: echo "<tr><td align=left>"; 97: echo "Host/Domain/IP :"; 98: echo "</td><td align=left>"; 99: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 100: echo "</td></tr>"; 101: echo "<tr><td align=left>"; 102: echo "Nameserver :"; 103: echo "</td><td align=left>"; 104: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 105: echo "</td></tr>"; 106: echo "<tr><td colspan=2><i>Leave blank to use the node's hostname</i></td></tr>"; 107: echo "<tr><td align=left>"; 108: echo "Query Type :"; 109: echo "</td><td align=left>"; 110: echo "<select name=testparam2>"; 111: if ($row['testparam2']!="") 112: echo "<option value=".$row['testparam2'].">".$row['testparam2']."</option>"; 113: echo "<option value=A>A</option>"; 114: echo "<option value=MX>MX</option>"; 115: echo "<option value=MX>NS</option>"; 116: echo "<option value=PTR>PTR</option>"; 117: echo "<option value=MX>SOA</option>"; 118: echo "</select>"; 119: echo "</td></tr>"; 120: echo "<tr><td align=left>"; 121: echo "Port :"; 122: echo "</td><td align=left>"; 123: echo "<input type=text name=testparam3 size=10 maxlength=128 value=\"".$row['testparam3']."\">"; 124: echo "</td></tr>"; 125: echo "<tr><td colspan=2><i>Leave blank to use protocol default port (53)</i></td></tr>"; 126: echo "<tr><td align=left>"; 127: echo "TCP :"; 128: echo "</td><td align=left>"; 129: if ($row['testparam4']==1) $s=" checked"; 130: else $s=""; 131: echo "<input type=checkbox name=testparam4 value=1".$s.">"; 132: echo "</td></tr>"; 133: echo "<tr><td colspan=2><i>Uses UDP if unchecked</i></td></tr>"; 134: echo "</table>"; 135: break; 136: 137: case "imap": 138: echo "<table border=0>"; 139: echo "<tr><td align=left>"; 140: echo "Hostname :"; 141: echo "</td><td align=left>"; 142: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 143: echo "</td></tr>"; 144: echo "<tr><td align=left>"; 145: echo "Username :"; 146: echo "</td><td align=left>"; 147: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 148: echo "</td></tr>"; 149: echo "<tr><td align=left>"; 150: echo "Password :"; 151: echo "</td><td align=left>"; 152: //echo "<input type=password name=testparam2 size=30 maxlength=128 value=\"".$row['testparam2']."\">"; // debug 153: echo "<input type=text name=testparam2 size=30 maxlength=128 value=\"\">"; 154: echo "<input type=hidden name=keepparam2 value=1>"; 155: echo "</td></tr>"; 156: echo "<tr><td colspan=2><i>Leave blank to not change or <input type=checkbox name=clearparam2 value=1> click to clear</i></td></tr>"; 157: echo "<tr><td align=left>"; 158: echo "Protocol :"; 159: echo "</td><td align=left>"; 160: if ($row['testparam3']=="") $protocol="imap"; 161: else $protocol=$row['testparam3']; 162: echo "<select name=testparam3>"; 163: echo "<option value=".$protocol.">".$protocol."</option>"; 164: echo "<option value=imap>imap</option>"; 165: echo "<option value=pop3>pop3</option>"; 166: echo "</select>"; 167: echo "</td></tr>"; 168: echo "<tr><td align=left>"; 169: echo "Port :"; 170: echo "</td><td align=left>"; 171: echo "<input type=text name=testparam4 size=10 maxlength=128 value=\"".$row['testparam4']."\">"; 172: echo "</td></tr>"; 173: echo "<tr><td colspan=2><i>Leave blank use protocol default port (110, 143 etc)</i></td></tr>"; 174: echo "<tr><td align=left>"; 175: echo "SSL :"; 176: echo "</td><td align=left>"; 177: if ($row['testparam5']==1) $s=" checked"; 178: else $s=""; 179: echo "<input type=checkbox name=testparam5 value=1".$s.">"; 180: echo "</td></tr>"; 181: echo "</table>"; 182: break; 183: 184: case "mysql": case "mysqlrows": 185: echo "<table border=0>"; 186: echo "<tr><td align=left>"; 187: echo "Hostname :"; 188: echo "</td><td align=left>"; 189: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 190: echo "</td></tr>"; 191: echo "<tr><td align=left>"; 192: echo "Username :"; 193: echo "</td><td align=left>"; 194: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 195: echo "</td></tr>"; 196: echo "<tr><td align=left>"; 197: echo "Password :"; 198: echo "</td><td align=left>"; 199: //echo "<input type=password name=testparam2 size=30 maxlength=128 value=\"".$row['testparam2']."\">"; // debug 200: echo "<input type=text name=testparam2 size=30 maxlength=128 value=\"\">"; 201: echo "<input type=hidden name=keepparam2 value=1>"; 202: echo "</td></tr>"; 203: echo "<tr><td colspan=2><i>Leave blank to not change or <input type=checkbox name=clearparam2 value=1> click to clear</i></td></tr>"; 204: 205: //echo "<tr><td colspan=2><i>Leave blank use protocol default port (110, 143 etc)</i></td></tr>"; 206: 207: echo "<tr><td align=left>"; 208: echo "Database :"; 209: echo "</td><td align=left>"; 210: echo "<input type=text name=testparam3 size=30 maxlength=128 value=\"".$row['testparam3']."\">"; 211: echo "</td></tr>"; 212: echo "<tr><td colspan=2><i>Optional - leave blank to not bother with select_db</td></tr>"; 213: 214: echo "<tr><td align=left>"; 215: echo "Query :"; 216: echo "</td><td align=left>"; 217: echo "<input type=text name=testparam4 size=30 maxlength=128 value=\"".$row['testparam4']."\">"; 218: echo "</td></tr>"; 219: echo "<tr><td colspan=2><i>Optional - leave blank to not bother with a query</td></tr>"; 220: 221: echo "</table>"; 222: break; 223: /* 224: case "smtp": 225: echo "<table border=0>"; 226: echo "<tr><td align=left>"; 227: echo "Hostname :"; 228: echo "</td><td align=left>"; 229: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 230: echo "</td></tr>"; 231: echo "<tr><td align=left>"; 232: echo "Port :"; 233: echo "</td><td align=left>"; 234: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 235: echo "</td></tr>"; 236: 237: echo "<tr><td colspan=2><i>Optional - leave blank to use the default (25)</td></tr>"; 238: 239: echo "</table>"; 240: break; 241: */ 242: default: 243: 244: $idx=$NATS->Tests->Get($row['testtype']); 245: if ($idx>=0) 246: { 247: // Test-specific formatting here 248: 249: $pcount=0; // param count 250: //echo $NATS->Tests->Tests[$row['testtype']]->parameters; 251: if (isset($NATS->Tests->Tests[$row['testtype']]->parameters) && is_array($NATS->Tests->Tests[$row['testtype']]->parameters) 252: && (count($NATS->Tests->Tests[$row['testtype']]->parameters)>0) ) 253: { 254: echo "<table border=0>"; 255: foreach($NATS->Tests->Tests[$row['testtype']]->parameters as $param) 256: { 257: $pname="testparam"; 258: if ($pcount>0) $pname.=$pcount; 259: $undertext=""; 260: $pos=strpos($param,"/"); 261: if ($pos>0) 262: { 263: $undertext=substr($param,$pos+1); 264: $param=substr($param,0,$pos); 265: } 266: echo "<tr><td align=right>"; 267: echo $param; 268: echo " :</td><td align=left>"; 269: echo "<input type=text name=\"".$pname."\" value=\"".$row[$pname]."\" size=30 maxlength=128>"; 270: echo "</td></tr>"; 271: if ($undertext!="") 272: { 273: echo "<tr><td> </td><td align=left><i>".$undertext."</i></td></tr>"; 274: } 275: $pcount++; 276: } 277: echo "</table>"; 278: } 279: else 280: { 281: $NATS->Tests->Tests[$row['testtype']]->Create(); 282: $out=$NATS->Tests->Tests[$row['testtype']]->instance->DisplayForm($row); 283: if ($out===false) echo "<i>No options for test</i>"; 284: else echo $out; 285: } 286: 287: 288: 289: 290: } 291: 292: 293: // And the catch-all of catch-alls 294: else echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 295: } 296: 297: echo "</td></tr>"; 298: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 299: echo "<tr><td>Custom Name :</td>"; 300: echo "<td><input type=text size=30 name=testname maxlength=64 value=\"".$row['testname']."\"> ".hlink("Test:Name"); 301: echo "</td></tr>"; 302: echo "<tr><td>Test Enabled :</td>"; 303: echo "<td>"; 304: if ($row['testenabled']==1) $s=" checked"; 305: else $s=""; 306: echo "<input type=checkbox name=testenabled value=1".$s."> "; 307: echo hlink("Test:Enabled"); 308: echo "</td></tr>"; 309: echo "<tr><td>Recorded :</td><td>"; 310: if ($row['testrecord']==1) $s=" checked"; 311: else $s=""; 312: echo "<input type=checkbox name=testrecord value=1".$s."> ".hlink("Test:Recorded"); 313: echo "</td></tr>"; 314: echo "<tr><td>Simple Evaluation :</td><td>"; 315: if ($row['simpleeval']==1) $s=" checked"; 316: else $s=""; 317: echo "<input type=checkbox name=simpleeval value=1".$s."> ".hlink("Test:SimpleEvaluation"); 318: echo "</td></tr>"; 319: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 320: echo "<tr><td>Test Interval :</td>"; 321: echo "<td><input type=text size=3 name=testinterval maxlength=2 value=\"".$row['testinterval']."\"> Minutes ".hlink("Test:Interval"); 322: echo "</td></tr>"; 323: echo "<input type=hidden name=original_testinterval value=\"".$row['testinterval']."\">"; 324: echo "<tr><td valign=top>Test Due :</td>"; 325: echo "<td>"; 326: if ($row['nextrunx']>0) echo nicedt($row['nextrunx'])." - ".nicenextx($row['nextrunx']); 327: else echo "Now"; 328: echo "</td></tr>"; 329: echo "<tr><td valign=top>Last Tested :</td>"; 330: echo "<td>".nicedt($row['lastrunx'])." - ".dtago($row['lastrunx'])."<br>"; 331: echo "<a href=localtest.action.php?localtestid=".$_REQUEST['localtestid']."&action=invalidate>Check ASAP</a>"; 332: echo "</td></tr>"; 333: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 334: echo "<tr><td>Custom Attempts :</td>"; 335: echo "<td><input type=text size=3 name=attempts maxlength=2 value=\"".$row['attempts']."\"> ".hlink("Test:Attempts"); 336: echo "</td></tr>"; 337: echo "<tr><td>Custom Timeout :</td>"; 338: echo "<td><input type=text name=timeout size=3 maxlength=3 value=\"".$row['timeout']."\"> Seconds ".hlink("Test:Timeout"); 339: echo "</td></tr>"; 340: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 341: echo "<tr><td> </td><td><input type=submit value=\"Save Test Settings\"> <a href=node.edit.php?nodeid=".$row['nodeid'].">Abandon Changes</a>"; 342: echo "</td></tr></form>"; 343: echo "</table>"; 344: End_Round(); 345: echo "<br><br>"; 346: 347: 348: 349: $t="<b class=\"sectitle\">Test Evaluators</b>"; 350: Start_Round($t,600); 351: 352: 353: echo "<table border=0 width=100%>"; 354: echo "<tr><td colspan=2> <br>"; 355: if ($row['simpleeval']==1) 356: { 357: echo "<i>Custom evaluators will not be processed as<br>Simple Evaluation is checked (above)</i><br>"; 358: } 359: echo "</td></tr>"; 360: 361: $q="SELECT * FROM fneval WHERE testid=\"L".ss($_REQUEST['localtestid'])."\" ORDER BY weight ASC"; 362: $r=$NATS->DB->Query($q); 363: while ($row=$NATS->DB->Fetch_Array($r)) 364: { 365: echo "<tr><td colspan=2>"; 366: echo "<a href=eval.action.php?action=delete&back=".urlencode("localtest.edit.php?localtestid=".$_REQUEST['localtestid']."&message=Evaluator+Deleted")."&evalid=".$row['evalid'].">"; 367: echo "<img src=images/options/action_delete.png border=0 style=\"vertical-align: bottom;\"></a> "; 368: echo "Result ".eval_operator_text($row['eoperator'])." ".$row['evalue']." => ".oText($row['eoutcome']).""; 369: //echo " | <a href=eval.action.php?action=move&dir=up&evalid=".$row['evalid'].">Up</a>/<a href=eval.action.php?action=move&dir=dn&evalid=".$row['evalid'].">Down</a>"; 370: echo "</td></tr>"; 371: //echo "<tr><td colspan=2> </td></tr>"; 372: } 373: 374: echo "<form action=eval.action.php>"; 375: echo "<input type=hidden name=action value=create>"; 376: echo "<input type=hidden name=testid value=L".$_REQUEST['localtestid'].">"; 377: echo "<tr><td colspan=2> <br></td></tr>"; 378: echo "<tr><td><b>Add New :</b></td>"; 379: echo "<td><select name=eoperator>"; 380: echo "<option value=ET>Equal To</option><option value=LT>Less Than</option><option value=GT>Greater Than</option>"; 381: echo "</select> <input type=text name=evalue size=4 value=0> => "; 382: echo "<select name=eoutcome>"; 383: echo "<option value=1>Warning</option>"; 384: echo "<option value=2>Failure</option>"; 385: echo "</select> <input type=submit value=Add></td></tr>"; 386: echo "</form>"; 387: 388: 389: echo "</table>"; 390: End_Round(); 391: 392: ?> 393: 394: <?php 395: Screen_Footer(); 396: ?> 397: