Also a commit message should start with a verb in present tense, add, fix, remove, delete etc
> -----Original Message----- > From: Anders Bjornerstedt [mailto:anders.bjornerst...@ericsson.com] > Sent: den 6 december 2013 15:33 > To: Zoran Milinkovic > Cc: opensaf-devel@lists.sourceforge.net > Subject: Re: [devel] [PATCH 0 of 3] Review Request for IMM: Implementation of > NO_DANGLING flag [#49] > > 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 ------------------------------------------------------------------------------ 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