Changeset 1613 for palm/trunk/SCRIPTS
- Timestamp:
- Jul 8, 2015 2:53:29 PM (9 years ago)
- Location:
- palm/trunk/SCRIPTS
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SCRIPTS/mbuild
r1548 r1613 22 22 # Current revisions: 23 23 # ------------------ 24 # 24 # nc2vdf removed 25 25 # 26 26 # Former revisions: … … 1236 1236 1237 1237 # COPY SHELL-SCRIPTS 1238 scp batch_scp mbuild mrun process_dvr_output .dvrserver.config subjob batch_nc2vdf nc2vdf nc2vdf.ncl nc2vdf.config${remote_username}@${remote_address}:${remote_ud}/../SCRIPTS > /dev/null1238 scp batch_scp mbuild mrun process_dvr_output .dvrserver.config subjob ${remote_username}@${remote_address}:${remote_ud}/../SCRIPTS > /dev/null 1239 1239 1240 1240 cd - > /dev/null -
palm/trunk/SCRIPTS/palm_wd
r1612 r1613 20 20 # Current revisions: 21 21 # ----------------- 22 # 22 # Bugfix: tooltip for queuing name did not show up on first update. 23 # New: added contect menu for showing the parameter file and the run control 24 # output 23 25 # 24 26 # Former revisions: … … 87 89 job_data_list = [] 88 90 91 class MessageBoxScroll(QtGui.QMessageBox): 92 def __init__(self): 93 QtGui.QMessageBox.__init__(self) 94 self.setSizeGripEnabled(True) 95 96 def event(self, e): 97 result = QtGui.QMessageBox.event(self, e) 98 99 self.setMinimumHeight(100) 100 self.setMaximumHeight(16777215) 101 self.setMinimumWidth(400) 102 self.setMaximumWidth(16777215) 103 self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) 104 105 textEdit = self.findChild(QtGui.QTextEdit) 106 if textEdit != None : 107 textEdit.setMinimumHeight(800) 108 textEdit.setMaximumHeight(16777215) 109 textEdit.setMinimumWidth(1000) 110 textEdit.setMaximumWidth(16777215) 111 textEdit.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) 112 f = QtGui.QFont('not_a_font') # 113 f.setStyleHint(f.TypeWriter, f.PreferDefault) 114 textEdit.setFont(f) 115 116 return result 117 118 89 119 # MainWindow class 90 120 class Watchdog(QtGui.QMainWindow): … … 112 142 self.table.setColumnHidden(6, True) 113 143 self.table.setRowCount(0) 114 144 115 145 # Display MainWindow 116 146 self.show() … … 145 175 146 176 # "Show details" -> fetch details for the selected job 147 detailsjobAction = menu.addAction('Show details')177 detailsjobAction = menu.addAction('Show job details') 148 178 detailsjobAction.setStatusTip('Display detailed info for job') 149 179 detailsjobAction.triggered.connect(self.ShowDetails) 150 180 181 # "Show parameter file" -> show the contents of PARIN 182 parinAction = menu.addAction('Show parameter file') 183 parinAction.setStatusTip('Display the parameter file of the job (e.g. PARIN / _p3d)') 184 parinAction.triggered.connect(self.ShowPARIN) 185 186 rcAction = menu.addAction('Show run control file') 187 rcAction.setStatusTip('Display the current run control file (e.g. RUN_CONTROL / _rc)') 188 rcAction.triggered.connect(self.ShowRC) 189 151 190 # "Cancel job" -> remove job from queuing system 152 191 canceljobAction = menu.addAction('Cancel job') … … 154 193 canceljobAction.triggered.connect(self.CancelJob) 155 194 156 # "Force stop" -> remove job from queuing system195 # "Force stop" -> force termination of job 157 196 stopjobAction = menu.addAction('Force stop') 158 197 stopjobAction.setStatusTip('Terminate job properly') 159 198 stopjobAction.triggered.connect(self.DoStop) 160 199 161 # "Force restart" -> remove job from queuing system200 # "Force restart" -> force rermination and restart of job 162 201 restartjobAction = menu.addAction('Force restart') 163 202 restartjobAction.setStatusTip('Terminate job properly and initiate restart') … … 184 223 stopjobAction.setEnabled(True) 185 224 restartjobAction.setEnabled(True) 225 parinAction.setEnabled(True) 226 rcAction.setEnabled(True) 186 227 else: 187 228 stopjobAction.setEnabled(False) 188 229 restartjobAction.setEnabled(False) 189 230 parinAction.setEnabled(False) 231 rcAction.setEnabled(False) 232 190 233 # Show the context menu 191 234 action = menu.exec_(self.table.mapToGlobal(position)) … … 373 416 item.setToolTip("Queuing name: " + job_data[to_display[j]][6]) 374 417 self.table.setItem(i, 0, item) 375 self.table.setItem(i, 0, QtGui.QTableWidgetItem(job_data[to_display[j]][0]))376 418 self.table.setItem(i, 1, QtGui.QTableWidgetItem(job_data[to_display[j]][1])) 377 419 self.table.setItem(i, 2, QtGui.QTableWidgetItem(job_data[to_display[j]][2])) … … 607 649 notify = QtGui.QMessageBox.information(self,'Terminate job for restart',"Restart for job" + jobname + " was initiated!\n\nServer message:\n" + ''.join(result)) 608 650 651 652 # Read the PARIN file of the job 653 def ShowPARIN(self): 654 655 # Return internal jobname 656 jobname = self.table.item(self.table.currentRow(),6).text() 657 jobrealname = self.table.item(self.table.currentRow(),0).text() 658 659 # Check description of job in order to login on the correct host 660 descr = self.table.item(self.table.currentRow(),1).text() 661 for h in range(0,len(description)): 662 if ( descr == description[h] ): 663 host = username[h] + "@" + hostname[h] 664 user = username[h] 665 666 ssh = sub.Popen(["ssh", "%s" % host, "/sw/tools/python/2.7.6/generic/bin/python palm_wdd parin " + user + " " + jobname], 667 shell=False, 668 stdout=sub.PIPE, 669 stderr=sub.PIPE) 670 result = ssh.stdout.readlines() 671 result = filter(None, result) 672 673 # In case of error display a warning message 674 if ( len(result) == 0 ): 675 error = ssh.stderr.readlines() 676 notify = QtGui.QMessageBox.warning(self,'Showing parameter file',"Error. Could not fetch parameter file for job " + jobrealname + " (" + jobname + ").\n\nError message:\n" + ''.join(error)) 677 678 # Otherwise inform the user and mark the job in the table 679 else: 680 mb = MessageBoxScroll() 681 mb.setText("Parameter file for job: " + jobrealname + "") 682 mb.setDetailedText(''.join(result)) 683 mb.exec_() 684 685 # Read the PARIN file of the job 686 def ShowRC(self): 687 688 # Return internal jobname and real job name 689 jobname = self.table.item(self.table.currentRow(),6).text() 690 jobrealname = self.table.item(self.table.currentRow(),0).text() 691 692 # Check description of job in order to login on the correct host 693 descr = self.table.item(self.table.currentRow(),1).text() 694 for h in range(0,len(description)): 695 if ( descr == description[h] ): 696 host = username[h] + "@" + hostname[h] 697 user = username[h] 698 699 ssh = sub.Popen(["ssh", "%s" % host, "/sw/tools/python/2.7.6/generic/bin/python palm_wdd rc " + user + " " + jobname], 700 shell=False, 701 stdout=sub.PIPE, 702 stderr=sub.PIPE) 703 result = ssh.stdout.readlines() 704 result = filter(None, result) 705 706 # In case of error display a warning message 707 if ( len(result) == 0 ): 708 error = ssh.stderr.readlines() 709 notify = QtGui.QMessageBox.warning(self,'Showing run control',"Error. Could not fetch run control file for job " + jobrealname + "(" + jobname + ").\n\nError message:\n" + ''.join(error)) 710 711 # Otherwise inform the user and mark the job in the table 712 else: 713 mb = MessageBoxScroll() 714 lastline = result[len(result)-2].split()[2] 715 mb.setText("Simulated time for job " + jobrealname + " is currently: " + lastline) 716 mb.setDetailedText(''.join(result)) 717 mb.exec_() 609 718 610 719 # Remove a job from list - removes the current row from the table and from -
palm/trunk/SCRIPTS/palm_wd_files/wd.ui
r1611 r1613 10 10 <x>0</x> 11 11 <y>0</y> 12 <width>7 58</width>13 <height>1 83</height>12 <width>798</width> 13 <height>197</height> 14 14 </rect> 15 15 </property> … … 28 28 <property name="maximumSize"> 29 29 <size> 30 <width> 758</width>30 <width>1500</width> 31 31 <height>1000</height> 32 32 </size> … … 94 94 <string>Last update: 27-08-2014 12:50</string> 95 95 </property> 96 </widget> 97 </item> 98 <item row="0" column="0" colspan="6"> 99 <widget class="QTableWidget" name="table"> 100 <property name="enabled"> 101 <bool>true</bool> 102 </property> 103 <property name="sizePolicy"> 104 <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 105 <horstretch>0</horstretch> 106 <verstretch>20</verstretch> 107 </sizepolicy> 108 </property> 109 <property name="minimumSize"> 110 <size> 111 <width>0</width> 112 <height>0</height> 113 </size> 114 </property> 115 <property name="sizeIncrement"> 116 <size> 117 <width>0</width> 118 <height>0</height> 119 </size> 120 </property> 121 <property name="contextMenuPolicy"> 122 <enum>Qt::CustomContextMenu</enum> 123 </property> 124 <property name="frameShape"> 125 <enum>QFrame::StyledPanel</enum> 126 </property> 127 <property name="frameShadow"> 128 <enum>QFrame::Plain</enum> 129 </property> 130 <property name="lineWidth"> 131 <number>1</number> 132 </property> 133 <property name="verticalScrollBarPolicy"> 134 <enum>Qt::ScrollBarAsNeeded</enum> 135 </property> 136 <property name="horizontalScrollBarPolicy"> 137 <enum>Qt::ScrollBarAlwaysOff</enum> 138 </property> 139 <property name="autoScroll"> 140 <bool>false</bool> 141 </property> 142 <property name="editTriggers"> 143 <set>QAbstractItemView::NoEditTriggers</set> 144 </property> 145 <property name="tabKeyNavigation"> 146 <bool>false</bool> 147 </property> 148 <property name="showDropIndicator" stdset="0"> 149 <bool>false</bool> 150 </property> 151 <property name="dragDropOverwriteMode"> 152 <bool>false</bool> 153 </property> 154 <property name="alternatingRowColors"> 155 <bool>false</bool> 156 </property> 157 <property name="selectionMode"> 158 <enum>QAbstractItemView::SingleSelection</enum> 159 </property> 160 <property name="selectionBehavior"> 161 <enum>QAbstractItemView::SelectRows</enum> 162 </property> 163 <property name="textElideMode"> 164 <enum>Qt::ElideLeft</enum> 165 </property> 166 <property name="showGrid"> 167 <bool>true</bool> 168 </property> 169 <property name="gridStyle"> 170 <enum>Qt::SolidLine</enum> 171 </property> 172 <property name="sortingEnabled"> 173 <bool>true</bool> 174 </property> 175 <property name="wordWrap"> 176 <bool>false</bool> 177 </property> 178 <property name="cornerButtonEnabled"> 179 <bool>false</bool> 180 </property> 181 <property name="rowCount"> 182 <number>3</number> 183 </property> 184 <attribute name="horizontalHeaderVisible"> 185 <bool>true</bool> 186 </attribute> 187 <attribute name="horizontalHeaderCascadingSectionResizes"> 188 <bool>false</bool> 189 </attribute> 190 <attribute name="horizontalHeaderDefaultSectionSize"> 191 <number>128</number> 192 </attribute> 193 <attribute name="horizontalHeaderHighlightSections"> 194 <bool>false</bool> 195 </attribute> 196 <attribute name="horizontalHeaderStretchLastSection"> 197 <bool>true</bool> 198 </attribute> 199 <attribute name="verticalHeaderVisible"> 200 <bool>false</bool> 201 </attribute> 202 <attribute name="verticalHeaderDefaultSectionSize"> 203 <number>20</number> 204 </attribute> 205 <attribute name="verticalHeaderMinimumSectionSize"> 206 <number>18</number> 207 </attribute> 208 <attribute name="verticalHeaderStretchLastSection"> 209 <bool>false</bool> 210 </attribute> 211 <row/> 212 <row/> 213 <row/> 214 <column> 215 <property name="text"> 216 <string>Job</string> 217 </property> 218 <property name="textAlignment"> 219 <set>AlignJustify|AlignVCenter</set> 220 </property> 221 </column> 222 <column> 223 <property name="text"> 224 <string>Host</string> 225 </property> 226 <property name="textAlignment"> 227 <set>AlignJustify|AlignVCenter</set> 228 </property> 229 </column> 230 <column> 231 <property name="text"> 232 <string>Nodes</string> 233 </property> 234 <property name="textAlignment"> 235 <set>AlignRight|AlignVCenter</set> 236 </property> 237 </column> 238 <column> 239 <property name="text"> 240 <string>Status</string> 241 </property> 242 </column> 243 <column> 244 <property name="text"> 245 <string>Progress</string> 246 </property> 247 <property name="font"> 248 <font> 249 <weight>50</weight> 250 <bold>false</bold> 251 </font> 252 </property> 253 <property name="textAlignment"> 254 <set>AlignJustify|AlignVCenter</set> 255 </property> 256 </column> 257 <column> 258 <property name="text"> 259 <string>Remaining time</string> 260 </property> 261 <property name="textAlignment"> 262 <set>AlignRight|AlignVCenter</set> 263 </property> 264 </column> 265 <column> 266 <property name="text"> 267 <string>Jobname</string> 268 </property> 269 </column> 270 <item row="0" column="0"> 271 <property name="text"> 272 <string>1</string> 273 </property> 274 </item> 275 <item row="0" column="1"> 276 <property name="text"> 277 <string>1</string> 278 </property> 279 </item> 280 <item row="0" column="2"> 281 <property name="text"> 282 <string>1</string> 283 </property> 284 <property name="textAlignment"> 285 <set>AlignRight|AlignVCenter</set> 286 </property> 287 </item> 288 <item row="0" column="3"> 289 <property name="text"> 290 <string>1</string> 291 </property> 292 </item> 293 <item row="0" column="4"> 294 <property name="text"> 295 <string>1</string> 296 </property> 297 </item> 298 <item row="0" column="5"> 299 <property name="text"> 300 <string>1</string> 301 </property> 302 <property name="textAlignment"> 303 <set>AlignRight|AlignVCenter</set> 304 </property> 305 </item> 306 <item row="1" column="0"> 307 <property name="text"> 308 <string>11</string> 309 </property> 310 </item> 311 <item row="1" column="1"> 312 <property name="text"> 313 <string>1</string> 314 </property> 315 </item> 316 <item row="1" column="2"> 317 <property name="text"> 318 <string>1</string> 319 </property> 320 <property name="textAlignment"> 321 <set>AlignRight|AlignVCenter</set> 322 </property> 323 </item> 324 <item row="1" column="3"> 325 <property name="text"> 326 <string>1</string> 327 </property> 328 </item> 329 <item row="1" column="4"> 330 <property name="text"> 331 <string>1</string> 332 </property> 333 </item> 334 <item row="1" column="5"> 335 <property name="text"> 336 <string>1</string> 337 </property> 338 <property name="textAlignment"> 339 <set>AlignRight|AlignVCenter</set> 340 </property> 341 </item> 342 <item row="2" column="0"> 343 <property name="text"> 344 <string>1</string> 345 </property> 346 </item> 347 <item row="2" column="1"> 348 <property name="text"> 349 <string>1</string> 350 </property> 351 </item> 352 <item row="2" column="2"> 353 <property name="text"> 354 <string>1</string> 355 </property> 356 <property name="textAlignment"> 357 <set>AlignRight|AlignVCenter</set> 358 </property> 359 </item> 360 <item row="2" column="3"> 361 <property name="text"> 362 <string>1</string> 363 </property> 364 </item> 365 <item row="2" column="4"> 366 <property name="text"> 367 <string>1</string> 368 </property> 369 </item> 370 <item row="2" column="5"> 371 <property name="text"> 372 <string>1</string> 373 </property> 374 <property name="textAlignment"> 375 <set>AlignRight|AlignVCenter</set> 376 </property> 377 </item> 96 378 </widget> 97 379 </item> … … 205 487 </widget> 206 488 </item> 207 <item row="0" column="0" colspan="5">208 <widget class="QTableWidget" name="table">209 <property name="enabled">210 <bool>true</bool>211 </property>212 <property name="sizePolicy">213 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">214 <horstretch>0</horstretch>215 <verstretch>20</verstretch>216 </sizepolicy>217 </property>218 <property name="minimumSize">219 <size>220 <width>0</width>221 <height>0</height>222 </size>223 </property>224 <property name="sizeIncrement">225 <size>226 <width>0</width>227 <height>0</height>228 </size>229 </property>230 <property name="contextMenuPolicy">231 <enum>Qt::CustomContextMenu</enum>232 </property>233 <property name="frameShape">234 <enum>QFrame::StyledPanel</enum>235 </property>236 <property name="frameShadow">237 <enum>QFrame::Plain</enum>238 </property>239 <property name="lineWidth">240 <number>1</number>241 </property>242 <property name="verticalScrollBarPolicy">243 <enum>Qt::ScrollBarAsNeeded</enum>244 </property>245 <property name="horizontalScrollBarPolicy">246 <enum>Qt::ScrollBarAlwaysOff</enum>247 </property>248 <property name="autoScroll">249 <bool>false</bool>250 </property>251 <property name="editTriggers">252 <set>QAbstractItemView::NoEditTriggers</set>253 </property>254 <property name="tabKeyNavigation">255 <bool>false</bool>256 </property>257 <property name="showDropIndicator" stdset="0">258 <bool>false</bool>259 </property>260 <property name="dragDropOverwriteMode">261 <bool>false</bool>262 </property>263 <property name="alternatingRowColors">264 <bool>false</bool>265 </property>266 <property name="selectionMode">267 <enum>QAbstractItemView::SingleSelection</enum>268 </property>269 <property name="selectionBehavior">270 <enum>QAbstractItemView::SelectRows</enum>271 </property>272 <property name="textElideMode">273 <enum>Qt::ElideLeft</enum>274 </property>275 <property name="showGrid">276 <bool>true</bool>277 </property>278 <property name="gridStyle">279 <enum>Qt::SolidLine</enum>280 </property>281 <property name="sortingEnabled">282 <bool>true</bool>283 </property>284 <property name="wordWrap">285 <bool>false</bool>286 </property>287 <property name="cornerButtonEnabled">288 <bool>false</bool>289 </property>290 <property name="rowCount">291 <number>3</number>292 </property>293 <attribute name="horizontalHeaderVisible">294 <bool>true</bool>295 </attribute>296 <attribute name="horizontalHeaderCascadingSectionResizes">297 <bool>false</bool>298 </attribute>299 <attribute name="horizontalHeaderDefaultSectionSize">300 <number>128</number>301 </attribute>302 <attribute name="horizontalHeaderHighlightSections">303 <bool>false</bool>304 </attribute>305 <attribute name="verticalHeaderVisible">306 <bool>false</bool>307 </attribute>308 <attribute name="verticalHeaderDefaultSectionSize">309 <number>20</number>310 </attribute>311 <attribute name="verticalHeaderMinimumSectionSize">312 <number>18</number>313 </attribute>314 <row/>315 <row/>316 <row/>317 <column>318 <property name="text">319 <string>Job</string>320 </property>321 <property name="textAlignment">322 <set>AlignJustify|AlignVCenter</set>323 </property>324 </column>325 <column>326 <property name="text">327 <string>Host</string>328 </property>329 <property name="textAlignment">330 <set>AlignJustify|AlignVCenter</set>331 </property>332 </column>333 <column>334 <property name="text">335 <string>Nodes</string>336 </property>337 <property name="textAlignment">338 <set>AlignRight|AlignVCenter</set>339 </property>340 </column>341 <column>342 <property name="text">343 <string>Status</string>344 </property>345 </column>346 <column>347 <property name="text">348 <string>Progress</string>349 </property>350 <property name="font">351 <font>352 <weight>50</weight>353 <bold>false</bold>354 </font>355 </property>356 <property name="textAlignment">357 <set>AlignJustify|AlignVCenter</set>358 </property>359 </column>360 <column>361 <property name="text">362 <string>Remaining time</string>363 </property>364 <property name="textAlignment">365 <set>AlignRight|AlignVCenter</set>366 </property>367 </column>368 <column>369 <property name="text">370 <string>Jobname</string>371 </property>372 </column>373 <item row="0" column="0">374 <property name="text">375 <string>1</string>376 </property>377 </item>378 <item row="0" column="1">379 <property name="text">380 <string>1</string>381 </property>382 </item>383 <item row="0" column="2">384 <property name="text">385 <string>1</string>386 </property>387 <property name="textAlignment">388 <set>AlignRight|AlignVCenter</set>389 </property>390 </item>391 <item row="0" column="3">392 <property name="text">393 <string>1</string>394 </property>395 </item>396 <item row="0" column="4">397 <property name="text">398 <string>1</string>399 </property>400 </item>401 <item row="0" column="5">402 <property name="text">403 <string>1</string>404 </property>405 <property name="textAlignment">406 <set>AlignRight|AlignVCenter</set>407 </property>408 </item>409 <item row="1" column="0">410 <property name="text">411 <string>11</string>412 </property>413 </item>414 <item row="1" column="1">415 <property name="text">416 <string>1</string>417 </property>418 </item>419 <item row="1" column="2">420 <property name="text">421 <string>1</string>422 </property>423 <property name="textAlignment">424 <set>AlignRight|AlignVCenter</set>425 </property>426 </item>427 <item row="1" column="3">428 <property name="text">429 <string>1</string>430 </property>431 </item>432 <item row="1" column="4">433 <property name="text">434 <string>1</string>435 </property>436 </item>437 <item row="1" column="5">438 <property name="text">439 <string>1</string>440 </property>441 <property name="textAlignment">442 <set>AlignRight|AlignVCenter</set>443 </property>444 </item>445 <item row="2" column="0">446 <property name="text">447 <string>1</string>448 </property>449 </item>450 <item row="2" column="1">451 <property name="text">452 <string>1</string>453 </property>454 </item>455 <item row="2" column="2">456 <property name="text">457 <string>1</string>458 </property>459 <property name="textAlignment">460 <set>AlignRight|AlignVCenter</set>461 </property>462 </item>463 <item row="2" column="3">464 <property name="text">465 <string>1</string>466 </property>467 </item>468 <item row="2" column="4">469 <property name="text">470 <string>1</string>471 </property>472 </item>473 <item row="2" column="5">474 <property name="text">475 <string>1</string>476 </property>477 <property name="textAlignment">478 <set>AlignRight|AlignVCenter</set>479 </property>480 </item>481 </widget>482 </item>483 489 </layout> 484 490 </widget> … … 488 494 <x>0</x> 489 495 <y>0</y> 490 <width>7 58</width>496 <width>798</width> 491 497 <height>21</height> 492 498 </rect> -
palm/trunk/SCRIPTS/palm_wdd
r1612 r1613 20 20 # Current revisions: 21 21 # ----------------- 22 # 22 # Bugfix: tooltip for queuing name did not show up on first update. 23 # New: added contect menu for showing the parameter file and the run control 24 # output 23 25 # 24 26 # Former revisions: … … 200 202 return return_message 201 203 204 def GetPARIN(username,jobid): 205 206 # collect progress information 207 cmd_dorestart = "cat " + cmd_tmpdir + "/" + username + "." + jobid.partition(".")[2] + "/PARIN" 208 try: 209 devnull = open(os.devnull, 'w') 210 out = check_output(cmd_dorestart, shell=True, stderr=devnull) 211 return_message = out 212 out = None 213 except: 214 return_message = "Action failed." 215 216 return return_message 217 218 def GetRC(username,jobid): 219 220 # collect progress information 221 cmd_dorestart = "cat " + cmd_tmpdir + "/" + username + "." + jobid.partition(".")[2] + "/RUN_CONTROL" 222 try: 223 devnull = open(os.devnull, 'w') 224 out = check_output(cmd_dorestart, shell=True, stderr=devnull) 225 return_message = out 226 out = None 227 except: 228 return_message = "Action failed." 229 230 return return_message 202 231 203 232 # START OF MAIN … … 214 243 elif ( action == "restart"): 215 244 print DoRestartNow(data,data2) 245 elif ( action == "parin"): 246 print GetPARIN(data,data2) 247 elif ( action == "rc"): 248 print GetRC(data,data2) 216 249 else: 217 250 print "Error. Action " + action + " unknown."
Note: See TracChangeset
for help on using the changeset viewer.