wiki:TorqueExamples

Version 2 (modified by bas, 14 years ago) (diff)

--

Examples

The test programs are include as a reference how to use the pbs python module. You have to edit some test programs to reflect your PBS/Torque installation:

  • pbsmon.oy - ASCII xpbsmon
  • rack_pbsmon.py - ascii xpbsmon by rack layout
  • pbsnodes-a.py - pbsnodes -a
  • pbs_version.py - print server version
  • set_property.py - set some node properties
  • resmom_info.py - queries the pbs_mom daemon on the nodes
  • logpbs.py - Shows the usage of the PBS logging routines
  • new_interface.py - Example how to use PBSQuery module
  • PBSQuery.py - python <install_path>/PBSQuery.py (has builtin demo)

sara_nodes.py

sara_nodes ia an utility that we use to set nodes offline/online. We use this instead of pbsnodes -N. It can be best described with an examples. When it is executed without command line arguments:

sara_nodes

output:

 Use option --help for help

 Nodename   | State               | Note
--------------------------------------------------------------------------------
 gb-r10n1   | offline             | 17-08 15:07, 14-09 14:21 bas         : Debian squeeze testen, cfengine3 target node
 gb-r10n2   | offline             | 24-03 10:46, 03-05 10:07 dennis #2761: Debian sqeeuze testen, sali ontwikkel node
 gb-r13n24  | offline             | 14-09 07:59, 14-09 07:59 dennis #2999: ecc memory error

The note field is divided in separate fields:

  • date reported : 24-03 10:46
  • last change : 03-05 10:07
  • last user that has done the change : dennis
  • ticket number : #2761
  • note : Debian sqeeuze testen, sali ontwikkel node

Below are some example how to use sara_nodes:

  • To mark the nodes 1-5 in rack 1-5 offline for maintenance:
    sara_nodes --offline="Maintenance" ib-r[1-5]n[1-5]
    
  • To put the above nodes back online again:
    sara_nodes --clear ib-r[1-5]n[1-5]
    
  • Mark the nodes gb-r6n1 and gb-8n9 offline according to ticket 3000:
    sara_nodes --offline="infiniband problems" --ticket=3000
    

You can change the output format of sara_nodes. These fields can be used:

  • node
  • state
  • date_add
  • date_edit
  • user
  • ticket
  • remark

Opmaak van de veld tags is opgebouwd uit:

  • % = betekend het begin van een tag
  • * = de hoeveelheid tekens in een string, als de waarde kleiner is dan * dan opvullen met spaties, * == betekend de standaard waarde gebruiken
  • Tussen de ( en ) specificeer je een veldnaam
  • s = hiermee specificeer je dat het gaat om een stringwaarde

De tags op een rijtje

  • %*(node)s
  • %*(state)s
  • %*(date_add)s
  • %*(date_edit)s
  • %*(user)s
  • %*(ticket)s
  • %*(remark)s

Door sara_nodes --help uit te voeren kan je ook de overige opties bekijken.

Sara_nodes als python module

Buiten dat je sara_nodes als programma kan gebruiken is hij ook te gebruiken als module. Dit betekend dat je eenvoudig in je bestaande Python programma's de status van een node kan aanpassen naar down of offline.

import sara_nodes

obj_sara_nodes = sara_nodes.sara_nodes()
nodenames = ['gb-r15n1','gb-r15n2','gb-r15n3','gb-r15n4','gb-r15n5','gb-r15n6']
	
try:
  # De nodes met een reden offline zetten
  obj_sara_nodes.pbs_change_state_offline( nodenames, 'Onderhoud' )

  # De nodes met een reden offline zetten, plus een ticket nummer meegeven (in dit geval nr 1221)
  obj_sara_nodes.pbs_change_state_offline( nodenames, 'Onderhoud', 1221 )

  # De nodes down zetten
  obj_sara_nodes.pbs_change_state_down( nodenames )

  # De note clearen, de state NIET
  obj_sara_nodes.pbs_change_note_clear( nodenames )

  # Note ticket wijzigen/toevoegen, verwijderen gebruik 'c' als waarde
  obj_sara_nodes.pbs_change_note_ticket( nodenames, 1221 )

  # Note aanpassen, bij deze optie wordt de vorige note overschreven
  obj_sara_nodes.pbs_change_note( nodenames, 'een nieuwe omschrijving' )

  # Note aanpassen, bij deze optie wordt de vorige note overschreven, ook nieuwe ticket nummer
  obj_sara_nodes.pbs_change_note( nodenames, 'een nieuwe omschrijving' 1221 )

except sara_nodes.sara_nodesException, msg:
  print msg