All pastes #632018 Raw Edit

Something

public python v1 · immutable
#632018 ·published 2007-07-24 15:09 UTC
rendered paste body
def update_pkgs_filtered(roles, excludes, maxiterations = 16, iteration = 1, blocks = []):	print "Installing packages with filtered blocks"	packages = os.popen("/usr/bin/yum %s -y groupinfo %s" % (excludes, roles)).readlines()	packages = [package.strip() for package in packages if package.startswith("   ")]	exclude_file = open("/etc/excludepkg", "r")	excludelist = ["--exclude %s" % exclude.strip() for exclude in exclude_file]	excludes = " ".join(excludelist)	errored = False	(input, output) = os.popen4("/usr/bin/yum -y %s install %s" % (excludes, " ".join(packages)))	for line in output.readlines():		if line.startswith("Error: Missing Dependency: ") or line.endswith(" is not signed"):			errored = True	if not errored:		update_log()		return	else:		if iteration == maxiterations:			raise Exception		blocks.extend([line.split()[-1] for line in output.readlines() if line.startswith("Error: Missing Dependency: ")])		blocks.extend([line.split(".", 1)[0].split("-", 1)[-1].split()[1] for line in output.readlines() if line.endswith(" is not signed")])		blocks = list(set(blocks))  # remove duplicates		return update_pkgs_filtered(roles, excludes, maxiterations, iteration + 1, blocks)