From lianep@nihil.Eng.Sun.COM Thu Jun 17 17:24:06 2010
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id o5I0O6Iq003181
	for <psarc-ext@sac.sfbay.sun.com>; Thu, 17 Jun 2010 17:24:06 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.4) with ESMTP id o5I0O1Jv001035
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Thu, 17 Jun 2010 18:24:06 -0600 (MDT)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0L460000JP45X600@nwk-avmta-2.sfbay.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Thu, 17 Jun 2010 17:24:05 -0700 (PDT)
Received: from nihil.Eng.Sun.COM ([129.146.228.161])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0L460065UP44CFE0@nwk-avmta-2.sfbay.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Thu,
 17 Jun 2010 17:24:04 -0700 (PDT)
Received: from nihil.Eng.Sun.COM (localhost [127.0.0.1])
	by nihil.Eng.Sun.COM (8.14.4+Sun/8.14.4) with ESMTP id o5I0O2qF111902; Thu,
 17 Jun 2010 17:24:02 -0700 (PDT)
Received: (from lianep@localhost)
	by nihil.Eng.Sun.COM (8.14.4+Sun/8.14.4/Submit) id o5I0O28K111900; Thu,
 17 Jun 2010 17:24:02 -0700 (PDT)
Date: Thu, 17 Jun 2010 17:24:02 -0700 (PDT)
From: Liane Praza <lianep@nihil.Eng.Sun.COM>
Subject: Relaxed Type Requirements for SMF Profiles [PSARC/2010/222 Self Review]
To: PSARC-ext@sun.com
Cc: david.e.powell@oracle.com, sean.wilcox@oracle.com
Message-id: <201006180024.o5I0O28K111900@nihil.Eng.Sun.COM>
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
Status: RO
Content-Length: 8337


