Hi Zoran.
Server side patch looks much better :-)
I still have some detail comments though.
Not all of them in this mail, but just to let you process some of them 
in parallel with me and Neel continuing
the review, I send you these comments now.

1) Please make sure that the commit slogan for these change-sets are 
prefixed with 'IMM: ' or 'IMMTOOLS:'.
Also skip starting the slogan proper with a redundant 'IMM':
Example:
   IMM: IMM service implementation of NO_DANGLING flag [#49]
should be:
   IMM: Service implementation of NO_DANGLING flag [#49]

It looks almost correct in the review request mail message subject line.
But the patch slogan is sometimes incorrect.
The patch slogan is the more important since it will become part of the 
changset history.
---------------------------------------------------------------------------

2) I think you should inline ImmAttrMultiValue::getNextAttrValue()
same way as   ImmAttrValue::empty() const is inline in the .hh file.

   ImmAttrMultiValue* getNextAttrValue() const {return mNext;}

This call is used in iterating through a multi-values so its lilely to 
be in tight loops.
------------------------------------------------------
3) I think we should rename sReverseRefObjectMMap to 
sReverseNoDanglingObjectMMap

Please also move down the comment explaining this data-structure to be 
below the structure,
not before it. This seems to be the dominating convention in this file 
and since this comment
appears directly between two data-structures, it becomes unclear which 
one is referred to.
The alternative is to have a blank line before the comment and after the 
data-structure so that
both become associated by proximity to each other and separation from 
the rest.
-----------------------------------------------------------------------------------------
4) We need to allow NO_DANGLING on RDN attributes.
I suggest we fix this as a separate defect ticket. So in class-create we 
need to remove the check
that ends up with:
    LOG_NO("ERR_INVALID_PARAM: RDN '%s' cannot have NO_DANGLING flag",

The reason NO_DANGLING should be allowed on RDN attributes of CONFIG 
objects is
to make referential integrity checking possible for association objects.
The other checks are correct though.
Runtime objects cannot have no-dangling and attribute type must be SaNameT.
In the next OpensAF release we will hopefully be moving away from 
SaNameT, replacing it with
SaStringT as the physical type, plus a new IMM_ATTR flag to indicate 
that the value is a DN.
When/if that happens, the no-dangling class-create checks need to be 
updated to accept that new
kind of "reference" declaration.
------------------------------------------------------------------------------------------
5) In ImmModel::notCompatibleAtt

In the loop specific for no-dangling chjecks, you iterate through the 
extent of a class and for each
object this if statement is executed:
                ImmAttrValueMap::iterator avmi = 
(*osi)->mAttrValueMap.find(attName);
                if(avmi == (*osi)->mAttrValueMap.end())
                    continue;

It makes no sense to continue the iteration here. I would suggest 
instead an osafassert.
If anattribute exists in a class then in the OpensAF implementation of 
the IMM this means
that *all* instances of that class have the attribute defined. Now this 
is an upgrade, so
we need to be wary of the case whn an attribute is added in a new class 
version.
But this wntire section of code is guarded by
        /* "changedAttrs != NULL" ensures that this check is only for 
the schema update */
So we know that the attribute exists in both new and old version.
So replace the if statetement with:

    osafassert(avmi != (*osi)->mAttrValueMap.end());
