6 # Copyright (c) 2003 Intel Corporation
9 # Copyright (c) 2004-2006 The Trustees of Princeton University
10 # All rights reserved.
12 from Exceptions import *
14 import notify_messages
19 Change this nodes boot state at PLC.
21 The only valid transition is from reinstall to boot. All other changes to
22 the boot state of a node should be performed by the Admin, Tech or PI
23 through the API or Web interface.
25 The current value of the BOOT_STATE key in vars is used.
26 Optionally, notify the contacts of the boot state change.
27 If this is the case, the following keys/values
28 should be set in vars before calling this step:
29 STATE_CHANGE_NOTIFY= 1
30 STATE_CHANGE_NOTIFY_MESSAGE= "<notify message>"
31 The second value is a message to send the users from notify_messages.py
33 Return 1 if succesfull, a BootManagerException otherwise.
36 log.write( "\n\nStep: Updating node boot state at PLC.\n" )
39 update_vals['boot_state']= vars['BOOT_STATE']
41 BootAPI.call_api_function( vars, "BootUpdateNode", (update_vals,) )
42 log.write( "Successfully updated boot state for this node at PLC\n" )
43 except BootManagerException, e:
44 log.write( "Unable to update boot state for this node at PLC: %s.\n" % e )
46 notify = vars.get("STATE_CHANGE_NOTIFY",0)
49 message= vars['STATE_CHANGE_NOTIFY_MESSAGE']
56 sent= BootAPI.call_api_function( vars, "BootNotifyOwners",
61 except BootManagerException, e:
62 log.write( "Call to BootNotifyOwners failed: %s.\n" % e )
65 log.write( "Unable to notify site contacts of state change.\n" )