summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDerek Olsen <derek.olsen@e-hps.com>2011-01-13 14:07:00 -0800
committerDaniel Pittman <daniel@puppetlabs.com>2011-03-10 16:52:12 -0800
commit0a2a58c8650e8956a4ae464d364310ced244303b (patch)
tree8025c4689923424e89be26f19492f5923de9ea5c /lib
parent6ff2e5cd775c5802113d27f85ed518e25365d563 (diff)
downloadpuppet-0a2a58c8650e8956a4ae464d364310ced244303b.tar.gz
puppet-0a2a58c8650e8956a4ae464d364310ced244303b.tar.xz
puppet-0a2a58c8650e8956a4ae464d364310ced244303b.zip
(#5479) Autorequire zfs filesystem when zone dataset is configured
A zone dataset is just a zfs filesystem in the global zone. This zfs filesystem needs to exist before it can be given to a zone as a dataset. It seemed to make sense to autorequire the zfs filesystem. This patch just autorequires the zfs filesystem which will be the dataset and let's the zfs type manage autorequiring the parent zfs filesystems and zpool. Reviewed-By: Daniel Pittman <daniel@puppetlabs.com> Reviewed-By: Matt Robinson <matt@puppetlabs.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/type/zone.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/puppet/type/zone.rb b/lib/puppet/type/zone.rb
index fc524a541..c7c2aa143 100644
--- a/lib/puppet/type/zone.rb
+++ b/lib/puppet/type/zone.rb
@@ -413,6 +413,23 @@ Puppet::Type.newtype(:zone) do
end
end
+ # If Puppet is also managing the zfs filesystem which is the zone dataset
+ # then list it as a prerequisite. Zpool's get autorequired by the zfs
+ # type. We just need to autorequire the dataset zfs itself as the zfs type
+ # will autorequire all of the zfs parents and zpool.
+ autorequire(:zfs) do
+
+ # Check if we have datasets in our zone configuration
+ if @parameters.include? :dataset
+ reqs = []
+ # Autorequire each dataset
+ self[:dataset].each { |value|
+ reqs << value
+ }
+ reqs
+ end
+ end
+
def validate_ip(ip, name)
IPAddr.new(ip) if ip
rescue ArgumentError