Template Version: @(#)sac_nextcase 1.70 03/30/10 SMI
This information is Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
1. Introduction
    1.1. Project/Component Working Name:
	 Relaxed Type Requirements for SMF Profiles
    1.2. Name of Document Author/Supplier:
	 Author:  Sean Wilcox
    1.3  Date of This Document:
	17 June, 2010
4. Technical Description
Sean Wilcox
06/17/2010

1. Summary
   smf(5)/Greenline (PSARC 2002/547) provides the service_bundle(4)
   XML DTD.  The required types for profiles can be relaxed in the
   property elements when those elements already exist in the repository
   via an imported manifest.

2. Details
   When a property group or property already has a type in the service/
   instance, it can be taken from what is in the repository when
   applying a profile that would update that property group or property.
   Which means that the type should be implied for these elements.

   In order to keep the DTD validation for profiles that would like to
   use this relaxed requirement on elements, it is necessary to define
   the elements with implied types.  Using Condidtional DTD Entities
   to create the different DTD elements within the DTD simplifies
   maintenance of the DTD for smf manifests and profiles given that there
   is so much shared data.

   With this method a profile writer that wants to take advantage of
   the relaxed elements and still be able to validate against the DTD
   with xml tools can simply add the following two elements to their
   profile :

   	<!ENTITY % profile "INCLUDE">
	<!ENTITY % manifest "IGNORE">

   This will switch default values added to the DTD so that the
   relaxed elements will be used.

3. Interface Table
	service_bundle.dtd.1		Committed

	Binding is 


5. Additional Materials

	man page diffs :
--- smf5.orig   Fri Jun  4 10:01:54 2010
+++ smf5.new    Mon Jun 14 14:45:55 2010
@@ -439,11 +439,17 @@
 
                   Profiles can also contain configuration  values
                   for  properties in services and instances. Tem-
                   plate elements cannot be defined in a profile.
 
+                 Profiles can use a relaxed set of elements from
+                 the DTD described in service_bundle(4).  To use
+                 these the DOCTYPE entry should have the following
+                 definitions added :
 
+                       <!ENTITY % profile "INCLUDE">
+                       <!ENTITY % manifest "IGNORE">
 
      Service bundles can be imported or exported from  a  reposi-
      tory using the svccfg(1M) command. See service_bundle(4) for
      a description of the service bundle file format with  guide-
      lines for authoring service bundles.

--- svccfg1m.orig       Fri Jun  4 10:12:19 2010
+++ svccfg1m.new        Mon Jun 14 14:45:09 2010
@@ -161,11 +161,28 @@
          modified in the SMF repository. Not-yet-existent proper-
          ties  and  property  groups will be created. The type of
          the pre-existing property groups will not be changed  by
          the  profile. Existing properties (as distinguished from
          property groups) can have their type changed by the pro-
-         file.  Nonexistent  services  and instances are ignored.
+         file. 
+        
+        If the type attribute of a property or property group
+        is unspecified an attempt will be made to determine the
+        type from existing type settings or from the service
+        template.  If a type cannot be determined a warning will
+        be presented and the service will be skipped so
+        inconsistent data will not be introduced into a service
+        and instance.  Nonexistent services and instances are
+        ignored.
+
+        In order to use the relaxed element definitions in a
+        profile the following definitions need to be added to
+        the DOCTYPE entry :
+
+               <!ENTITY % profile "INCLUDE">
+               <!ENTITY % manifest "IGNORE">
+
          Services and instances modified by the profile  will  be
          refreshed.  If -n is specified, the profile is processed
          and no changes are applied to the  SMF  repository.  Any
          syntax  error  found  will  be reported on stderr and an
          exit code of 1  will  be  returned.  See  smf(5)  for  a



	service_bundle.dtd.1 diffs :
     A series of service bundles may be composed via the xi:include tag.
     smf(5) tools enforce that all bundles be of the same type.
 -->
+
+<!--
+     These entities are used for the property, propval and property_group
+     elements, that require type attributes for manifest, while for profiles
+     the type attributes are only implied.
+-->
+
+<!ENTITY % profile "IGNORE">
+<!ENTITY % manifest "INCLUDE">
+
 <!ELEMENT xi:include
   (xi:fallback)
   >
 <!ATTLIST xi:include
   href CDATA #REQUIRED
@@ -194,10 +203,11 @@
 
         override These values should replace values already in the
                 repository.
 -->
 
+<![%profile;[
 <!ELEMENT property
         ( count_list | integer_list | opaque_list | host_list | hostname_list |
         net_address_v4_list | net_address_v6_list | time_list |
         astring_list | ustring_list | boolean_list | fmri_list |
         uri_list )? >
@@ -204,12 +214,28 @@
 
 <!ATTLIST property
         name            CDATA #REQUIRED
         type            ( count | integer | opaque | host | hostname |
                         net_address_v4 | net_address_v6 | time |
+                        astring | ustring | boolean | fmri | uri ) #IMPLIED
+        override        ( true | false ) "false" >
+]]>
+        
+<![%manifest;[
+<!ELEMENT property
+        ( count_list | integer_list | opaque_list | host_list | hostname_list |
+        net_address_v4_list | net_address_v6_list | time_list |
+        astring_list | ustring_list | boolean_list | fmri_list |
+        uri_list )? >
+
+<!ATTLIST property
+        name            CDATA #REQUIRED
+        type            ( count | integer | opaque | host | hostname |
+                        net_address_v4 | net_address_v6 | time |
                         astring | ustring | boolean | fmri | uri ) #REQUIRED
         override        ( true | false ) "false" >
+]]>
 
 <!--
    propval
 
      This element is for a singly valued property within a property
@@ -226,19 +252,33 @@
 
         override This value should replace any values already in the
                 repository.
 -->
 
+<![%profile;[
 <!ELEMENT propval EMPTY>
 
 <!ATTLIST propval
         name            CDATA #REQUIRED
         type            ( count | integer | opaque | host | hostname |
                         net_address_v4 | net_address_v6 | time | astring |
+                        ustring | boolean | fmri | uri ) #IMPLIED
+        value           CDATA #REQUIRED
+        override        ( true | false ) "false" >
+]]>
+
+<![%manifest;[
+<!ELEMENT propval EMPTY>
+
+<!ATTLIST propval
+        name            CDATA #REQUIRED
+        type            ( count | integer | opaque | host | hostname |
+                        net_address_v4 | net_address_v6 | time | astring |
                         ustring | boolean | fmri | uri ) #REQUIRED
         value           CDATA #REQUIRED
         override        ( true | false ) "false" >
+]]>
 
 <!--
   property_group
 
     This element is for a set of related properties on a service or
@@ -258,17 +298,29 @@
                 namespace conventions.
 
         delete  If in the repository, this property group should be removed.
 -->
 
+<![%profile;[
 <!ELEMENT property_group
         ( stability?, ( propval | property )* )>
 
 <!ATTLIST property_group
         name            CDATA #REQUIRED
+        type            CDATA #IMPLIED
+        delete          ( true | false ) "false" >
+]]>
+
+<![%manifest;[
+<!ELEMENT property_group
+        ( stability?, ( propval | property )* )>
+
+<!ATTLIST property_group
+        name            CDATA #REQUIRED
         type            CDATA #REQUIRED
         delete          ( true | false ) "false" >
+]]>
 
 <!--
   service_fmri
 
     This element defines a reference to a service FMRI (for either a

6. Resources and Schedule
    6.4. Steering Committee requested information
   	6.4.1. Consolidation C-team Name:
		ON
    6.5. ARC review type: Automatic
    6.6. ARC Exposure: open


From john.fischer@oracle.com Fri Jun 18 09:50:00 2010
Received: from sunmail6brm.central.sun.com (sunmail6brm.Central.Sun.COM [129.147.4.169])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id o5IGnxdW011949
	for <psarc-ext@sac.sfbay.sun.com>; Fri, 18 Jun 2010 09:50:00 -0700 (PDT)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by sunmail6brm.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.4) with ESMTP id o5IGnxYx012074
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Fri, 18 Jun 2010 11:49:59 -0500 (CDT)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0L4700D3BYRB7200@nwk-avmta-1.sfbay.Sun.COM> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Fri, 18 Jun 2010 09:49:59 -0700 (PDT)
Received: from sca-ea-mail-3.sun.com ([192.18.43.21])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0L47009LIYR8CJ60@nwk-avmta-1.sfbay.Sun.COM> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Fri,
 18 Jun 2010 09:49:56 -0700 (PDT)
Received: from rcsinet13.oracle.com (rcsinet13.oracle.com [148.87.113.125])
	by sca-ea-mail-3.sun.com (8.13.6+Sun/8.12.9) with ESMTP id o5IGnueH002450;
 Fri, 18 Jun 2010 16:49:56 +0000 (GMT)
Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153])
	by rcsinet13.oracle.com (Switch-3.4.2/Switch-3.4.1)
 with ESMTP id o5IGnrXF010412; Fri, 18 Jun 2010 16:49:53 +0000 (GMT)
Received: from abhmt013.oracle.com by acsmt353.oracle.com	with ESMTP id
 355885701276879756; Fri, 18 Jun 2010 09:49:16 -0700
Received: from [10.7.250.84] (/10.7.250.84)
	by default (Oracle Beehive Gateway v4.0)	with ESMTP ; Fri,
 18 Jun 2010 09:49:15 -0700
Date: Fri, 18 Jun 2010 09:49:14 -0700
From: John Fischer <john.fischer@oracle.com>
Subject: Re: Relaxed Type Requirements for SMF Profiles [PSARC/2010/222 Self
 Review]
In-reply-to: <201006180024.o5I0O28K111900@nihil.Eng.Sun.COM>
To: Liane Praza <lianep@nihil.Eng.Sun.COM>
Cc: PSARC-ext@sun.com, david.e.powell@oracle.com, sean.wilcox@oracle.com
Message-id: <4C1BA38A.6090001@oracle.com>
MIME-version: 1.0
Content-type: text/plain; charset=ISO-8859-1; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
X-Source-IP: acsmt353.oracle.com [141.146.40.153]
X-Auth-Type: Internal IP
X-CT-RefId: str=0001.0A090206.4C1BA3B3.0172:SCFMA4539814,ss=1,fgs=0
References: <201006180024.o5I0O28K111900@nihil.Eng.Sun.COM>
User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1.9) Gecko/20100524
 Lightning/1.0b1 Thunderbird/3.0.4
Status: RO
Content-Length: 8920

Sean,

This looks good (+1).  My only question is about binding.
The document states:

> 	Binding is

Thanks,

John

On 06/17/10 05:24 PM, Liane Praza wrote:
> Template Version: @(#)sac_nextcase 1.70 03/30/10 SMI
> This information is Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
> 1. Introduction
>      1.1. Project/Component Working Name:
> 	 Relaxed Type Requirements for SMF Profiles
>      1.2. Name of Document Author/Supplier:
> 	 Author:  Sean Wilcox
>      1.3  Date of This Document:
> 	17 June, 2010
> 4. Technical Description
> Sean Wilcox
> 06/17/2010
>
> 1. Summary
>     smf(5)/Greenline (PSARC 2002/547) provides the service_bundle(4)
>     XML DTD.  The required types for profiles can be relaxed in the
>     property elements when those elements already exist in the repository
>     via an imported manifest.
>
> 2. Details
>     When a property group or property already has a type in the service/
>     instance, it can be taken from what is in the repository when
>     applying a profile that would update that property group or property.
>     Which means that the type should be implied for these elements.
>
>     In order to keep the DTD validation for profiles that would like to
>     use this relaxed requirement on elements, it is necessary to define
>     the elements with implied types.  Using Condidtional DTD Entities
>     to create the different DTD elements within the DTD simplifies
>     maintenance of the DTD for smf manifests and profiles given that there
>     is so much shared data.
>
>     With this method a profile writer that wants to take advantage of
>     the relaxed elements and still be able to validate against the DTD
>     with xml tools can simply add the following two elements to their
>     profile :
>
>     	<!ENTITY % profile "INCLUDE">
> 	<!ENTITY % manifest "IGNORE">
>
>     This will switch default values added to the DTD so that the
>     relaxed elements will be used.
>
> 3. Interface Table
> 	service_bundle.dtd.1		Committed
>
> 	Binding is
>
>
> 5. Additional Materials
>
> 	man page diffs :
> --- smf5.orig   Fri Jun  4 10:01:54 2010
> +++ smf5.new    Mon Jun 14 14:45:55 2010
> @@ -439,11 +439,17 @@
>
>                     Profiles can also contain configuration  values
>                     for  properties in services and instances. Tem-
>                     plate elements cannot be defined in a profile.
>
> +                 Profiles can use a relaxed set of elements from
> +                 the DTD described in service_bundle(4).  To use
> +                 these the DOCTYPE entry should have the following
> +                 definitions added :
>
> +<!ENTITY % profile "INCLUDE">
> +<!ENTITY % manifest "IGNORE">
>
>        Service bundles can be imported or exported from  a  reposi-
>        tory using the svccfg(1M) command. See service_bundle(4) for
>        a description of the service bundle file format with  guide-
>        lines for authoring service bundles.
>
> --- svccfg1m.orig       Fri Jun  4 10:12:19 2010
> +++ svccfg1m.new        Mon Jun 14 14:45:09 2010
> @@ -161,11 +161,28 @@
>            modified in the SMF repository. Not-yet-existent proper-
>            ties  and  property  groups will be created. The type of
>            the pre-existing property groups will not be changed  by
>            the  profile. Existing properties (as distinguished from
>            property groups) can have their type changed by the pro-
> -         file.  Nonexistent  services  and instances are ignored.
> +         file.
> +
> +        If the type attribute of a property or property group
> +        is unspecified an attempt will be made to determine the
> +        type from existing type settings or from the service
> +        template.  If a type cannot be determined a warning will
> +        be presented and the service will be skipped so
> +        inconsistent data will not be introduced into a service
> +        and instance.  Nonexistent services and instances are
> +        ignored.
> +
> +        In order to use the relaxed element definitions in a
> +        profile the following definitions need to be added to
> +        the DOCTYPE entry :
> +
> +<!ENTITY % profile "INCLUDE">
> +<!ENTITY % manifest "IGNORE">
> +
>            Services and instances modified by the profile  will  be
>            refreshed.  If -n is specified, the profile is processed
>            and no changes are applied to the  SMF  repository.  Any
>            syntax  error  found  will  be reported on stderr and an
>            exit code of 1  will  be  returned.  See  smf(5)  for  a
>
>
>
> 	service_bundle.dtd.1 diffs :
>       A series of service bundles may be composed via the xi:include tag.
>       smf(5) tools enforce that all bundles be of the same type.
>   -->
> +
> +<!--
> +     These entities are used for the property, propval and property_group
> +     elements, that require type attributes for manifest, while for profiles
> +     the type attributes are only implied.
> +-->
> +
> +<!ENTITY % profile "IGNORE">
> +<!ENTITY % manifest "INCLUDE">
> +
>   <!ELEMENT xi:include
>     (xi:fallback)
>     >
>   <!ATTLIST xi:include
>     href CDATA #REQUIRED
> @@ -194,10 +203,11 @@
>
>           override These values should replace values already in the
>                   repository.
>   -->
>
> +<![%profile;[
>   <!ELEMENT property
>           ( count_list | integer_list | opaque_list | host_list | hostname_list |
>           net_address_v4_list | net_address_v6_list | time_list |
>           astring_list | ustring_list | boolean_list | fmri_list |
>           uri_list )?>
> @@ -204,12 +214,28 @@
>
>   <!ATTLIST property
>           name            CDATA #REQUIRED
>           type            ( count | integer | opaque | host | hostname |
>                           net_address_v4 | net_address_v6 | time |
> +                        astring | ustring | boolean | fmri | uri ) #IMPLIED
> +        override        ( true | false ) "false">
> +]]>
> +
> +<![%manifest;[
> +<!ELEMENT property
> +        ( count_list | integer_list | opaque_list | host_list | hostname_list |
> +        net_address_v4_list | net_address_v6_list | time_list |
> +        astring_list | ustring_list | boolean_list | fmri_list |
> +        uri_list )?>
> +
> +<!ATTLIST property
> +        name            CDATA #REQUIRED
> +        type            ( count | integer | opaque | host | hostname |
> +                        net_address_v4 | net_address_v6 | time |
>                           astring | ustring | boolean | fmri | uri ) #REQUIRED
>           override        ( true | false ) "false">
> +]]>
>
>   <!--
>      propval
>
>        This element is for a singly valued property within a property
> @@ -226,19 +252,33 @@
>
>           override This value should replace any values already in the
>                   repository.
>   -->
>
> +<![%profile;[
>   <!ELEMENT propval EMPTY>
>
>   <!ATTLIST propval
>           name            CDATA #REQUIRED
>           type            ( count | integer | opaque | host | hostname |
>                           net_address_v4 | net_address_v6 | time | astring |
> +                        ustring | boolean | fmri | uri ) #IMPLIED
> +        value           CDATA #REQUIRED
> +        override        ( true | false ) "false">
> +]]>
> +
> +<![%manifest;[
> +<!ELEMENT propval EMPTY>
> +
> +<!ATTLIST propval
> +        name            CDATA #REQUIRED
> +        type            ( count | integer | opaque | host | hostname |
> +                        net_address_v4 | net_address_v6 | time | astring |
>                           ustring | boolean | fmri | uri ) #REQUIRED
>           value           CDATA #REQUIRED
>           override        ( true | false ) "false">
> +]]>
>
>   <!--
>     property_group
>
>       This element is for a set of related properties on a service or
> @@ -258,17 +298,29 @@
>                   namespace conventions.
>
>           delete  If in the repository, this property group should be removed.
>   -->
>
> +<![%profile;[
>   <!ELEMENT property_group
>           ( stability?, ( propval | property )* )>
>
>   <!ATTLIST property_group
>           name            CDATA #REQUIRED
> +        type            CDATA #IMPLIED
> +        delete          ( true | false ) "false">
> +]]>
> +
> +<![%manifest;[
> +<!ELEMENT property_group
> +        ( stability?, ( propval | property )* )>
> +
> +<!ATTLIST property_group
> +        name            CDATA #REQUIRED
>           type            CDATA #REQUIRED
>           delete          ( true | false ) "false">
> +]]>
>
>   <!--
>     service_fmri
>
>       This element defines a reference to a service FMRI (for either a
>
> 6. Resources and Schedule
>      6.4. Steering Committee requested information
>     	6.4.1. Consolidation C-team Name:
> 		ON
>      6.5. ARC review type: Automatic
>      6.6. ARC Exposure: open
>
>    


From sean.wilcox@oracle.com Fri Jun 18 09:57:24 2010
Received: from sunmail2sca.sfbay.sun.com (sunmail2sca.SFBay.Sun.COM [129.145.155.234])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id o5IGvOmr012322
	for <psarc-ext@sac.sfbay.sun.com>; Fri, 18 Jun 2010 09:57:24 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail2sca.sfbay.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.4) with ESMTP id o5IGvKOg028929
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Fri, 18 Jun 2010 09:57:23 -0700 (PDT)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0L4700715Z3LNH00@nwk-avmta-2.sfbay.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Fri, 18 Jun 2010 09:57:22 -0700 (PDT)
Received: from sca-ea-mail-1.sun.com ([192.18.43.24])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0L47005Z3Z3KV5D0@nwk-avmta-2.sfbay.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Fri,
 18 Jun 2010 09:57:20 -0700 (PDT)
Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117])
	by sca-ea-mail-1.sun.com (8.13.7+Sun/8.12.9) with ESMTP id o5IGvElV023467;
 Fri, 18 Jun 2010 16:57:14 +0000 (GMT)
Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153])
	by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1)
 with ESMTP id o5IGvCCd009004; Fri, 18 Jun 2010 16:57:12 +0000 (GMT)
