def inject(root_config_dir): '''Inject Step''' configs_to_inject = [] logger.debug('injecting configs from directory %s', root_config_dir) def find_service(root, service, tags): # e.g. ./default_configs/redis logger.debug('found service %s', service_name) service_name_directory = os.path.join(root, service_name) for version in os.listdir(service_name_directory): logger.debug('found service %s version %s', service_name, version) # second level, folders as versions # e.g. ./default_configs/redis/3.0.1 version_directory = os.path.join(service_name_directory, version) configs_to_inject.append( (service_name, version, version_directory, tags) ) # e.g. ./default_configs for service_or_tag_name in os.listdir(root_config_dir): # first level, folders are service names or tag directories # tag directories are located by finding an '=' in the name if '=' in service_or_tag_name: tag_name = service_or_tag_name tag_directory = os.path.join(root_config_dir, tag_name) logger.debug('found tags %s', tag_name) tag_strings = tag_name.split(',') tags = util.tags_to_dict(tag_strings) logger.debug('parsed tags %s', tags) for service_name in os.listdir(tag_directory): find_service(tag_directory, service_name, tags) else: service_name = service_or_tag_name find_service(root_config_dir, service_name, {}) results = [] for service_name, version, version_directory, tags in configs_to_inject: result = _inject_service(service_name, version, version_directory, tags) results.append(result) return all(results)
def inject(root_config_dir): '''Inject Step''' configs_to_inject = [] logger.debug('injecting configs from directory %s', root_config_dir) def find_service(root, service, tags): # e.g. ./default_configs/redis logger.debug('found service %s', service_name) service_name_directory = os.path.join(root, service_name) for version in os.listdir(service_name_directory): logger.debug('found service %s version %s', service_name, version) # second level, folders as versions # e.g. ./default_configs/redis/3.0.1 version_directory = os.path.join(service_name_directory, version) configs_to_inject.append( (service_name, version, version_directory, tags)) # e.g. ./default_configs for service_or_tag_name in os.listdir(root_config_dir): # first level, folders are service names or tag directories # tag directories are located by finding an '=' in the name if '=' in service_or_tag_name: tag_name = service_or_tag_name tag_directory = os.path.join(root_config_dir, tag_name) logger.debug('found tags %s', tag_name) tag_strings = tag_name.split(',') tags = util.tags_to_dict(tag_strings) logger.debug('parsed tags %s', tags) for service_name in os.listdir(tag_directory): find_service(tag_directory, service_name, tags) else: service_name = service_or_tag_name find_service(root_config_dir, service_name, {}) results = [] for service_name, version, version_directory, tags in configs_to_inject: result = _inject_service(service_name, version, version_directory, tags) results.append(result) return all(results)
def main_build(args): logger.debug('args: %s', args) tags = tags_to_dict(args.tag) ensure( build(args.service_name, args.version, args.default_config_folder, tags))
def main_build(args): logger.debug('args: %s', args) tags = tags_to_dict(args.tag) ensure(build(args.service_name, args.version, args.default_config_folder, tags))