diff options
| author | Derek Olsen <derek.olsen@e-hps.com> | 2010-11-26 13:57:10 -0800 |
|---|---|---|
| committer | Jesse Wolfe <jes5199@gmail.com> | 2010-12-07 13:56:59 -0800 |
| commit | c88afa0cb9917177502700fddffcf8a40ca75f90 (patch) | |
| tree | f46b7639fa5a1ceffce5bc424e1aa6c19f735ddb | |
| parent | 4fb675d3e028c2429f4fa56bf172d60127c9e608 (diff) | |
| download | puppet-c88afa0cb9917177502700fddffcf8a40ca75f90.tar.gz puppet-c88afa0cb9917177502700fddffcf8a40ca75f90.tar.xz puppet-c88afa0cb9917177502700fddffcf8a40ca75f90.zip | |
(#5393) Add "dataset" parameter to the zone provider
This patch extends the zone provider to support the inclusion of one or more datasets in a solaris zone. A dataset is an zfs filesystem that has been delegated from the global zone to the non global zone.
| -rw-r--r-- | lib/puppet/provider/zone/solaris.rb | 3 | ||||
| -rw-r--r-- | lib/puppet/type/zone.rb | 27 |
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/puppet/provider/zone/solaris.rb b/lib/puppet/provider/zone/solaris.rb index c11444993..a1df041cb 100644 --- a/lib/puppet/provider/zone/solaris.rb +++ b/lib/puppet/provider/zone/solaris.rb @@ -221,6 +221,9 @@ Puppet::Type.type(:zone).provide(:solaris) do if dir = config["inherit-pkg-dir"] result[:inherit] = dir.collect { |dirs| dirs[:dir] } end + if datasets = config["dataset"] + result[:dataset] = datasets.collect { |dataset| dataset[:name] } + end result[:iptype] = config[:"ip-type"] if net = config["net"] result[:ip] = net.collect do |params| diff --git a/lib/puppet/type/zone.rb b/lib/puppet/type/zone.rb index 408d6f5dd..fc524a541 100644 --- a/lib/puppet/type/zone.rb +++ b/lib/puppet/type/zone.rb @@ -282,6 +282,33 @@ Puppet::Type.newtype(:zone) do end end + newproperty(:dataset, :parent => ZoneMultiConfigProperty) do + desc "The list of datasets delegated to the non global zone from the + global zone. All datasets must be zfs filesystem names which is + different than the mountpoint." + + validate do |value| + unless value !~ /^\// + raise ArgumentError, "Datasets must be the name of a zfs filesystem" + end + end + + # Add a zfs filesystem to our list of datasets. + def add(dataset) + "add dataset\nset name=#{dataset}\nend" + end + + # Remove a zfs filesystem from our list of datasets. + def rm(dataset) + "remove dataset name=#{dataset}" + end + + def should + @should + end + end + + newproperty(:inherit, :parent => ZoneMultiConfigProperty) do desc "The list of directories that the zone inherits from the global zone. All directories must be fully qualified." |
