I'm submitting this case on behalf of Alan Maguire. We're submitting
this as self-reviewed as we believe the change is obvious and it has
received review and discussion through the SMF community. The binding
is Patch as no incompatible changes are introduced (though there are no
current backport plans), and the interfaces remain Committed.
If there are concerns, please let us know.
liane
---
Template Version: @(#)onepager.txt 1.35 07/11/07 SMI
Copyright 2007 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
SMF property value ordering
1.2. Name of Document Author/Supplier:
Alan Maguire
1.3. Date of This Document:
07/07/08
4. Technical Description:
4.1. Details:
Proposed is an SMF interface change associated with the fix for
"6715372 SMF repository should store (and allow retrieval of) property
values in the order they were added"
Prior to this, SMF made no commitments with regard to ordering of
multiple values associated with properties. Addressing this RFE will
change interface behaviour such that SMF tools will store and retrieve
such values in the order in which they were added, whether via SMF
manifest import or property value modification via svccfg/libscf.
This will be achieved by upgrading the SMF repository schema to
store additional value ordering information.
Preserving value ordering in this manner means that the current
workaround for order-sensitive multi-valued properties - place them
all in a single string value with a value delimiter separating
individual values - is no longer needed.
4.2. Bug/RFE Number(s):
6715372 SMF repository should store (and allow retrieval of) property
values in the order they were added
4.3. In Scope:
Upgrade of repository format and associated svc* tools to honour value
ordering.
4.5. Interfaces:
All interfaces which deal with SMF property values are modified, since
their previous behaviour with respect to value ordering was unspecified.
Now svccfg (1M), scf_entry_add_value (3SCF) and
scf_iter_property_values(3SCF) respect the value ordering specified by
the interface user.
No new interfaces are imported or exported. Interface stability will
be Committed.
4.6. Doc Impact:
svccfg(1M) diffs:
...
addpropvalue pg/name [type:] value
Adds the given value to a property. If type is given and
the property exists, then if type does not agree with
the property's type, the subcommand fails. The values
may be enclosed in double-quotes. String values con-
taining double-quotes or backslashes must be enclosed by
double-quotes and the contained double-quotes and
backslashes must be quoted by backslashes. Nonexistent
properties are created, in which case the type specifier
must be present. See scf_value_create(3SCF) for a list
of available property types. See smf_security(5) for the
- privileges required to modify properties.
+ privileges required to modify properties. The new value
+ will be appended to the end of the list of property values
+ associated with the property.
...
setprop pg/name = [type:] value
setprop pg/name = [type:] ([values ...])
Sets the name property of the pg property group of the
current selection to the given values of type type. See
scf_value_create(3SCF) for a list of available property
types. If the property already exists and the type
disagrees with the existing type on the property, the
subcommand fails. Values may be enclosed in double-
quotes. String values which contain double-quotes or
backslashes must be enclosed by double-quotes and the
contained double-quotes and backslashes must be quoted
by backslashes. If the named property does not exist, it
is created, as long as the type is specified. See
smf_security(5) for the privileges required to create or
- modify properties.
+ modify properties. Multiple values will be stored in the order in
+ which they are specified.
scf_entry_create(3SCF) diffs:
DESCRIPTION
The scf_entry_create() function allocates a new transaction
entry handle. The scf_entry_destroy() function destroys the
transaction entry handle.
The scf_entry_handle() function retrieves the handle associ-
ated with entry.
A transaction entry represents a single action on a property
in a property group. If an entry is added to a transaction
using scf_transaction_property_new(3SCF),
scf_transaction_property_change(3SCF), or
scf_transaction_property_change_type(3SCF),
scf_entry_add_value() can be called zero or more times to
set up the set of values for that property. Each value must
be set and of a compatible type to the type associated with
the entry. When later retrieved from the property, the
- values will have the type of the entry.
+ values will have the type of the entry. If the values are committed
+ successfully via scf_transacton_commit(3SCF), they will
+ be set in the order in which they were added via
+ scf_entry_add_value().
scf_iter_create(3SCF):
DESCRIPTION
The scf_iter_create() function creates a new iterator asso-
ciated with handle. The scf_iter_destroy() function destroys
an iteration.
The scf_iter_reset() function releases any resources
involved with an active iteration and returns the iterator
to its initial state.
The scf_iter_handle_scopes(), scf_iter_scope_services(),
scf_iter_service_instances(), scf_iter_instance_snapshots(),
scf_iter_service_pgs(), scf_iter_instance_pgs(),
scf_iter_snaplevel_pgs(), scf_iter_pg_properties(), and
scf_iter_property_values() functions set up a new iteration
- of all the children of parent of a particular type.
+ of all the children of parent of a particular type.
+ scf_iter_property_values() + will iterate over values in the order
+ in which they were specified via scf_entry_add_value(3SCF).
4.7. Admin/Config Impact:
Users of SMF will be able to set/retrieve property values in a definite
order.
5. Reference Documents:
Design discussion at:
http://www.opensolaris.org/jive/thread.jspa?threadID=63250&tstart=15
6. Resources and Schedule:
6.1. Projected Availability:
Immediate
6.2. Cost of Effort:
N/A
6.3. Cost of Capital Resources:
N/A
6.4. Product Approval Committee requested information:
6.4.1. Consolidation or Component Name:
ON
6.4.3. Type of CPT Review and Approval expected:
Self-review
6.4.7. Target RTI Date/Release:
SNV100
6.4.8. Target Code Design Review Date:
Done
6.4.9. Update approval addition:
No
6.5. ARC review type:
SelfReview
6.6. ARC Exposure:
open