X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2Fsteps%2FInstallBuildVServer.py;fp=source%2Fsteps%2FInstallBuildVServer.py;h=0000000000000000000000000000000000000000;hb=b428c6ae99d920a6d9f40228be5106398c3d5598;hp=169b0fbbb46ad2d919a213d41b52a50ffdacdbb8;hpb=80a8fdde181b28da43faa152732e0086ffbf2656;p=bootmanager.git diff --git a/source/steps/InstallBuildVServer.py b/source/steps/InstallBuildVServer.py deleted file mode 100644 index 169b0fb..0000000 --- a/source/steps/InstallBuildVServer.py +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/python2 - -# Copyright (c) 2003 Intel Corporation -# All rights reserved. -# -# Copyright (c) 2004-2006 The Trustees of Princeton University -# All rights reserved. -# expected /proc/partitions format - - -import os -import string - -from Exceptions import * -import utils - - -# if this file is present in the vservers /etc directory, -# the resolv.conf and hosts files will automatically be updated -# by the bootmanager -UPDATE_FILE_FLAG= "AUTO_UPDATE_NET_FILES" - -# the name of the vserver-reference directory -VSERVER_REFERENCE_DIR_NAME='vserver-reference' - - -def Run( vars, log ): - """ - Setup directories for building vserver reference image. - - Except the following variables from the store: - SYSIMG_PATH the path where the system image will be mounted - (always starts with TEMP_PATH) - NETWORK_SETTINGS A dictionary of the values from the network - configuration file - - Sets the following variables: - None - - """ - - log.write( "\n\nStep: Install: Setting up VServer image.\n" ) - - # make sure we have the variables we need - try: - SYSIMG_PATH= vars["SYSIMG_PATH"] - if SYSIMG_PATH == "": - raise ValueError, "SYSIMG_PATH" - - NETWORK_SETTINGS= vars["NETWORK_SETTINGS"] - if NETWORK_SETTINGS == "": - raise ValueError, "NETWORK_SETTINGS" - - 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 - - vserver_ref_dir= "/vservers/vserver-reference" - full_vserver_ref_path= "%s/%s" % (SYSIMG_PATH,vserver_ref_dir) - - utils.makedirs( full_vserver_ref_path ) - utils.makedirs( "%s/etc" % full_vserver_ref_path ) - - log.write( "Setting permissions on directories\n" ) - utils.sysexec( "chmod 0000 %s/vservers/" % SYSIMG_PATH, log ) - - return 1 - - - -def update_vserver_network_files( vserver_dir, vars, log ): - """ - Update the /etc/resolv.conf and /etc/hosts files in the specified - vserver directory. If the files do not exist, write them out. If they - do exist, rewrite them with new values if the file UPDATE_FILE_FLAG - exists it /etc. if this is called with the vserver-reference directory, - always update the network config files and create the UPDATE_FILE_FLAG. - - This is currently called when setting up the initial vserver reference, - and later when nodes boot to update existing vserver images. - - Expect the following variables from the store: - SYSIMG_PATH the path where the system image will be mounted - (always starts with TEMP_PATH) - NETWORK_SETTINGS A dictionary of the values from the network - configuration file - """ - - try: - SYSIMG_PATH= vars["SYSIMG_PATH"] - if SYSIMG_PATH == "": - raise ValueError, "SYSIMG_PATH" - - NETWORK_SETTINGS= vars["NETWORK_SETTINGS"] - if NETWORK_SETTINGS == "": - raise ValueError, "NETWORK_SETTINGS" - - 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: - ip= NETWORK_SETTINGS['ip'] - method= NETWORK_SETTINGS['method'] - hostname= NETWORK_SETTINGS['hostname'] - domainname= NETWORK_SETTINGS['domainname'] - except KeyError, var: - raise BootManagerException, \ - "Missing network value %s in var NETWORK_SETTINGS\n" % var - - try: - os.listdir(vserver_dir) - except OSError: - log.write( "Directory %s does not exist to write network conf in.\n" % - vserver_dir ) - return - - file_path= "%s/etc/%s" % (vserver_dir,UPDATE_FILE_FLAG) - update_files= 0 - if os.access(file_path,os.F_OK): - update_files= 1 - - - if vserver_dir.find(VSERVER_REFERENCE_DIR_NAME) != -1: - log.write( "Forcing update on vserver-reference directory:\n%s\n" % - vserver_dir ) - utils.sysexec_noerr( "echo '%s' > %s/etc/%s" % - (UPDATE_FILE_FLAG,vserver_dir,UPDATE_FILE_FLAG), - log ) - update_files= 1 - - - if update_files: - log.write( "Updating network files in %s.\n" % vserver_dir ) - - file_path= "%s/etc/hosts" % vserver_dir - hosts_file= file(file_path, "w" ) - hosts_file.write( "127.0.0.1 localhost\n" ) - if method == "static": - hosts_file.write( "%s %s.%s\n" % (ip, hostname, domainname) ) - hosts_file.close() - hosts_file= None - - - file_path= "%s/etc/resolv.conf" % vserver_dir - if method == "dhcp": - # copy the resolv.conf from the boot cd env. - utils.sysexec( "cp /etc/resolv.conf %s/etc" % vserver_dir, log ) - else: - # copy the generated resolv.conf from the system image, since - # we generated it via static settings - utils.sysexec( "cp %s/etc/resolv.conf %s/etc" % \ - (SYSIMG_PATH,vserver_dir), log ) - - return