Received: from abhmt009.oracle.com by acsmt354.oracle.com	with ESMTP id
 339332931276880223; Fri, 18 Jun 2010 09:57:03 -0700
Received: from [172.20.24.127] (/10.85.24.127)
	by default (Oracle Beehive Gateway v4.0)	with ESMTP ; Fri,
 18 Jun 2010 09:57:02 -0700
Date: Fri, 18 Jun 2010 10:57:02 -0600
From: Sean Wilcox <sean.wilcox@oracle.com>
Subject: Re: Relaxed Type Requirements for SMF Profiles [PSARC/2010/222 Self
 Review]
In-reply-to: <4C1BA38A.6090001@oracle.com>
To: John Fischer <john.fischer@oracle.com>
Cc: Liane Praza <lianep@nihil.Eng.Sun.COM>, PSARC-ext@sun.com,
        david.e.powell@oracle.com
Message-id: <4C1BA55E.40104@oracle.com>
MIME-version: 1.0
Content-type: text/plain; charset=ISO-8859-1; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
X-Source-IP: acsmt353.oracle.com [141.146.40.153]
X-Auth-Type: Internal IP
X-CT-RefId: str=0001.0A090202.4C1BA569.022B:SCFMA4539814,ss=1,fgs=0
References: <201006180024.o5I0O28K111900@nihil.Eng.Sun.COM>
 <4C1BA38A.6090001@oracle.com>
