Viewing File server/web/localtest.edit.php of 1.02.3a
|
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: /* 138: case "imap": 139: echo "<table border=0>"; 140: echo "<tr><td align=left>"; 141: echo "Hostname :"; 142: echo "</td><td align=left>"; 143: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 144: echo "</td></tr>"; 145: echo "<tr><td align=left>"; 146: echo "Username :"; 147: echo "</td><td align=left>"; 148: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 149: echo "</td></tr>"; 150: echo "<tr><td align=left>"; 151: echo "Password :"; 152: echo "</td><td align=left>"; 153: //echo "<input type=password name=testparam2 size=30 maxlength=128 value=\"".$row['testparam2']."\">"; // debug 154: echo "<input type=text name=testparam2 size=30 maxlength=128 value=\"\">"; 155: echo "<input type=hidden name=keepparam2 value=1>"; 156: echo "</td></tr>"; 157: 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>"; 158: echo "<tr><td align=left>"; 159: echo "Protocol :"; 160: echo "</td><td align=left>"; 161: if ($row['testparam3']=="") $protocol="imap"; 162: else $protocol=$row['testparam3']; 163: echo "<select name=testparam3>"; 164: echo "<option value=".$protocol.">".$protocol."</option>"; 165: echo "<option value=imap>imap</option>"; 166: echo "<option value=pop3>pop3</option>"; 167: echo "</select>"; 168: echo "</td></tr>"; 169: echo "<tr><td align=left>"; 170: echo "Port :"; 171: echo "</td><td align=left>"; 172: echo "<input type=text name=testparam4 size=10 maxlength=128 value=\"".$row['testparam4']."\">"; 173: echo "</td></tr>"; 174: echo "<tr><td colspan=2><i>Leave blank use protocol default port (110, 143 etc)</i></td></tr>"; 175: echo "<tr><td align=left>"; 176: echo "SSL :"; 177: echo "</td><td align=left>"; 178: if ($row['testparam5']==1) $s=" checked"; 179: else $s=""; 180: echo "<input type=checkbox name=testparam5 value=1".$s.">"; 181: echo "</td></tr>"; 182: echo "</table>"; 183: break; 184: */ 185: /* 186: case "mysql": case "mysqlrows": 187: echo "<table border=0>"; 188: echo "<tr><td align=left>"; 189: echo "Hostname :"; 190: echo "</td><td align=left>"; 191: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 192: echo "</td></tr>"; 193: echo "<tr><td align=left>"; 194: echo "Username :"; 195: echo "</td><td align=left>"; 196: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 197: echo "</td></tr>"; 198: echo "<tr><td align=left>"; 199: echo "Password :"; 200: echo "</td><td align=left>"; 201: //echo "<input type=password name=testparam2 size=30 maxlength=128 value=\"".$row['testparam2']."\">"; // debug 202: echo "<input type=text name=testparam2 size=30 maxlength=128 value=\"\">"; 203: echo "<input type=hidden name=keepparam2 value=1>"; 204: echo "</td></tr>"; 205: 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>"; 206: 207: //echo "<tr><td colspan=2><i>Leave blank use protocol default port (110, 143 etc)</i></td></tr>"; 208: 209: echo "<tr><td align=left>"; 210: echo "Database :"; 211: echo "</td><td align=left>"; 212: echo "<input type=text name=testparam3 size=30 maxlength=128 value=\"".$row['testparam3']."\">"; 213: echo "</td></tr>"; 214: echo "<tr><td colspan=2><i>Optional - leave blank to not bother with select_db</td></tr>"; 215: 216: echo "<tr><td align=left>"; 217: echo "Query :"; 218: echo "</td><td align=left>"; 219: echo "<input type=text name=testparam4 size=30 maxlength=128 value=\"".$row['testparam4']."\">"; 220: echo "</td></tr>"; 221: echo "<tr><td colspan=2><i>Optional - leave blank to not bother with a query</td></tr>"; 222: 223: echo "</table>"; 224: break; 225: */ 226: /* 227: case "smtp": 228: echo "<table border=0>"; 229: echo "<tr><td align=left>"; 230: echo "Hostname :"; 231: echo "</td><td align=left>"; 232: echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 233: echo "</td></tr>"; 234: echo "<tr><td align=left>"; 235: echo "Port :"; 236: echo "</td><td align=left>"; 237: echo "<input type=text name=testparam1 size=30 maxlength=128 value=\"".$row['testparam1']."\">"; 238: echo "</td></tr>"; 239: 240: echo "<tr><td colspan=2><i>Optional - leave blank to use the default (25)</td></tr>"; 241: 242: echo "</table>"; 243: break; 244: */ 245: default: 246: 247: $idx=$NATS->Tests->Get($row['testtype']); 248: if ($idx>=0) 249: { 250: // Test-specific formatting here 251: 252: $pcount=0; // param count 253: //echo $NATS->Tests->Tests[$row['testtype']]->parameters; 254: if (isset($NATS->Tests->Tests[$row['testtype']]->parameters) && is_array($NATS->Tests->Tests[$row['testtype']]->parameters) 255: && (count($NATS->Tests->Tests[$row['testtype']]->parameters)>0) ) 256: { 257: echo "<table border=0>"; 258: foreach($NATS->Tests->Tests[$row['testtype']]->parameters as $param) 259: { 260: $pname="testparam"; 261: if ($pcount>0) $pname.=$pcount; 262: $undertext=""; 263: $pos=strpos($param,"/"); 264: if ($pos>0) 265: { 266: $undertext=substr($param,$pos+1); 267: $param=substr($param,0,$pos); 268: } 269: echo "<tr><td align=right>"; 270: echo $param; 271: echo " :</td><td align=left>"; 272: echo "<input type=text name=\"".$pname."\" value=\"".$row[$pname]."\" size=30 maxlength=128>"; 273: echo "</td></tr>"; 274: if ($undertext!="") 275: { 276: echo "<tr><td> </td><td align=left><i>".$undertext."</i></td></tr>"; 277: } 278: $pcount++; 279: } 280: echo "</table>"; 281: } 282: else 283: { 284: $NATS->Tests->Tests[$row['testtype']]->Create(); 285: $out=$NATS->Tests->Tests[$row['testtype']]->instance->DisplayForm($row); 286: if ($out===false) echo "<i>No options for test</i>"; 287: else echo $out; 288: } 289: 290: 291: 292: 293: } 294: 295: 296: // And the catch-all of catch-alls 297: else echo "<input type=text name=testparam size=30 maxlength=128 value=\"".$row['testparam']."\">"; 298: } 299: 300: echo "</td></tr>"; 301: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 302: echo "<tr><td>Custom Name :</td>"; 303: echo "<td><input type=text size=30 name=testname maxlength=64 value=\"".$row['testname']."\"> ".hlink("Test:Name"); 304: echo "</td></tr>"; 305: echo "<tr><td>Test Enabled :</td>"; 306: echo "<td>"; 307: if ($row['testenabled']==1) $s=" checked"; 308: else $s=""; 309: echo "<input type=checkbox name=testenabled value=1".$s."> "; 310: echo hlink("Test:Enabled"); 311: echo "</td></tr>"; 312: echo "<tr><td>Recorded :</td><td>"; 313: if ($row['testrecord']==1) $s=" checked"; 314: else $s=""; 315: echo "<input type=checkbox name=testrecord value=1".$s."> ".hlink("Test:Recorded"); 316: echo "</td></tr>"; 317: echo "<tr><td>Simple Evaluation :</td><td>"; 318: if ($row['simpleeval']==1) $s=" checked"; 319: else $s=""; 320: echo "<input type=checkbox name=simpleeval value=1".$s."> ".hlink("Test:SimpleEvaluation"); 321: echo "</td></tr>"; 322: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 323: echo "<tr><td>Test Interval :</td>"; 324: echo "<td><input type=text size=3 name=testinterval maxlength=8 value=\"".$row['testinterval']."\"> Minutes ".hlink("Test:Interval"); 325: echo "</td></tr>"; 326: echo "<input type=hidden name=original_testinterval value=\"".$row['testinterval']."\">"; 327: echo "<tr><td valign=top>Test Due :</td>"; 328: echo "<td>"; 329: if ($row['nextrunx']>0) echo nicedt($row['nextrunx'])." - ".nicenextx($row['nextrunx']); 330: else echo "Now"; 331: echo "</td></tr>"; 332: echo "<tr><td valign=top>Last Tested :</td>"; 333: echo "<td>".nicedt($row['lastrunx'])." - ".dtago($row['lastrunx'])."<br>"; 334: echo "<a href=localtest.action.php?localtestid=".$_REQUEST['localtestid']."&action=invalidate>Check ASAP</a>"; 335: echo "</td></tr>"; 336: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 337: echo "<tr><td>Custom Attempts :</td>"; 338: echo "<td><input type=text size=3 name=attempts maxlength=2 value=\"".$row['attempts']."\"> ".hlink("Test:Attempts"); 339: echo "</td></tr>"; 340: echo "<tr><td>Custom Timeout :</td>"; 341: echo "<td><input type=text name=timeout size=3 maxlength=3 value=\"".$row['timeout']."\"> Seconds ".hlink("Test:Timeout"); 342: echo "</td></tr>"; 343: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 344: echo "<tr><td> </td><td><input type=submit value=\"Save Test Settings\"> <a href=node.edit.php?nodeid=".$row['nodeid'].">Abandon Changes</a>"; 345: echo "</td></tr></form>"; 346: echo "</table>"; 347: End_Round(); 348: echo "<br><br>"; 349: 350: 351: 352: $t="<b class=\"sectitle\">Test Evaluators</b>"; 353: Start_Round($t,600); 354: 355: 356: echo "<table border=0 width=100%>"; 357: echo "<tr><td colspan=2> <br>"; 358: if ($row['simpleeval']==1) 359: { 360: echo "<i>Custom evaluators will not be processed as<br>Simple Evaluation is checked (above)</i><br>"; 361: } 362: echo "</td></tr>"; 363: 364: $q="SELECT * FROM fneval WHERE testid=\"L".ss($_REQUEST['localtestid'])."\" ORDER BY weight ASC"; 365: $r=$NATS->DB->Query($q); 366: while ($row=$NATS->DB->Fetch_Array($r)) 367: { 368: echo "<tr><td colspan=2>"; 369: echo "<a href=eval.action.php?action=delete&back=".urlencode("localtest.edit.php?localtestid=".$_REQUEST['localtestid']."&message=Evaluator+Deleted")."&evalid=".$row['evalid'].">"; 370: echo "<img src=images/options/action_delete.png border=0 style=\"vertical-align: bottom;\"></a> "; 371: echo "Result ".eval_operator_text($row['eoperator'])." ".$row['evalue']." => ".oText($row['eoutcome']).""; 372: //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>"; 373: echo "</td></tr>"; 374: //echo "<tr><td colspan=2> </td></tr>"; 375: } 376: 377: echo "<form action=eval.action.php>"; 378: echo "<input type=hidden name=action value=create>"; 379: echo "<input type=hidden name=testid value=L".$_REQUEST['localtestid'].">"; 380: echo "<tr><td colspan=2> <br></td></tr>"; 381: echo "<tr><td><b>Add New :</b></td>"; 382: echo "<td><select name=eoperator>"; 383: echo "<option value=ET>Equal To</option><option value=LT>Less Than</option><option value=GT>Greater Than</option>"; 384: echo "</select> <input type=text name=evalue size=4 value=0> => "; 385: echo "<select name=eoutcome>"; 386: echo "<option value=1>Warning</option>"; 387: echo "<option value=2>Failure</option>"; 388: echo "</select> <input type=submit value=Add></td></tr>"; 389: echo "</form>"; 390: 391: 392: echo "</table>"; 393: End_Round(); 394: 395: ?> 396: 397: <?php 398: Screen_Footer(); 399: ?> 400: