--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/puppet/files/solaris/lib/puppet/type/svccfg.rb Mon Sep 23 10:03:20 2013 -0700
@@ -0,0 +1,76 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+
+Puppet::Type.newtype(:svccfg) do
+ @doc = "Manage SMF service properties with svccfg(1M)."
+
+ ensurable do
+ newvalue(:present) do
+ provider.create
+ end
+
+ newvalue(:absent) do
+ provider.destroy
+ end
+
+ newvalue(:delcust) do
+ provider.delcust
+ end
+ end
+
+ newparam(:name) do
+ desc "The symbolic name for properties to manipulate. This name is
+ used for human reference only"
+ isnamevar
+ end
+
+ newparam(:fmri) do
+ desc "SMF service FMRI to manipulate"
+ end
+
+ newparam(:property) do
+ desc "Name of property - includes Property Group and Propery"
+ end
+
+ newparam(:type) do
+ desc "Type of the property"
+ end
+
+ newparam(:value) do
+ desc "Value of the property"
+ munge do |value|
+ # cast the value to an array
+ if not value.is_a? Array
+ value = Array[value]
+ end
+
+ # wrap each entry in quotes
+ value = value.collect{ |v| "\"#{v}\"" }
+
+ value.insert(0, "(")
+ value.insert(-1, ")")
+ end
+ end
+end