summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider
diff options
context:
space:
mode:
authorRein Henrichs <rein@puppetlabs.com>2010-04-13 16:47:16 -0700
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commita166d50c3c555a38ae13c1658b9afaefd583cfc9 (patch)
treeeccfda10f430377f539feb6b3bdbc46f9f9bed92 /lib/puppet/provider
parentaf521fade9bf64704bab00ddf5d81aa1f987fb7e (diff)
downloadpuppet-a166d50c3c555a38ae13c1658b9afaefd583cfc9.tar.gz
puppet-a166d50c3c555a38ae13c1658b9afaefd583cfc9.tar.xz
puppet-a166d50c3c555a38ae13c1658b9afaefd583cfc9.zip
Fix for #3399 zone type should handle exclusive IP stacks
* corrected missing status * added cloning and support for default router * RH: Fix spec to return accurate value for @resource[:clone] * RH: Add spec for untested install case when @resource[:clone] returns a (non-falsy) value Signed-off-by: Rein Henrichs <rein@puppetlabs.com>
Diffstat (limited to 'lib/puppet/provider')
-rw-r--r--lib/puppet/provider/zone/solaris.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/puppet/provider/zone/solaris.rb b/lib/puppet/provider/zone/solaris.rb
index b047f6984..1aaa70d47 100644
--- a/lib/puppet/provider/zone/solaris.rb
+++ b/lib/puppet/provider/zone/solaris.rb
@@ -65,7 +65,9 @@ Puppet::Type.type(:zone).provide(:solaris) do
end
def install(dummy_argument=:work_arround_for_ruby_GC_bug)
- if @resource[:install_args]
+ if @resource[:clone] # TODO: add support for "-s snapshot"
+ zoneadm :clone, @resource[:clone]
+ elsif @resource[:install_args]
zoneadm :install, @resource[:install_args].split(" ")
else
zoneadm :install
@@ -227,8 +229,17 @@ Puppet::Type.type(:zone).provide(:solaris) do
if dir = config["inherit-pkg-dir"]
result[:inherit] = dir.collect { |dirs| dirs[:dir] }
end
+ result[:iptype] = config[:"ip-type"]
if net = config["net"]
- result[:ip] = net.collect { |params| "%s:%s" % [params[:physical], params[:address]] }
+ result[:ip] = net.collect do |params|
+ if params[:defrouter]
+ "%s:%s:%s" % [params[:physical], params[:address], params[:defrouter]]
+ elsif params[:address]
+ "%s:%s" % [params[:physical], params[:address]]
+ else
+ params[:physical]
+ end
+ end
end
result