docs: def config_collection_for_built(self, throw_error=True,silent=False):
  		"""Collect configuration for modules that are being built.
  		When this is called we should know what's being built (ie after
  		dependency resolution).
  		"""
  		shutit_global.shutit_global_object.yield_to_draw()
  		self.log('In config_collection_for_built',level=logging.DEBUG)
  		cfg = self.cfg
  		for module_id in self.module_ids():
  			# Get the config even if installed or building (may be needed in other hooks, eg test).
  			if (self.is_to_be_built_or_is_installed(self.shutit_map[module_id]) and
  				not self.shutit_map[module_id].get_config(self)):
  				self.fail(module_id + ' failed on get_config') # pragma: no cover
  			# Collect the build.cfg if we are building here.
  			# If this file exists, process it.
  			if cfg[module_id]['shutit.core.module.build'] and not self.build['have_read_config_file']:
  				# TODO: __module_file not accessible when within object - look to get this elsewhere and re-read in, then move this function into shutit object.
  				cfg_file = os.path.dirname(self.shutit_file_map[module_id]) + '/configs/build.cnf'
  				if os.path.isfile(cfg_file):
  					self.build['have_read_config_file'] = True
  					# use self.get_config, forcing the passed-in default
  					config_parser = ConfigParser.ConfigParser()
  					config_parser.read(cfg_file)
  					for section in config_parser.sections():
  						if section == module_id:
  							for option in config_parser.options(section):
  								override = False
  								for mod, opt, val in self.build['config_overrides']:
  									val = val # pylint
  									# skip overrides
  									if mod == module_id and opt == option:
  										override = True
  								if override:
  									continue
  								is_bool = isinstance(cfg[module_id][option], bool)
  								if is_bool:
  									value = config_parser.getboolean(section,option)
  								else:
  									value = config_parser.get(section,option)
  								if option == 'shutit.core.module.allowed_images':
  									value = json.loads(value)
  								self.get_config(module_id, option, value, forceask=True)
  		# Check the allowed_images against the base_image
  		passed = True
  		for module_id in self.module_ids():
  			if (cfg[module_id]['shutit.core.module.build'] and
  			   (cfg[module_id]['shutit.core.module.allowed_images'] and
  			    self.target['docker_image'] not in cfg[module_id]['shutit.core.module.allowed_images'])):
  				if not self.allowed_image(module_id):
  					passed = False
  					if not silent:
  						shutit_global.shutit_global_object.shutit_print('\n\nWARNING!\n\nAllowed images for ' + module_id + ' are: ' + str(cfg[module_id]['shutit.core.module.allowed_images']) + ' but the configured image is: ' + self.target['docker_image'] + '\n\nIs your shutit_module_path set correctly?\n\nIf you want to ignore this, pass in the --ignoreimage flag to shutit.\n\n')
  		if not passed:
  			if not throw_error:
  				return False
  			if self.build['imageerrorok']:
  				# useful for test scripts
  				shutit_global.shutit_global_object.shutit_print('Exiting on allowed images error, with return status 0')
  				shutit_global.shutit_global_object.handle_exit(exit_code=1)
  			else:
  				raise ShutItFailException('Allowed images checking failed') # pragma: no cover
  		return True