X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2Fsteps%2FInstallUninitHardware.py;h=ccf1d12bc53a78eb470b92c84a8a3087213af49b;hb=05fcdf2237fe6100cc31828ca206d42b24e8ae5a;hp=7a2861232ff951b5916b14c3fae450cb9f9a8827;hpb=7ab7e9dd797333a9fdc8604554e16e192a32144d;p=bootmanager.git diff --git a/source/steps/InstallUninitHardware.py b/source/steps/InstallUninitHardware.py index 7a28612..ccf1d12 100644 --- a/source/steps/InstallUninitHardware.py +++ b/source/steps/InstallUninitHardware.py @@ -1,44 +1,11 @@ +#!/usr/bin/python + # Copyright (c) 2003 Intel Corporation # All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. - -# * Neither the name of the Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF -# YOUR JURISDICTION. It is licensee's responsibility to comply with any -# export regulations applicable in licensee's jurisdiction. Under -# CURRENT (May 2000) U.S. export regulations this software is eligible -# for export from the U.S. and can be downloaded by or otherwise -# exported or reexported worldwide EXCEPT to U.S. embargoed destinations -# which include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, -# Afghanistan and any other country to which the U.S. has embargoed -# goods and services. - +# +# Copyright (c) 2004-2006 The Trustees of Princeton University +# All rights reserved. +# expected /proc/partitions format import os @@ -50,7 +17,9 @@ import utils def Run( vars, log ): """ Unitializes hardware: - - unmount all previously mounted partitions + - unmount everything mounted during install, except the + /dev/planetlab/root and /dev/planetlab/vservers. This includes + calling swapoff for /dev/planetlab/swap. Except the following variables from the store: TEMP_PATH the path to download and store temp files to @@ -58,9 +27,6 @@ def Run( vars, log ): (always starts with TEMP_PATH) PARTITIONS dictionary of generic part. types (root/swap) and their associated devices. - NODE_ID the node_id from the database for this node - - this is needed to make any requests back to the server Sets the following variables: None @@ -83,10 +49,6 @@ def Run( vars, log ): if PARTITIONS == None: raise ValueError, "PARTITIONS" - NODE_ID= vars["NODE_ID"] - if NODE_ID == "": - raise ValueError("NODE_ID") - except KeyError, var: raise BootManagerException, "Missing variable in vars: %s\n" % var except ValueError, var: @@ -101,37 +63,14 @@ def Run( vars, log ): except KeyError, part: raise BootManagerException, "Missing partition in PARTITIONS: %s\n" % part - # workaround - utils.sysexec_noerr( "chroot %s umount /rcfs" % SYSIMG_PATH, log ) + try: + # backwards compat, though, we should never hit this case post PL 3.2 + os.stat("%s/rcfs/taskclass"%SYSIMG_PATH) + utils.sysexec_chroot_noerr( SYSIMG_PATH, "umount /rcfs", log ) + except OSError, e: + pass - log.write( "Unmounting proc.\n" ) - utils.sysexec( "umount %s/proc" % SYSIMG_PATH, log ) - - log.write( "Unmounting vserver partition.\n" ) - utils.sysexec( "umount %s" % PARTITIONS["vservers"], log ) - - log.write( "Unmounting rcfs file system in image.\n" ) - utils.sysexec_noerr( "chroot %s umount /rcfs" % SYSIMG_PATH, log ) - - log.write( "Unmounting system image.\n" ) - utils.sysexec( "umount %s" % PARTITIONS["root"], log ) - log.write( "Shutting down swap\n" ) utils.sysexec( "swapoff %s" % PARTITIONS["swap"], log ) - # as one of the last steps, upload /var/log/messages if it exists - - # send a notification that the install is complete - #action= "email" - #message= "installfinished" - #nodestate= "" - - #try: - # result= utils.notifybootserver( BS_REQUEST, NODE_ID, - # NODE_NONCE, - # action, message, nodestate ) - #except AlpinaError, desc: - # log.write( "Unable to notify boot server of " \ - # "install complete (not critical): %s" % desc ) - return 1