in cookbooks/fb_storage/libraries/format_devices_provider.rb [444:500]
def format_storage(partitions, storage)
Chef::Log.debug(
"fb_storage: formatting #{partitions}",
)
partitions.each do |partition|
device = FB::Storage.device_name_from_partition(partition)
device_config = nil
if storage.config[device]
device_config = storage.config[device]
elsif storage.arrays[device]
device_config = storage.arrays[device]
end
Chef::Log.debug(
"fb_storage: Device config for #{partition} " +
"is #{device_config}",
)
if device == partition && device_config['whole_device']
config = device_config['partitions'][0]
elsif device_config['raid_level']
config = device_config
else
partnum = partition.match(/([0-9]+)$/)[0].to_i
config = device_config['partitions'][partnum - 1]
end
Chef::Log.debug(
"fb_storage: Partition config for #{partition} " +
"is #{config}",
)
if config['_swraid_array'] || config['_swraid_array_journal'] ||
config['_xfs_rt_data'] || config['_xfs_rt_metadata'] ||
config['_xfs_rt_rescue'] || config['_no_mkfs']
Chef::Log.debug(
"fb_storage: Skipping because we're a member " +
'of an array, or were asked not to make a filesystem',
)
next
end
sh = FB::Storage::Handler.get_handler(device, node)
sh.prep_partition(partition)
sh.format_partition(
partition,
config,
)
sh.condition_partition(partition)
end
end