------------------------------------------------------------------------------------
6) In ImmModel::notCompatibleAtt
This syslog warning:

            LOG_WA("Object has a NO_DANGLING reference to a non-existing 
object");

I think should rather say:

             LOG_WA("Object %s attribute %s has a reference to a 
non-existing object %s "
                               "schema change to add NO_DANGLING not 
possible", .....);

------------------------------------------------------------------------------------------------------
7) Still in notCompatibleAtt
This syslog warning:

             LOG_WA("Object cannot have a NO_DANGLING reference to a 
non-persistent runtime object");

should provide a bit more info:

             LOG_WA("Object %u  attribute %s has a  reference to a 
non-persistent runtime object %s "
                               "schema change to add NO_DANGLING not 
possible", .....);
-----------------------------------------------------------------------------------------------------------
8) Stil in notCompatibleAtt
This syslog warning:
                            LOG_WA("CCB operation on NO_DANGLING 
reference is not finished");

Should provide more info:

                            LOG_WA("CCB in progress operating on object 
%s attribute % referenced by object %s being upgraded "
                               "schema change to add NO_DANGLING not 
possible", .....);
-------------------------------------------------------------------------------

Zoran,  I am not finished yet, but I will let you process these comments 
for now.

/AndersBj



Zoran Milinkovic wrote:
> Summary: IMM: Implementation of NO_DANGLING flag [#49]
> Review request for Trac Ticket(s): 49
> Peer Reviewer(s): Neelakanta, Anders
> Pull request to: Zoran
> Affected branch(es): default(4.4)
> Development branch: default(4.4)
>
> --------------------------------
> Impacted area       Impact y/n
> --------------------------------
>  Docs                    n
>  Build system            n
>  RPM/packaging           n
>  Configuration files     n
>  Startup scripts         n
>  SAF services            y
>  OpenSAF services        n
>  Core libraries          n
>  Samples                 n
>  Tests                   n
>  Other                   n
>
>
> Comments (indicate scope for each "y" above):
> ---------------------------------------------
>
> changeset 262748c382d21cb6ec391e1b1fcf4a8a1e6256ae
> Author:       Zoran Milinkovic <zoran.milinko...@ericsson.com>
> Date: Thu, 05 Dec 2013 15:56:17 +0100
>
>       IMM: API support for NO_DANGLING flag [#49]
>
>       IMM API support for reference integrity (NO_DANGLING flag)
>
> changeset 121f26d8504c86c63643c03bb81840460e66a69b
> Author:       Zoran Milinkovic <zoran.milinko...@ericsson.com>
> Date: Thu, 05 Dec 2013 15:57:11 +0100
>
>       IMM: IMM service implementation of NO_DANGLING flag [#49]
>
>       Implementation of reference integrity (NO_DANGLING flag) to IMMSV
>
> changeset 68c4e3d7d6b3c3a501c20903fc63d9ba8a125420
> Author:       Zoran Milinkovic <zoran.milinko...@ericsson.com>
> Date: Thu, 05 Dec 2013 15:58:25 +0100
>
>       IMMTOOLS: Add support of NO_DANGLING flag to IMM tools [#49]
>
>       Support reference integrity (NO_DANGLING flag) to IMM tools
>
>
> Added Files:
> ------------
>  osaf/libs/saf/include/saImmOm_A_2_13.h
>  osaf/services/saf/immsv/schema/SAI-AIS-IMM-XSD-A.02.13.xsd
>
>
> Complete diffstat:
> ------------------
>  osaf/libs/agents/saf/imma/imma_om_api.c                    |   36 ++++-
>  osaf/libs/common/immsv/include/immpbe_dump.hh              |    2 +-
>  osaf/libs/common/immsv/include/immsv_api.h                 |    9 +
>  osaf/libs/saf/include/Makefile.am                          |    3 +-
>  osaf/libs/saf/include/saImmOm_A_2_12.h                     |    2 +
>  osaf/libs/saf/include/saImmOm_A_2_13.h                     |   60 +++++++++
>  osaf/libs/saf/libSaImm/Makefile.am                         |    2 +-
>  osaf/services/saf/immsv/immloadd/imm_loader.cc             |    8 +-
>  osaf/services/saf/immsv/immloadd/imm_pbe_load.cc           |    2 +-
>  osaf/services/saf/immsv/immnd/ImmAttrValue.cc              |    6 +
>  osaf/services/saf/immsv/immnd/ImmAttrValue.hh              |    2 +
>  osaf/services/saf/immsv/immnd/ImmModel.cc                  |  950 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
>  osaf/services/saf/immsv/immnd/ImmModel.hh                  |   37 +++++-
>  osaf/services/saf/immsv/schema/SAI-AIS-IMM-XSD-A.02.13.xsd |  180 
> +++++++++++++++++++++++++++
>  osaf/tools/safimm/immcfg/imm_import.cc                     |    2 +
>  osaf/tools/safimm/immdump/imm_xmlw_dump.cc                 |    9 +
>  osaf/tools/safimm/immlist/imm_list.c                       |    3 +
>  17 files changed, 1231 insertions(+), 82 deletions(-)
>
>
> Testing Commands:
> -----------------
>
>
> Testing, Expected Results:
> --------------------------
> The patches need to support:
> - immload support for NO_DANGLING flag
> - immdump support for NO_DANGLING flag
> - immcfg support for NO_DANGLING flag (immcfg -f)
> - immlist support for NO_DANGLING flag (NO_DANGLING flag is listed)
> - IMM library support for NO_DANGLING (classCreate - basic checks)
> - schema update (adding and removing NO_DANGLING flag)
> - default values
> - create object (NO_DANGLING attributes with and without values)
> - modify object (add, replace and delete)
> - delete object
> - CCB apply
> - CCB abort/terminate
> - support for missing objects, created later within the same CCB
>
>
> Conditions of Submission:
> -------------------------
> Ack from Neelakanta and Anders
>
>
> Arch      Built     Started    Linux distro
> -------------------------------------------
> mips        n          n
> mips64      n          n
> x86         n          n
> x86_64      n          n
> powerpc     n          n
> powerpc64   n          n
>
>
> Reviewer Checklist:
> -------------------
> [Submitters: make sure that your review doesn't trigger any checkmarks!]
>
>
> Your checkin has not passed review because (see checked entries):
>
> ___ Your RR template is generally incomplete; it has too many blank entries
>     that need proper data filled in.
>
> ___ You have failed to nominate the proper persons for review and push.
>
> ___ Your patches do not have proper short+long header
>
> ___ You have grammar/spelling in your header that is unacceptable.
>
> ___ You have exceeded a sensible line length in your headers/comments/text.
>
> ___ You have failed to put in a proper Trac Ticket # into your commits.
>
> ___ You have incorrectly put/left internal data in your comments/files
>     (i.e. internal bug tracking tool IDs, product names etc)
>
> ___ You have not given any evidence of testing beyond basic build tests.
>     Demonstrate some level of runtime or other sanity testing.
>
> ___ You have ^M present in some of your files. These have to be removed.
>
> ___ You have needlessly changed whitespace or added whitespace crimes
>     like trailing spaces, or spaces before tabs.
>
> ___ You have mixed real technical changes with whitespace and other
>     cosmetic code cleanup changes. These have to be separate commits.
>
> ___ You need to refactor your submission into logical chunks; there is
>     too much content into a single commit.
>
> ___ You have extraneous garbage in your review (merge commits etc)
>
> ___ You have giant attachments which should never have been sent;
>     Instead you should place your content in a public tree to be pulled.
>
> ___ You have too many commits attached to an e-mail; resend as threaded
>     commits, or place in a public tree for a pull.
>
> ___ You have resent this content multiple times without a clear indication
>     of what has changed between each re-send.
>
> ___ You have failed to adequately and individually address all of the
>     comments and change requests that were proposed in the initial review.
>
> ___ You have a misconfigured ~/.hgrc file (i.e. username, email etc)
>
> ___ Your computer have a badly configured date and time; confusing the
>     the threaded patch review.
>
> ___ Your changes affect IPC mechanism, and you don't present any results
>     for in-service upgradability test.
>
> ___ Your changes affect user manual and documentation, your patch series
>     do not contain the patch that updates the Doxygen manual.
>
>
> ------------------------------------------------------------------------------
> Sponsored by Intel(R) XDK 
> Develop, test and display web and hybrid apps with a single code base.
> Download it for free now!
> http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
> _______________________________________________
> Opensaf-devel mailing list
> Opensaf-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
>   


------------------------------------------------------------------------------
Sponsored by Intel(R) XDK 
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to