Hi Phuc, Instead of add more code, you can change default value to reduce code. And releaseAdminOwnerOf() should be called base on "admset_rc" check, I think.
Example: --- a/src/smf/smfd/SmfAdminState.cc +++ b/src/smf/smfd/SmfAdminState.cc @@ -858,7 +858,7 @@ bool SmfAdminStateHandler::deleteNodeGroup() { bool SmfAdminStateHandler::nodeGroupAdminOperation( SaAmfAdminOperationIdT adminOp) { - bool method_rc = true; + bool method_rc = false; TRACE_ENTER(); @@ -920,20 +920,17 @@ bool SmfAdminStateHandler::nodeGroupAdminOperation( } else if (imm_rc != SA_AIS_OK) { LOG_NO("%s adminOpTimeout Fail %s", __FUNCTION__, saf_error(imm_rc)); errno_ = imm_rc; - method_rc = false; } else { LOG_NO("%s adminOpTimeout Fail %s", __FUNCTION__, saf_error(oi_rc)); errno_ = oi_rc; - method_rc = false; } } } else { LOG_NO("%s: becomeAdminOwnerOf(%s) Fail", __FUNCTION__, nodeGroupName_s.c_str()); - method_rc = false; } - if (method_rc == true) { + if (admset_rc == true) { TRACE("%s Admin operation is done. Release ownership if nodegroup", __FUNCTION__); if (releaseAdminOwnerOf(nodeGroupName_s) == false) { Best Regards, ThuanTr -----Original Message----- From: phuc.h.chau <phuc.h.c...@dektech.com.au> Sent: Monday, October 21, 2019 6:23 PM To: thuan.t...@dektech.com.au; thang.d.ngu...@dektech.com.au Cc: opensaf-devel@lists.sourceforge.net; phuc.h.chau <phuc.h.c...@dektech.com.au> Subject: [PATCH 1/1] smf: Improve SmfAdminStateHandler() Return false if Fail [#3104] SW upgrade testing, if found that if a service unit is in INSTANTIATION_FAILED, one_step upgrade will not continue with the software installation. --- src/smf/smfd/SmfAdminState.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/smf/smfd/SmfAdminState.cc b/src/smf/smfd/SmfAdminState.cc index 076f9f0..a54f47f 100644 --- a/src/smf/smfd/SmfAdminState.cc +++ b/src/smf/smfd/SmfAdminState.cc @@ -900,11 +900,13 @@ bool SmfAdminStateHandler::nodeGroupAdminOperation( LOG_NO( "%s: saImmOmAdminOperationInvoke_2 Fail %s", __FUNCTION__, saf_error(imm_rc)); + method_rc = false; errno_ = imm_rc; break; } else if (oi_rc != SA_AIS_OK) { LOG_NO("%s: SaAmfAdminOperationId %d Fail %s", __FUNCTION__, adminOp, saf_error(oi_rc)); + method_rc = false; errno_ = oi_rc; break; } else { -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel