-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo/src/catalyst/modules/netboot_target.py,v 1.7 2005/12/02 17:05:56 wolf31o2 Exp $
-
"""
-Builder class for a netboot build.
+netboot target, version 1
"""
+# NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
import os,string,types
from catalyst_support import *
from generic_stage_target import *
class netboot_target(generic_stage_target):
+ """
+ Builder class for a netboot build.
+ """
def __init__(self,spec,addlargs):
self.valid_values = [
"netboot/kernel/sources",
"netboot/packages"
]
self.required_values=[]
-
+
try:
- if addlargs.has_key("netboot/packages"):
+ if "netboot/packages" in addlargs:
if type(addlargs["netboot/packages"]) == types.StringType:
loopy=[addlargs["netboot/packages"]]
else:
loopy=addlargs["netboot/packages"]
-
+
# for x in loopy:
# self.required_values.append("netboot/packages/"+x+"/files")
except:
raise CatalystError,"configuration error in netboot/packages."
-
-
-
generic_stage_target.__init__(self,spec,addlargs)
self.set_build_kernel_vars(addlargs)
- if addlargs.has_key("netboot/busybox_config"):
+ if "netboot/busybox_config" in addlargs:
file_locate(self.settings, ["netboot/busybox_config"])
# Custom Kernel Tarball --- use that instead ...
# unless the user wants specific CFLAGS/CXXFLAGS, let's use -Os
-
+
for envvar in "CFLAGS", "CXXFLAGS":
- if not os.environ.has_key(envvar) and not addlargs.has_key(envvar):
+ if envvar not in os.environ and envvar not in addlargs:
self.settings[envvar] = "-Os -pipe"
-
-
-# def set_root_path(self):
-# # ROOT= variable for emerges
-# self.settings["root_path"]="/tmp/image"
- def set_dest_path(self):
- #destpath=self.settings["chroot_path"]+self.settings["root_path"]
- destpath=normpath(self.settings["chroot_path"]+"/tmp/image")
+ def set_root_path(self):
+ # ROOT= variable for emerges
+ self.settings["root_path"]=normpath("/tmp/image")
+ print "netboot root path is "+self.settings["root_path"]
# def build_packages(self):
# # build packages
-# if self.settings.has_key("netboot/packages"):
+# if "netboot/packages" in self.settings:
# mypack=list_bashify(self.settings["netboot/packages"])
# try:
-# cmd("/bin/bash "+self.settings["controller_file"]+" packages "+mypack)
+# cmd("/bin/bash "+self.settings["controller_file"]+" packages "+mypack,env=self.env)
# except CatalystError:
# self.unbind()
# raise CatalystError,"netboot build aborting due to error."
-
+
def build_busybox(self):
# build busybox
- if self.settings.has_key("netboot/busybox_config"):
+ if "netboot/busybox_config" in self.settings:
mycmd = self.settings["netboot/busybox_config"]
else:
mycmd = ""
try:
- cmd("/bin/bash "+self.settings["controller_file"]+" busybox "+ mycmd)
+ cmd("/bin/bash "+self.settings["controller_file"]+" busybox "+ mycmd,env=self.env)
except CatalystError:
self.unbind()
raise CatalystError,"netboot build aborting due to error."
-
def copy_files_to_image(self):
# create image
myfiles=[]
- if self.settings.has_key("netboot/packages"):
+ if "netboot/packages" in self.settings:
if type(self.settings["netboot/packages"]) == types.StringType:
loopy=[self.settings["netboot/packages"]]
else:
loopy=self.settings["netboot/packages"]
-
+
for x in loopy:
- if self.settings.has_key("netboot/packages/"+x+"/files"):
- if type(self.settings["netboot/packages/"+x+"/files"]) == types.ListType:
- myfiles.extend(self.settings["netboot/packages/"+x+"/files"])
- else:
- myfiles.append(self.settings["netboot/packages/"+x+"/files"])
+ if "netboot/packages/"+x+"/files" in self.settings:
+ if type(self.settings["netboot/packages/"+x+"/files"]) == types.ListType:
+ myfiles.extend(self.settings["netboot/packages/"+x+"/files"])
+ else:
+ myfiles.append(self.settings["netboot/packages/"+x+"/files"])
- if self.settings.has_key("netboot/extra_files"):
+ if "netboot/extra_files" in self.settings:
if type(self.settings["netboot/extra_files"]) == types.ListType:
myfiles.extend(self.settings["netboot/extra_files"])
else:
try:
cmd("/bin/bash "+self.settings["controller_file"]+\
- " image " + list_bashify(myfiles))
+ " image " + list_bashify(myfiles),env=self.env)
except CatalystError:
self.unbind()
raise CatalystError,"netboot build aborting due to error."
-
def create_netboot_files(self):
# finish it all up
try:
- cmd("/bin/bash "+self.settings["controller_file"]+" finish")
+ cmd("/bin/bash "+self.settings["controller_file"]+" finish",env=self.env)
except CatalystError:
self.unbind()
raise CatalystError,"netboot build aborting due to error."
# end
print "netboot: build finished !"
-
def set_action_sequence(self):
- self.settings["action_sequence"]=["unpack","unpack_snapshot",
- "config_profile_link","setup_confdir","bind","chroot_setup",\
+ self.settings["action_sequence"]=["unpack","unpack_snapshot",
+ "config_profile_link","setup_confdir","bind","chroot_setup",\
"setup_environment","build_packages","build_busybox",\
"build_kernel","copy_files_to_image",\
"clean","create_netboot_files","unbind","clear_autoresume"]