| 1 | <?php
|
|---|
| 2 | {
|
|---|
| 3 | function PrintPage($host, $user, $pw, $db)
|
|---|
| 4 | {
|
|---|
| 5 | $db_id = mysql_connect($host, $user, $pw);
|
|---|
| 6 | if ($db_id==FALSE)
|
|---|
| 7 | {
|
|---|
| 8 | printf("mysql_connect returned the following error: %s\n", mysql_error());
|
|---|
| 9 | die("");
|
|---|
| 10 | }
|
|---|
| 11 | mysql_select_db($db);
|
|---|
| 12 |
|
|---|
| 13 | $query1="SELECT fMarsVersionName, fStartDate FROM MarsVersion ORDER BY fMarsVersion DESC LIMIT 0,1";
|
|---|
| 14 | $marsresult=mysql_query($query1);
|
|---|
| 15 | $row = mysql_fetch_row($marsresult);
|
|---|
| 16 | $mars=$row[0];
|
|---|
| 17 | $date=$row[1];
|
|---|
| 18 | if (mysql_errno()>0)
|
|---|
| 19 | printf(" Error-Number: %s <br>", mysql_errno());
|
|---|
| 20 | if (mysql_error()!="")
|
|---|
| 21 | printf(" Error-Message: %s <br>", mysql_error());
|
|---|
| 22 | if (mysql_info()!="")
|
|---|
| 23 | printf(" Mysql-Info: %s <br>", mysql_info());
|
|---|
| 24 | mysql_free_result($marsresult);
|
|---|
| 25 | if (empty($mars))
|
|---|
| 26 | {
|
|---|
| 27 | printf("Could not get information for latest Mars version from the database.");
|
|---|
| 28 | return;
|
|---|
| 29 | }
|
|---|
| 30 |
|
|---|
| 31 | if (empty($_GET["insert"]))
|
|---|
| 32 | {
|
|---|
| 33 | $query0 = "SELECT SequenceProcessStatus.fSequenceFirst, ";
|
|---|
| 34 | // $query0 .= "if (fCallisto " . " < '" . $date . "', 'to be resetted', ";
|
|---|
| 35 | $query0 .= "if (fCallisto " . " < '" . $date . "', CONCAT('outdated (', (SELECT fMarsVersionName FROM MarsVersion WHERE fCallisto > fStartDate ORDER BY fMarsVersion DESC LIMIT 0,1), ')'), ";
|
|---|
| 36 | $query0 .= "if (not isnull(fCallisto), 'up to date (" . $mars . ")', ";
|
|---|
| 37 | $query0 .= "if (fStartTime > ADDDATE(Now(), INTERVAL -1 DAY) AND isnull(fFailedTime), 'running (" . $mars . ")',";
|
|---|
| 38 | $query0 .= "if (isnull(fFailedTime), 'already resetted', ";
|
|---|
| 39 | $query0 .= " 'crashed or failed')))) as 'calstat', ";
|
|---|
| 40 | // $query0 .= "if (fStar " . " < '" . $date . "', 'to be resetted', ";
|
|---|
| 41 | $query0 .= "if (fStar " . " < '" . $date . "', CONCAT('outdated (', (SELECT fMarsVersionName FROM MarsVersion WHERE fStar > fStartDate ORDER BY fMarsVersion DESC LIMIT 0,1), ')'), ";
|
|---|
| 42 | $query0 .= "if (not isnull(fStar), 'up to date (" . $mars . ")', ";
|
|---|
| 43 | $query0 .= "if (fStartTime > ADDDATE(Now(), INTERVAL -1 DAY) AND isnull(fFailedTime) AND not isnull(fCallisto), 'running (" . $mars . ")',";
|
|---|
| 44 | $query0 .= "if (isnull(fFailedTime), 'already resetted', ";
|
|---|
| 45 | $query0 .= " 'crashed or failed')))) as 'starstat', fProjectName, fRunStart ";
|
|---|
| 46 | $query0 .= "FROM SequenceProcessStatus ";
|
|---|
| 47 | $query0 .= "LEFT JOIN Sequences USING(fSequenceFirst,fTelescopeNumber) ";
|
|---|
| 48 | $query0 .= "LEFT JOIN Project USING(fProjectKEY) ";
|
|---|
| 49 | }
|
|---|
| 50 | else
|
|---|
| 51 | {
|
|---|
| 52 | $query0 = "UPDATE SequenceProcessStatus SET ";
|
|---|
| 53 | if ($_GET["step"]=="callisto")
|
|---|
| 54 | $query0 .="fCallisto=NULL, fFillCallisto=NULL, fStar=NULL, fFillStar=NULL, ";
|
|---|
| 55 | else
|
|---|
| 56 | if ($_GET["step"]=="star")
|
|---|
| 57 | $query0 .="fStar=NULL, fFillStar=NULL, ";
|
|---|
| 58 | $query0 .="fStartTime=NULL, fFailedTime=NULL, fProgramId=NULL, fReturnCode=NULL ";
|
|---|
| 59 |
|
|---|
| 60 | if ($_GET["step"]=="callisto")
|
|---|
| 61 | $query0 .= " WHERE fCallisto " . " < '" . $date . "'";
|
|---|
| 62 | else
|
|---|
| 63 | if ($_GET["step"]=="star")
|
|---|
| 64 | $query0 .= " WHERE fStar " . " < '" . $date . "'";
|
|---|
| 65 | else
|
|---|
| 66 | $query0 .= " WHERE (NOT ISNULL(fFailedTime) OR fStartTime < ADDDATE(Now(), INTERVAL -1 DAY))";
|
|---|
| 67 | }
|
|---|
| 68 | if (ereg("^([ ]*[0-9]{5,8}[ ]*[,])*[ ]*[0-9]{5,8}[ ]*$",$_GET["Seqs"]))
|
|---|
| 69 | {
|
|---|
| 70 | if (strpos($query0, " WHERE ")==FALSE || (strpos($query0, " CONCAT(")==TRUE && strpos($query0, " WHERE ")==TRUE))
|
|---|
| 71 | $query0 .= " WHERE ";
|
|---|
| 72 | else
|
|---|
| 73 | $query0 .= " AND ";
|
|---|
| 74 | $query0 .=" SequenceProcessStatus.fSequenceFirst IN (" . $_GET["Seqs"] . ")";
|
|---|
| 75 | }
|
|---|
| 76 | else
|
|---|
| 77 | {
|
|---|
| 78 | echo "You have to give the sequences, which you want to reset, in the correct format, i.e. sequence numbers separated by ','.<br>";
|
|---|
| 79 | return;
|
|---|
| 80 | }
|
|---|
| 81 | if (empty($_GET["step"]))
|
|---|
| 82 | {
|
|---|
| 83 | echo "Please choose what you want to reset: <br>";
|
|---|
| 84 | echo "crashed processes (i.e. running longer than 1 day or failed), callisto or star.<br>";
|
|---|
| 85 | return;
|
|---|
| 86 | }
|
|---|
| 87 |
|
|---|
| 88 | $result0=mysql_query($query0);
|
|---|
| 89 | if (mysql_errno()>0)
|
|---|
| 90 | printf(" Errorno: %s <br>", mysql_errno());
|
|---|
| 91 | if (mysql_error()!="")
|
|---|
| 92 | printf(" Errormsg: %s <br>", mysql_error());
|
|---|
| 93 | if (!empty($_GET["insert"]) && !empty($_GET["step"]))
|
|---|
| 94 | {
|
|---|
| 95 | printf("%s Sequences have been resetted. <br><br>\n", mysql_affected_rows());
|
|---|
| 96 | if (mysql_info()!="")
|
|---|
| 97 | printf("Mysql-Info: %s <br><br>\n", mysql_info());
|
|---|
| 98 | }
|
|---|
| 99 | else
|
|---|
| 100 | {
|
|---|
| 101 | if (mysql_affected_rows()==0)
|
|---|
| 102 | {
|
|---|
| 103 | echo "No sequence to reset.<br>";
|
|---|
| 104 | echo "The sequences you listed are already resetted.<br>";
|
|---|
| 105 | mysql_free_result($result0);
|
|---|
| 106 | return;
|
|---|
| 107 | }
|
|---|
| 108 | // echo "The status of the sequences you entered: <br>\n";
|
|---|
| 109 | $star="";
|
|---|
| 110 | $callisto="";
|
|---|
| 111 | $crashed="";
|
|---|
| 112 | $calcolor='black';
|
|---|
| 113 | $starcolor='black';
|
|---|
| 114 | $style='normal';
|
|---|
| 115 | $col = FALSE;
|
|---|
| 116 | $bgcolor='#C0C0C0';
|
|---|
| 117 | $checked=0;
|
|---|
| 118 | printf("<table border='0' align='center'>\n");
|
|---|
| 119 | printf("<tr bgcolor='%s'>\n<th style='padding-left:1ex;padding-right:1ex'>\n<u>Sequence</u>\n</th>\n", $bgcolor);
|
|---|
| 120 | printf("\n<th>\n<u>ProjectName</u>\n</th>\n");
|
|---|
| 121 | printf("<th>\n<u>Status Callisto</u>\n</th>");
|
|---|
| 122 | printf("\n<th>\n<u>Status Star</u>\n</th>\n");
|
|---|
| 123 | printf("\n<th>\n<u>Starttime</u>\n</th>\n");
|
|---|
| 124 | printf("</tr>\n");
|
|---|
| 125 | while ($row = mysql_fetch_row($result0))
|
|---|
| 126 | {
|
|---|
| 127 | if (ereg('outdated', $row[2]) && $_GET["step"]=='star')
|
|---|
| 128 | {
|
|---|
| 129 | $star[]=$row[0];
|
|---|
| 130 | $starcolor='green';
|
|---|
| 131 | $style='bold';
|
|---|
| 132 | $row[2]=str_replace('outdated', 'marked for reset', $row[2]);
|
|---|
| 133 | }
|
|---|
| 134 | if (ereg('outdated', $row[1]) && $_GET["step"]=='callisto')
|
|---|
| 135 | {
|
|---|
| 136 | $callisto[]=$row[0];
|
|---|
| 137 | $calcolor='green';
|
|---|
| 138 | $starcolor='green';
|
|---|
| 139 | $style='bold';
|
|---|
| 140 | }
|
|---|
| 141 | if (($row[1]=='crashed or failed' || $row[2]=='crashed or failed') && $_GET["step"]=='crashed')
|
|---|
| 142 | {
|
|---|
| 143 | $crashed[]=$row[0];
|
|---|
| 144 | if ($row[1]=='crashed or failed')
|
|---|
| 145 | {
|
|---|
| 146 | $calcolor='green';
|
|---|
| 147 | $style='bold';
|
|---|
| 148 | }
|
|---|
| 149 | else
|
|---|
| 150 | {
|
|---|
| 151 | $starcolor='green';
|
|---|
| 152 | $style='bold';
|
|---|
| 153 | }
|
|---|
| 154 | }
|
|---|
| 155 | if (!$col)
|
|---|
| 156 | $bgcolor='#E0E0E0';
|
|---|
| 157 | else
|
|---|
| 158 | $bgcolor='#D0D0D0';
|
|---|
| 159 | $col = !$col;
|
|---|
| 160 | printf("<tr bgcolor='%s'>\n<td align='center' style='font-weight:%s'>\n%s \n</td>\n", $bgcolor, $style, $row[0]);
|
|---|
| 161 | printf("<td style='padding-left:1ex;padding-right:1ex'>\n %s \n</td>\n", $row[3]);
|
|---|
| 162 | printf("<td style='padding-left:1ex;padding-right:1ex'>\n <font color='%s'>%s </font>\n</td>\n", $calcolor, $row[1]);
|
|---|
| 163 | printf("<td style='padding-left:1ex;padding-right:1ex'>\n <font color='%s'>%s </font>\n</td>\n", $starcolor, $row[2]);
|
|---|
| 164 | printf("<td style='padding-left:1ex;padding-right:1ex'>\n %s \n</td>\n", $row[4]);
|
|---|
| 165 | printf("</tr>\n");
|
|---|
| 166 | $calcolor='black';
|
|---|
| 167 | $starcolor='black';
|
|---|
| 168 | $style='normal';
|
|---|
| 169 | $checked+=1;
|
|---|
| 170 | }
|
|---|
| 171 | printf("</table>\n");
|
|---|
| 172 |
|
|---|
| 173 | if ($_GET["step"]=="crashed")
|
|---|
| 174 | printf("<br>\n You chose to reset only the sequences which are crashed or failed.<br>\n");
|
|---|
| 175 | else
|
|---|
| 176 | printf("<br>\n Only the sequences which are not 'up to date', 'running' or 'resetted', can be resetted.<br>\n");
|
|---|
| 177 | if (empty($star) && empty($callisto) && empty($crashed))
|
|---|
| 178 | echo "With your choice no sequences would be resetted.";
|
|---|
| 179 | else
|
|---|
| 180 | echo "With your choice the following sequences would be resetted:\n ";
|
|---|
| 181 | $marked=0;
|
|---|
| 182 | if (!empty($star))
|
|---|
| 183 | {
|
|---|
| 184 | foreach($star as $num => $seq)
|
|---|
| 185 | echo $seq . " ";
|
|---|
| 186 | $marked+=count($star);
|
|---|
| 187 | }
|
|---|
| 188 | if (!empty($callisto))
|
|---|
| 189 | {
|
|---|
| 190 | foreach($callisto as $num => $seq)
|
|---|
| 191 | echo $seq . " ";
|
|---|
| 192 | $marked+=count($callisto);
|
|---|
| 193 | }
|
|---|
| 194 | if (!empty($crashed))
|
|---|
| 195 | {
|
|---|
| 196 | foreach($crashed as $num => $seq)
|
|---|
| 197 | echo $seq . " ";
|
|---|
| 198 | $marked+=count($crashed);
|
|---|
| 199 | }
|
|---|
| 200 | printf("<br>\n Listed: %d <br> Marked: %d", $checked, $marked);
|
|---|
| 201 | printf("<br>\n<br>\nTo <b>reset</b> the <font color='green'>green marked entries</font>, please press the button 'Reset Sequences'.<br><br>\n");
|
|---|
| 202 |
|
|---|
| 203 | mysql_free_result($result0);
|
|---|
| 204 | printf("<input type='button' value='Reset Sequences' onClick='self.location.href=\"%s&insert=On\"'> \n", htmlspecialchars($_SERVER["REQUEST_URI"]));
|
|---|
| 205 |
|
|---|
| 206 | }
|
|---|
| 207 | mysql_close($db_id);
|
|---|
| 208 |
|
|---|
| 209 | // PrintSubmittedQuery($query0, "1", $db, "old");
|
|---|
| 210 |
|
|---|
| 211 | }
|
|---|
| 212 |
|
|---|
| 213 | include ("include.php");
|
|---|
| 214 | include ("menu.php");
|
|---|
| 215 | include ("db.php");
|
|---|
| 216 | include ("magicdefs.php");
|
|---|
| 217 |
|
|---|
| 218 | ini_set("display_errors", "On");
|
|---|
| 219 | ini_set("mysql.trace_mode", "On");
|
|---|
| 220 |
|
|---|
| 221 | echo (file_get_contents("index-header.html"));
|
|---|
| 222 |
|
|---|
| 223 | $ips=array("132.187.47.10", //Thomas
|
|---|
| 224 | "129.194.169.21" //Dani ISDC
|
|---|
| 225 | );
|
|---|
| 226 | if (!in_array($_SERVER['REMOTE_ADDR'], $ips))
|
|---|
| 227 | {
|
|---|
| 228 | echo "You are not allowed to reset sequences.<br>";
|
|---|
| 229 | echo "If you want to reset your sequences in the automatic analysis, please contact Daniela Dorner.<br>";
|
|---|
| 230 | echo (file_get_contents("index-footer.html"));
|
|---|
| 231 | return;
|
|---|
| 232 | }
|
|---|
| 233 |
|
|---|
| 234 | $environment = sizeof($_GET);
|
|---|
| 235 |
|
|---|
| 236 | //init
|
|---|
| 237 | if (empty($_GET["Seqs"]))
|
|---|
| 238 | $_GET["Seqs"]="";
|
|---|
| 239 | if (empty($_GET["step"]))
|
|---|
| 240 | $_GET["step"]="";
|
|---|
| 241 |
|
|---|
| 242 | //print form
|
|---|
| 243 | printf("<center>\n");
|
|---|
| 244 | printf("<form action=\"resetseq.php\" METHOD=\"GET\">\n");
|
|---|
| 245 |
|
|---|
| 246 | printf("<input type='radio' name='step' value='crashed' %s> crashed processes ", $_GET["step"]=="crashed" ? "checked" : "");
|
|---|
| 247 | printf("<input type='radio' name='step' value='callisto' %s> callisto ", $_GET["step"]=="callisto" ? "checked" : "");
|
|---|
| 248 | printf("<input type='radio' name='step' value='star' %s> star<br>", $_GET["step"]=="star" ? "checked" : "");
|
|---|
| 249 |
|
|---|
| 250 | printf("<table>\n<tr>\n<td align='left'>\nSequences: \n</td>\n</tr>\n<tr>\n<td>\n");
|
|---|
| 251 | printf("<input name='Seqs' type='text' size='80' maxlength='300' value='%s'>\n</td>\n</tr>\n</table>\n<br>\n", $_GET["Seqs"]);
|
|---|
| 252 |
|
|---|
| 253 | ini_set("mysql.trace_mode", "Off");
|
|---|
| 254 | // ini_set("display_errors", "Off");
|
|---|
| 255 |
|
|---|
| 256 | printf("<input type='submit' value='Check Sequence Status'> \n");
|
|---|
| 257 | printf("<input class='Width' type='button' value='Clear Form' onClick='self.location.href=\"resetseq.php\"'> \n");
|
|---|
| 258 | // if (!empty($_GET["step"]) && ereg("^([ ]*[0-9]{5,8}[ ]*[,])*[ ]*[0-9]{5,8}[ ]*$",$_GET["Seqs"]))
|
|---|
| 259 | // printf("<input type='checkbox' name='insert' value='On'>insert\n");
|
|---|
| 260 | printf("<br>\n");
|
|---|
| 261 | printf("</form>\n");
|
|---|
| 262 | printf("</center>\n");
|
|---|
| 263 | printf("</td>\n</tr>\n");
|
|---|
| 264 | printf("<tr class='Block'>\n<td>\n");
|
|---|
| 265 |
|
|---|
| 266 | if ($environment==0)
|
|---|
| 267 | {
|
|---|
| 268 | printf("No query submitted yet.<br>\n");
|
|---|
| 269 | printf("To reset sequences, please insert them in the following format: <i>12345,87654321</i><br>\n");
|
|---|
| 270 | printf("and choose whether you want to reset just crashed processes, callisto (this includes star) or just star.<br>\n");
|
|---|
| 271 | printf("You can enter up to 300 characters in the sequences field.<br>\n");
|
|---|
| 272 | }
|
|---|
| 273 | else
|
|---|
| 274 | PrintPage($host, $user, $pw, $db);
|
|---|
| 275 |
|
|---|
| 276 | echo (file_get_contents("index-footer.html"));
|
|---|
| 277 |
|
|---|
| 278 | ini_set("display_errors", "Off");
|
|---|
| 279 | ini_set("mysql.trace_mode", "Off");
|
|---|
| 280 | }
|
|---|
| 281 | ?>
|
|---|