Menu

#801 IMM: Canonicalize attributes presented by OiCcbObjectModifyCallback

5.0.FC
fixed
None
enhancement
imm
nd
4.5
major
2016-02-05
2014-02-28
No

For OIs or appliers receiving ccb-callbacks, the handling of the modify-callback
can be particularly complex. This is due to the modify callback being defined
by SAF as faithfully presenting the same parameters as the originating om-client
parameters provided over the om-api.

The ccbObjectModify operation allows for modifications expressed as changes
relative to the current state of attributes. This is of course acted on by
the imm-server resulting in an after-image for the modified object.

The callback to the oi or applier is currently of the same form, in general
requiring the oi/applier to (a) know the current state of the attributes of
the object or do an for appliers unsafe read and (b) to correctly compute
the transformation as defined by the imm-spec. Particularly the later is
asking quite a lot for the average oi/applier implementer.

Only for the "special applier" (see IMMSV README) is the modify callback
currently canonicalized to contain simply the replacement values, i.e. the
after operation image.

To simplify the task for oi's and appliers in handling modify callbacks,
we suggest that the modify-callback instead provides the after-modify-
operation-image of the attributes.

Note that this change is a fully backwards compatible change, because the
new callback format contaning just the replacement value resulting from the
operation must be logically equivalent to the set of all before-image and
operation variants resulting in this replacement value.

The only complication I can think of here is a potential performance issue
in pushing values to the callback that are actually unchanged. This is why
I think it is better that the main OI still gets only the replacement value
for attributes that actually have changed, or to be precise, where actually
operated on.

New ticket has been created for sending all writable values to the callback for appliers [1651]

Related

Tickets: #1651
Tickets: #1680
Tickets: #801
Wiki: ChangeLog-5.0.0
Wiki: NEWS-5.0.0

Discussion

  • Hung Nguyen

    Hung Nguyen - 2015-10-08
    • status: unassigned --> accepted
    • assigned_to: Anders Bjornerstedt --> Hung Nguyen
    • Milestone: future --> 5.0
     
  • Hung Nguyen

    Hung Nguyen - 2015-10-09
    • status: accepted --> review
     
  • Hung Nguyen

    Hung Nguyen - 2015-12-08
    • status: review --> accepted
     
  • Hung Nguyen

    Hung Nguyen - 2015-12-14
    • status: accepted --> review
     
  • Hung Nguyen

    Hung Nguyen - 2015-12-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -21,10 +21,6 @@
     we suggest that the modify-callback instead provides the after-modify-
     operation-image of the attributes. 
    
    -For regular OIs I suggest that only the values of the attributes actually
    -modified by this modify operation will be provided. For appliers the after
    -image of all writable attributes will be provided. 
    -
     Note that this change is a fully backwards compatible change, because the
     new callback format contaning just the replacement value resulting from the
     operation must be logically equivalent to the set of all before-image and
    @@ -35,3 +31,5 @@
     I think it is better that the main OI still gets only the replacement value
     for attributes that actually have changed, or to be precise, where actually
     operated on. 
    +
    +New ticket has been created for sending all writable values to the callback for appliers [1651]
    
     
  • Hung Nguyen

    Hung Nguyen - 2016-02-05
    • status: review --> fixed
     
  • Hung Nguyen

    Hung Nguyen - 2016-02-05

    default (5.0)
    changeset: 7277:0ef28b60edf5 [0ef28b]
    user: Hung Nguyen hung.d.nguyen@dektech.com.au
    date: Wed Dec 23 16:07:48 2015 +0700
    summary: imm: Canonicalize attributes presented by OiCcbObjectModifyCallback [#801]

     

    Related

    Commit: [0ef28b]
    Tickets: #801


Log in to post a comment.