components/puppet/patches/puppet-03-zonetype.patch
author Drew Fisher <drew.fisher@oracle.com>
Tue, 21 May 2013 09:30:36 -0600
branchs11-update
changeset 2629 3666f503c6e7
permissions -rw-r--r--
PSARC/2013/005 Puppet 3.0.1 15846284 Integrate the Puppet CM 16479671 problem in UTILITY/PUPPET 16480077 Update Puppet to 3.1.1

The puppet zone type changes that enable basic functionality with Solaris 11
zones. Includes the type changes to fix a bug introduced by the putback of
15886 into the puppet gate that prevented zones networking from being created.  

--- puppet-3.0.1/lib/puppet/type/zone.rb.orig	2013-02-15 16:08:16.530618507 -0700
+++ puppet-3.0.1/lib/puppet/type/zone.rb	2013-02-15 08:24:18.530373776 -0700
@@ -133,6 +133,12 @@
     isnamevar
   end
 
+  newparam(:config_profile) do
+    desc "Path to the config_profile to use for installation of a solaris zone.
+          This is set when providing a sysconfig profile instead of running the
+	  sysconfig SCI tool on first boot of the zone."
+  end
+
   newparam(:id) do
     desc "The numerical ID of the zone.  This number is autogenerated
       and cannot be changed."
@@ -161,19 +167,44 @@
 
     # overridden so that we match with self.should
     def insync?(is)
-      return true unless is
-      is = [] if is == :absent
+      is = [] if is == :absent or is.nil?
       is.sort == self.should.sort
     end
   end
 
   newproperty(:iptype) do
-    desc "The IP stack type of the zone."
-    defaultto :shared
+    desc "The IP stack type of the zone. The default is to exclusive."
+    if ['5.11', '5.12'].include? Facter.value(:kernelrelease)
+       defaultto :exclusive
+    else
+       defaultto :shared
+    end
     newvalue :shared
     newvalue :exclusive
   end
 
+  newproperty(:net_resource, :parent => Puppet::Property::List) do
+    desc "The net resource assigned network resource to a zone. The net
+          resource represents the assignment of a physical network resource
+	   to a zone. The anet resource represents the automatic creation of a
+	   network resource for an exclusive-IP zone. This property only needs
+          to be set if additional network resources are desired. By default
+          an anet resource is created for the zone. To add additional net
+          or anet services"
+    newvalue :anet
+    newvalue :net
+
+    def should
+      @should
+    end
+
+    # overridden so that we match with self.should
+    def insync?(is)
+      is = [] if is == :absent or is.nil?
+      is.sort == self.should.sort
+    end
+  end
+
   newproperty(:autoboot, :boolean => true) do
     desc "Whether the zone should automatically boot."
     defaultto true
@@ -218,8 +249,7 @@
 
     # overridden so that we match with self.should
     def insync?(is)
-      return true unless is
-      is = [] if is == :absent
+      is = [] if is == :absent or is.nil?
       is.sort == self.should.sort
     end