My own review comments:

See [Lennart] inline

/Lennart

> -----Original Message-----
> From: Lennart Lund [mailto:lennart.l...@ericsson.com]
> Sent: den 22 september 2016 17:04
> To: Rafael Odzakow <rafael.odza...@ericsson.com>;
> reddy.neelaka...@oracle.com
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [devel] [PATCH 1 of 1] smf: Delete node group if already exist when
> creating [#2049]
> 
>  osaf/services/saf/smfsv/smfd/SmfUpgradeStep.cc |  51
> ++++++++++++++++---------
>  1 files changed, 33 insertions(+), 18 deletions(-)
> 
> 
> If a node group for admin operation already exist when create is done the
> existing group shall be deleted so that the new group can be created
> 
> diff --git a/osaf/services/saf/smfsv/smfd/SmfUpgradeStep.cc
> b/osaf/services/saf/smfsv/smfd/SmfUpgradeStep.cc
> --- a/osaf/services/saf/smfsv/smfd/SmfUpgradeStep.cc
> +++ b/osaf/services/saf/smfsv/smfd/SmfUpgradeStep.cc
> @@ -3537,24 +3537,39 @@ bool SmfAdminOperation::createNodeGroup(
> 
>       // ------------------------------------
>       // Create the node group
> -     m_errno = immutil_saImmOmCcbObjectCreate_2(
> -         m_ccbHandle,
> -         className,
> -         &nodeGroupParentDn,
> -         attrValues);
> -
> -     if (m_errno != SA_AIS_OK) {
> -             LOG_NO("%s: saImmOmCcbObjectCreate_2() '%s' Fail %s",
> -                     __FUNCTION__, nGnodeName,
> saf_error(m_errno));
> -             rc = false;
> -     } else {
> -             m_errno = saImmOmCcbApply(m_ccbHandle);
> -             if (m_errno != SA_AIS_OK) {
> -             LOG_NO("%s: saImmOmCcbApply() Fail '%s'",
> -                     __FUNCTION__, saf_error(m_errno));
> -                     rc = false;
> -             }
> -     }
> +        while (true) {
> +                m_errno = immutil_saImmOmCcbObjectCreate_2(
> +                    m_ccbHandle,
> +                    className,
> +                    &nodeGroupParentDn,
> +                    attrValues);
> +
> +                if (m_errno == SA_AIS_ERR_EXIST) {
> +                        // A node group with the same name already exist
> +                        // May happen if delete after usage has failed
> +                        bool rc = deleteNodeGroup();
[Lennart] Incorrect scope of rc

> +                        if (rc == false) {
> +                                LOG_NO("%s: deleteNodeGroup() Fail",
> +                                       __FUNCTION__);
> +                                break;
> +                        }
> +                        continue;
> +                }
> +                if (m_errno != SA_AIS_OK) {
> +                        LOG_NO("%s: saImmOmCcbObjectCreate_2() '%s' Fail %s",
> +                                __FUNCTION__, nGnodeName, 
> saf_error(m_errno));
> +                        rc = false;
> +                        break;
> +                } else {
> +                        m_errno = saImmOmCcbApply(m_ccbHandle);
> +                        if (m_errno != SA_AIS_OK) {
> +                        LOG_NO("%s: saImmOmCcbApply() Fail '%s'",
> +                                __FUNCTION__, saf_error(m_errno));
> +                                rc = false;
> +                        }
> +                        break;
> +                }
> +        }
> 
>       if (nodeName != NULL)
>               free(nodeName);
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Opensaf-devel mailing list
> Opensaf-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to