--- /dev/null
+#!/usr/bin/python
+#
+# Copyright (c) 2003 Intel Corporation
+# All rights reserved.
+#
+# Copyright (c) 2004-2006 The Trustees of Princeton University
+# All rights reserved.
+
+
+import os
+
+from Exceptions import *
+import BootAPI
+
+
+def Run( vars, log ):
+ """
+ Stop the RunlevelAgent.py script. Should proceed
+ kexec to reset run_level to 'boot' before kexec
+ """
+
+ log.write( "\n\nStep: Stopping RunlevelAgent.py\n" )
+
+ try:
+ cmd = "%s/RunlevelAgent.py" % vars['BM_SOURCE_DIR']
+ # raise error if script is not present.
+ os.stat(cmd)
+ os.system("/usr/bin/python %s stop" % cmd)
+ except KeyError, var:
+ raise BootManagerException, "Missing variable in vars: %s\n" % var
+ except ValueError, var:
+ raise BootManagerException, "Variable in vars, shouldn't be: %s\n" % var
+
+ try:
+ update_vals= {}
+ update_vals['run_level']='boot'
+ BootAPI.call_api_function( vars, "ReportRunlevel", (update_vals,) )
+ except BootManagerException, e:
+ log.write( "Unable to update boot state for this node at PLC: %s.\n" % e )
+
+ return 1
+
+