Files
puppet-swift/manifests/storage/xfs.pp
Sebastien Badia 77be0932fc Upgrade puppet-lint and fix metadata, parameter and style lint issues
This patch bump puppet-lint gem and add metadata and parameters checks.
Metadata lint issues (SPDX ID), missing parameters documentation and
syntaxe lint issues was also fixed in this patch

Doc for metadata syntax.
https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html

Change-Id: Ia6bb3483b3ffdbeed60b58702a36e0c7b31ffb86
2015-03-24 15:18:28 +01:00

60 lines
1.5 KiB
Puppet

# [*title*]
#
# [*byte_size*] Byte size to use for every inode in the created filesystem.
# It is recommened to use 1024 to ensure that the metadata can fit in a single inode.
#
#
# Sample usage:
#
# swift::storage::xfs {
# ['sdb', 'sdc', 'sde', 'sdf', 'sdg', 'sdh', 'sdi', 'sdj', 'sdk']:
# mnt_base_dir => '/srv/node',
# require => Class['swift'];
# }
#
# Creates /srv/node if dir does not exist, formats sdbX with XFS unless
# it already has an XFS FS, and mounts de FS in /srv/node/sdX
#
define swift::storage::xfs(
$device = '',
$byte_size = '1024',
$mnt_base_dir = '/srv/node',
$loopback = false
) {
include swift::xfs
if $device == '' {
$target_device = "/dev/${name}"
} else {
$target_device = $device
}
if(!defined(File[$mnt_base_dir])) {
file { $mnt_base_dir:
ensure => directory,
owner => 'swift',
group => 'swift',
}
}
# We use xfs_admin -l to print FS label
# If it's not a valid XFS FS, command will return 1
# so we format it. If device has a valid XFS FS, command returns 0
# So we do NOT touch it.
exec { "mkfs-${name}":
command => "mkfs.xfs -f -i size=${byte_size} ${target_device}",
path => ['/sbin/', '/usr/sbin/'],
require => Package['xfsprogs'],
unless => "xfs_admin -l ${target_device}",
}
swift::storage::mount { $name:
device => $target_device,
mnt_base_dir => $mnt_base_dir,
subscribe => Exec["mkfs-${name}"],
loopback => $loopback,
}
}