From: Derek Olsen <[email protected]> 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 <[email protected]> Reviewed-By: Matt Robinson <[email protected]> --- lib/puppet/type/zone.rb | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/lib/puppet/type/zone.rb b/lib/puppet/type/zone.rb index fc524a5..c7c2aa1 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 -- 1.7.4.1 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
