Hi Neel, Neelakanta Reddy wrote: > HI AndersBj, > > Reviewed and tested the patch. > > comments: > change variable has to be set to true when any attributes are getting > changed in schema upgrade. Yes I missed that. will send a new patch.
/AndersBj > > more comments inline > > Thanks, > Neel. > > On Wednesday 16 July 2014 08:23 PM, Anders Bjornerstedt wrote: >> osaf/services/saf/immsv/README | 24 >> +++++++++++++++++++++--- >> osaf/services/saf/immsv/immnd/ImmModel.cc | 2 +- >> 2 files changed, 22 insertions(+), 4 deletions(-) >> >> >> This enhancement removes the restriction of not allowing a class >> schema change >> to add a default to an attribute definition. (Note: Removing a >> default is still >> not allowed as it is inherrently not backwards compatible.) >> >> Only new instances of the class will get the default assigned when no >> value is >> provided for the attribute at object-create time. >> >> Old instances with a null-value for the attribute will still have a >> null-value >> for that attribute even after the schema change. A general rule for >> schema >> changes is that the immsv never alters the value of existing >> attributes as >> part of a schema change. Doing so would require the OI to be >> notified, which is >> not realistic since the shcema change is not performed as a CCB. >> >> This feature is only functional after an upgrade to 4.5 has completed. >> >> diff --git a/osaf/services/saf/immsv/README >> b/osaf/services/saf/immsv/README >> --- a/osaf/services/saf/immsv/README >> +++ b/osaf/services/saf/immsv/README >> @@ -484,6 +484,10 @@ CHANGE of an existing attribute if it is >> New instances of the class will get the new default, >> old instances retain the old value. >> + * Adding default-value for an attribute (config or runtime). >> + New instances of the class will get the new default, >> + old instances retain the null value. >> + >> * Adding 'multivalued' flag for an attribute (config or runtime). >> * Adding 'writable' flag for an attribute (config). >> @@ -494,7 +498,7 @@ CHANGE of an existing attribute if it is >> All other changes, such as change of attribute type, removal of >> default, >> -addition of default, etc are not allowed. >> +etc are not allowed. >> There is no API change. The existing saImmOmClassCreate_2 call is >> used >> to insert the new class version. The standard behavior is to reject >> @@ -1842,7 +1846,6 @@ not to create deadlock cycles between th >> be resolved by the timeout of the synchronous admin-ops, so the >> problem would be lack >> of progress on some task, not a permanently hung set of processes. >> - >> Attribute 'longDnsAllowed' added to class 'OpensafImm' (4.5) >> =========================================================== >> https://sourceforge.net/p/opensaf/tickets/897 >> @@ -1869,10 +1872,25 @@ The xml file should be used for upgradin >> upgraded to OpenSAF 4.5 and that system must be capable of >> supporting long DNs. >> +Allow schema change to add attribute default (4.5) >> +================================================== >> +https://sourceforge.net/p/opensaf/tickets/895 >> + >> +The restriction of not allowing a default value to be added to an >> attribute that >> +previously had no default, has been removed. Only new instances of >> the class will >> +get the default assigned when no value is provided for the attribute >> at object-create >> +time. Old instances with a null-value for the attribute will still >> have a null-value >> +for that attribute even after the schema change. A general rule for >> schema changes >> +is that the immsv never alters the value of existing attributes as >> part of a schema >> +change. Doing so would require the OI to be notified, which is not >> realistic since >> +the shcema change is not performed as a CCB. >> +This new feature is only available after an upgrade to OpensAF 4.5 >> has completed. >> + >> + >> Notes on upgrading from OpenSAF 4.[1,2,3,4] to OpenSAF 4.5 >> ========================================================== >> Several enhancements in OpenSAF4.5 add new message types or add new >> imm server states >> -for ccb handling (#798, #799, #16). During a rolling upgrade from >> an earlier OpenSAF >> +for ccb handling (#798, #799, #16, #895). During a rolling upgrade >> from an earlier OpenSAF >> release to the 4.5 release there will be nodes executing the older >> release concurrently >> with nodes executing OpenSAF 4.5. Nodes executing the earlier >> release will not >> recognize new message types originating from nodes executing 4.5 >> and messages from >> diff --git a/osaf/services/saf/immsv/immnd/ImmModel.cc >> b/osaf/services/saf/immsv/immnd/ImmModel.cc >> --- a/osaf/services/saf/immsv/immnd/ImmModel.cc >> +++ b/osaf/services/saf/immsv/immnd/ImmModel.cc >> @@ -3727,7 +3727,7 @@ ImmModel::notCompatibleAtt(const std::st >> } >> } >> - if(oldAttr->mDefaultValue.empty() && >> !newAttr->mDefaultValue.empty()) { >> + if(oldAttr->mDefaultValue.empty() && >> !newAttr->mDefaultValue.empty() && !protocol45Allowed()) { >> LOG_NO("Impossible upgrade, attribute %s:%s adds >> default value", >> className.c_str(), attName.c_str()); >> return true; > if(oldAttr->mDefaultValue.empty() && !newAttr->mDefaultValue.empty()){ > if(!protocol45Allowed()) { > LOG_NO("Impossible upgrade, attribute %s:%s adds > default value", > className.c_str(), attName.c_str()); > return true; > } else { > change=true; > } > } > > > ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel