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