User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1.9) Gecko/20100510
 Lightning/1.0b1 Thunderbird/3.0.4
Status: RO
Content-Length: 9392

It was :
     Binding is Patch, though no current plans to backport exist.


On 06/18/10 10:49 AM, John Fischer wrote:
> Sean,
>
> This looks good (+1).  My only question is about binding.
> The document states:
>
>>     Binding is
>
> Thanks,
>
> John
>
> On 06/17/10 05:24 PM, Liane Praza wrote:
>> Template Version: @(#)sac_nextcase 1.70 03/30/10 SMI
>> This information is Copyright (c) 2010, Oracle and/or its affiliates. 
>> All rights reserved.
>> 1. Introduction
>>      1.1. Project/Component Working Name:
>>      Relaxed Type Requirements for SMF Profiles
>>      1.2. Name of Document Author/Supplier:
>>      Author:  Sean Wilcox
>>      1.3  Date of This Document:
>>     17 June, 2010
>> 4. Technical Description
>> Sean Wilcox
>> 06/17/2010
>>
>> 1. Summary
>>     smf(5)/Greenline (PSARC 2002/547) provides the service_bundle(4)
>>     XML DTD.  The required types for profiles can be relaxed in the
>>     property elements when those elements already exist in the 
>> repository
>>     via an imported manifest.
>>
>> 2. Details
>>     When a property group or property already has a type in the service/
>>     instance, it can be taken from what is in the repository when
>>     applying a profile that would update that property group or 
>> property.
>>     Which means that the type should be implied for these elements.
>>
>>     In order to keep the DTD validation for profiles that would like to
>>     use this relaxed requirement on elements, it is necessary to define
>>     the elements with implied types.  Using Condidtional DTD Entities
>>     to create the different DTD elements within the DTD simplifies
>>     maintenance of the DTD for smf manifests and profiles given that 
>> there
>>     is so much shared data.
>>
>>     With this method a profile writer that wants to take advantage of
>>     the relaxed elements and still be able to validate against the DTD
>>     with xml tools can simply add the following two elements to their
>>     profile :
>>
>> <!ENTITY % profile "INCLUDE">
>> <!ENTITY % manifest "IGNORE">
>>
>>     This will switch default values added to the DTD so that the
>>     relaxed elements will be used.
>>
>> 3. Interface Table
>>     service_bundle.dtd.1        Committed
>>
>>     Binding is
>>
>>
>> 5. Additional Materials
>>
>>     man page diffs :
>> --- smf5.orig   Fri Jun  4 10:01:54 2010
>> +++ smf5.new    Mon Jun 14 14:45:55 2010
>> @@ -439,11 +439,17 @@
>>
>>                     Profiles can also contain configuration  values
>>                     for  properties in services and instances. Tem-
>>                     plate elements cannot be defined in a profile.
>>
>> +                 Profiles can use a relaxed set of elements from
>> +                 the DTD described in service_bundle(4).  To use
>> +                 these the DOCTYPE entry should have the following
>> +                 definitions added :
>>
>> +<!ENTITY % profile "INCLUDE">
>> +<!ENTITY % manifest "IGNORE">
>>
>>        Service bundles can be imported or exported from  a  reposi-
>>        tory using the svccfg(1M) command. See service_bundle(4) for
>>        a description of the service bundle file format with  guide-
>>        lines for authoring service bundles.
>>
>> --- svccfg1m.orig       Fri Jun  4 10:12:19 2010
>> +++ svccfg1m.new        Mon Jun 14 14:45:09 2010
>> @@ -161,11 +161,28 @@
>>            modified in the SMF repository. Not-yet-existent proper-
>>            ties  and  property  groups will be created. The type of
>>            the pre-existing property groups will not be changed  by
>>            the  profile. Existing properties (as distinguished from
>>            property groups) can have their type changed by the pro-
>> -         file.  Nonexistent  services  and instances are ignored.
>> +         file.
>> +
>> +        If the type attribute of a property or property group
>> +        is unspecified an attempt will be made to determine the
>> +        type from existing type settings or from the service
>> +        template.  If a type cannot be determined a warning will
>> +        be presented and the service will be skipped so
>> +        inconsistent data will not be introduced into a service
>> +        and instance.  Nonexistent services and instances are
>> +        ignored.
>> +
>> +        In order to use the relaxed element definitions in a
>> +        profile the following definitions need to be added to
>> +        the DOCTYPE entry :
>> +
>> +<!ENTITY % profile "INCLUDE">
>> +<!ENTITY % manifest "IGNORE">
>> +
>>            Services and instances modified by the profile  will  be
>>            refreshed.  If -n is specified, the profile is processed
>>            and no changes are applied to the  SMF  repository.  Any
>>            syntax  error  found  will  be reported on stderr and an
>>            exit code of 1  will  be  returned.  See  smf(5)  for  a
>>
>>
>>
>>     service_bundle.dtd.1 diffs :
>>       A series of service bundles may be composed via the xi:include 
>> tag.
>>       smf(5) tools enforce that all bundles be of the same type.
>>   -->
>> +
>> +<!--
>> +     These entities are used for the property, propval and 
>> property_group
>> +     elements, that require type attributes for manifest, while for 
>> profiles
>> +     the type attributes are only implied.
>> +-->
>> +
>> +<!ENTITY % profile "IGNORE">
>> +<!ENTITY % manifest "INCLUDE">
>> +
>> <!ELEMENT xi:include
>>     (xi:fallback)
>> >
>> <!ATTLIST xi:include
>>     href CDATA #REQUIRED
>> @@ -194,10 +203,11 @@
>>
>>           override These values should replace values already in the
>>                   repository.
>>   -->
>>
>> +<![%profile;[
>> <!ELEMENT property
>>           ( count_list | integer_list | opaque_list | host_list | 
>> hostname_list |
>>           net_address_v4_list | net_address_v6_list | time_list |
>>           astring_list | ustring_list | boolean_list | fmri_list |
>>           uri_list )?>
>> @@ -204,12 +214,28 @@
>>
>> <!ATTLIST property
>>           name            CDATA #REQUIRED
>>           type            ( count | integer | opaque | host | hostname |
>>                           net_address_v4 | net_address_v6 | time |
>> +                        astring | ustring | boolean | fmri | uri ) 
>> #IMPLIED
>> +        override        ( true | false ) "false">
>> +]]>
>> +
>> +<![%manifest;[
>> +<!ELEMENT property
>> +        ( count_list | integer_list | opaque_list | host_list | 
>> hostname_list |
>> +        net_address_v4_list | net_address_v6_list | time_list |
>> +        astring_list | ustring_list | boolean_list | fmri_list |
>> +        uri_list )?>
>> +
>> +<!ATTLIST property
>> +        name            CDATA #REQUIRED
>> +        type            ( count | integer | opaque | host | hostname |
>> +                        net_address_v4 | net_address_v6 | time |
>>                           astring | ustring | boolean | fmri | uri ) 
>> #REQUIRED
>>           override        ( true | false ) "false">
>> +]]>
>>
>> <!--
>>      propval
>>
>>        This element is for a singly valued property within a property
>> @@ -226,19 +252,33 @@
>>
>>           override This value should replace any values already in the
>>                   repository.
>>   -->
>>
>> +<![%profile;[
>> <!ELEMENT propval EMPTY>
>>
>> <!ATTLIST propval
>>           name            CDATA #REQUIRED
>>           type            ( count | integer | opaque | host | hostname |
>>                           net_address_v4 | net_address_v6 | time | 
>> astring |
>> +                        ustring | boolean | fmri | uri ) #IMPLIED
>> +        value           CDATA #REQUIRED
>> +        override        ( true | false ) "false">
>> +]]>
>> +
>> +<![%manifest;[
>> +<!ELEMENT propval EMPTY>
>> +
>> +<!ATTLIST propval
>> +        name            CDATA #REQUIRED
>> +        type            ( count | integer | opaque | host | hostname |
>> +                        net_address_v4 | net_address_v6 | time | 
>> astring |
>>                           ustring | boolean | fmri | uri ) #REQUIRED
>>           value           CDATA #REQUIRED
>>           override        ( true | false ) "false">
>> +]]>
>>
>> <!--
>>     property_group
>>
>>       This element is for a set of related properties on a service or
>> @@ -258,17 +298,29 @@
>>                   namespace conventions.
>>
>>           delete  If in the repository, this property group should be 
>> removed.
>>   -->
>>
>> +<![%profile;[
>> <!ELEMENT property_group
>>           ( stability?, ( propval | property )* )>
>>
>> <!ATTLIST property_group
>>           name            CDATA #REQUIRED
>> +        type            CDATA #IMPLIED
>> +        delete          ( true | false ) "false">
>> +]]>
>> +
>> +<![%manifest;[
>> +<!ELEMENT property_group
>> +        ( stability?, ( propval | property )* )>
>> +
>> +<!ATTLIST property_group
>> +        name            CDATA #REQUIRED
>>           type            CDATA #REQUIRED
>>           delete          ( true | false ) "false">
>> +]]>
>>
>> <!--
>>     service_fmri
>>
>>       This element defines a reference to a service FMRI (for either a
>>
>> 6. Resources and Schedule
>>      6.4. Steering Committee requested information
>>         6.4.1. Consolidation C-team Name:
>>         ON
>>      6.5. ARC review type: Automatic
>>      6.6. ARC Exposure: open
>>
>


-- 
Sean Wilcox
3032729711
x79711


