Hi Neel,

  Are you using one of the campaigns in the samples directory? Which
one? Is the campaign doing an AMF_ADMIN_RESTART?

  I wonder if there is a bug in the AMF patch which doesn't allow
AMF_ADMIN_RESTART when suMaintenanceCampaign is set.

  I will look at it today.

Alex

On 02/28/2017 05:53 AM, Neelakanta Reddy wrote:
> ------------------------------------------------------------------------
> NOTICE: This email was received from an EXTERNAL sender
> ------------------------------------------------------------------------
> 
> Hi Alex,
> 
> Tested the #2144 patch (Acknowledged by praveen on 2017/02/24) with #2145.
> 
> test scenario:
> 1. Campaign involves an Upgrade of the 2N amf application version.
> 2. In the middle of the campaign killed the 2N application in one of the
> node, the following is observed in syslog:
> 
> Mar 24 08:32:22 SLES1 osafamfnd[22939]: NO not restarting comp because
> maintenance campaign is set: safSmfCampaign=Campaign1,safApp=safSmfService
> Mar 24 08:32:22 SLES1 osafsmfd[22958]: ER SU:
> safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp failed after upgrade in
> campaign
> 
> But the campaign in moved to EXECUTION_FAILED state instead of
> SA_SMF_CMPG_ERROR_DETECTED:
> SLES1:~ # smf-state camp
> safSmfCampaign=Campaign1,safApp=safSmfService
> state=EXECUTION_FAILED(10)
> error='safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp failed
> after upgrade'
> 
> Observation:
> More analysis has to be done, why the state is not moved to
> SA_SMF_CMPG_ERROR_DETECTED.
> I suggest to push the patches #2144 and #2145 at the same time(once
> #2145 is tested).
> 
> 
> The following is the syslog snippet:
> Mar 24 08:32:22 SLES1 osafsmfd[22958]: NO STEP: Create new
> SaAmfNodeSwBundle objects
> Mar 24 08:32:22 SLES1 osafimmnd[22876]: NO Ccb 54 COMMITTED (SMFSERVICE)
> Mar 24 08:32:22 SLES1 osafsmfd[22958]: NO STEP: Modify information model
> and set maintenance status
> Mar 24 08:32:22 SLES1 osafimmnd[22876]: NO Ccb 55 COMMITTED (SMFSERVICE)
> Mar 24 08:32:22 SLES1 osafamfnd[22939]: NO saAmfCompType changed to
> 'safVersion=6.0.0,safCompType=Comp_2nApp_2n_1_1' for
> 'safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp'
> Mar 24 08:32:22 SLES1 osafimmnd[22876]: NO Ccb 56 COMMITTED (SMFSERVICE)
> Mar 24 08:32:22 SLES1 osafsmfd[22958]: NO STEP: Restart activation units
> Mar 24 08:32:22 SLES1 osafamfnd[22939]: NO Admin restart requested for
> 'safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp'
> Mar 24 08:32:22 SLES1 osafamfnd[22939]: NO not restarting comp because
> maintenance campaign is set: safSmfCampaign=Campaign1,safApp=safSmfService
> Mar 24 08:32:22 SLES1 osafsmfd[22958]: ER SU:
> safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp failed after upgrade in
> campaign
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO Fail to invoke admin
> operation, rc=SA_AIS_ERR_TIMEOUT (5).
> dn=[safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp], opId=[6]
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO adminOperation:
> immUtil.callAdminOperation() Fail SA_AIS_ERR_TIMEOUT (5), Failed unit is
> 'safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp'
> Mar 24 08:42:22 SLES1 osafimmnd[22876]: WA IMMND - Client 3749506580751
> went down on syncronous request, discarding request
> Mar 24 08:42:22 SLES1 osafimmnd[22876]: WA IMMND - Client Node Get
> Failed for cli_hdl 3749506580751
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: ER Failed to Restart activation units
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: ER Step execution failed, Try
> undoing the step
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO SmfStepStateUndoing::execute
> start undoing step.
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO STEP: Rolling back AU restart
> step
> safSmfStep=0001,safSmfProc=amfClusterProc-1,safSmfCampaign=Campaign1,safApp=safSmfService
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO STEP: Online installation of
> old software
> Mar 24 08:42:22 SLES1 osafsmfnd[22955]: NO Successful start of command
> execution: /hostfs/online_install.sh bundle-old, timeout 60000
> Mar 24 08:42:22 SLES1 osafsmfnd[22955]: NO Command execution OK
> Mar 24 08:42:22 SLES1 osafimmnd[22876]: NO Ccb 58 COMMITTED (SMFSERVICE)
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO STEP: Reverse information
> model and set maintenance status for deactivation units
> Mar 24 08:42:22 SLES1 osafimmnd[22876]: NO Ccb 59 COMMITTED (SMFSERVICE)
> Mar 24 08:42:22 SLES1 osafamfnd[22939]: NO saAmfCompType changed to
> 'safVersion=4.0.0,safCompType=Comp_2nApp_2n_1_1' for
> 'safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp'
> Mar 24 08:42:22 SLES1 osafsmfd[22958]: NO STEP: Restart activation units
> Mar 24 08:45:42 SLES1 osafsmfd[22958]: NO Fail to invoke admin
> operation, too many SA_AIS_ERR_TRY_AGAIN, giving up.
> dn=[safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp], opId=[6]
> Mar 24 08:45:42 SLES1 osafsmfd[22958]: NO adminOperation:
> immUtil.callAdminOperation() Fail SA_AIS_ERR_TRY_AGAIN (6), Failed unit
> is 'safComp=Norm1,safSu=dummy_2n_1,safSg=SG_dummy_2n,safApp=2nApp'
> Mar 24 08:45:42 SLES1 osafsmfd[22958]: ER Failed to Restart activation units
> Mar 24 08:45:42 SLES1 osafsmfd[22958]: ER Step undoing failed
> Mar 24 08:45:42 SLES1 osafsmfd[22958]: NO Step safSmfStep=0001 in
> procedure safSmfProc=amfClusterProc-1 failed, step result 5
> Mar 24 08:45:42 SLES1 osafsmfd[22958]: NO SmfCampState::procResult
> default implementation. Received response 5 from procedure
> safSmfProc=amfClusterProc-1
> 
> Thanks,
> Neel.
> 
> 
> 
> 
> On 2017/02/27 08:38 PM, Alex Jones wrote:
>> Hi Guys,
>>
>> I'd like your thoughts on whether or not we can push this now.
>>
>> (1) Praveen has acked the suMaintenanceCampaign changes in AMF. If I
>> push this AMF change, but don't push the SMF changes, then if AMF sets
>> oper state to disabled for an SU that has its suMaintenanceCampaign
>> attribute set (which SMF already does), auto-repair will be disabled,
>> and the SMF admin won't be told about it unless they look in the logs.
>>
>> (2) There is still an AMF change to not mark an SU disabled if the AMF
>> node is in locked-in state, when SMF reboots the node (for rolling
>> upgrade with reboot). If this change is not pushed, and the SMF changes
>> are pushed, then rollback and undo will break in SMF for this case.
>>
>> (3) I don't think you guys have done much testing (if any) of the SMF
>> patch because you wanted the AMF patch acked first, which makes sense.
>> Is there enough time to test this?
>>
>> Alex
>>
>> On 02/27/2017 08:08 AM, Neelakanta Reddy wrote:
>>> ------------------------------------------------------------------------
>>> NOTICE: This email was received from an EXTERNAL sender
>>> ------------------------------------------------------------------------
>>>
>>> Hi Alex,
>>>
>>> Are you Pushing(#2145) patch, along with #2144?
>>>
>>> Thanks,
>>> Neel.
>>>
>>> On 2016/11/12 01:20 AM, Alex Jones wrote:
>>>> osaf/services/saf/smfsv/smfd/SmfCampaignThread.cc | 235
>>> +++++++++++++++++++++-
>>>> osaf/services/saf/smfsv/smfd/SmfCampaignThread.hh | 15 +
>>>> osaf/services/saf/smfsv/smfd/SmfStepTypes.cc | 32 +-
>>>> 3 files changed, 263 insertions(+), 19 deletions(-)
>>>>
>>>>
>>>> This patch adds support for section 4.2.1.3 of SMF A.01.02 spec.
>>>>
>>>> diff --git a/osaf/services/saf/smfsv/smfd/SmfCampaignThread.cc
>>> b/osaf/services/saf/smfsv/smfd/SmfCampaignThread.cc
>>>> --- a/osaf/services/saf/smfsv/smfd/SmfCampaignThread.cc
>>>> +++ b/osaf/services/saf/smfsv/smfd/SmfCampaignThread.cc
>>>> @@ -39,6 +39,7 @@
>>>> #include "SmfUtils.hh"
>>>>
>>>> SmfCampaignThread *SmfCampaignThread::s_instance = NULL;
>>>> +SaNtfSubscriptionIdT SmfCampaignThread::operStateSubId(1);
>>>>
>>>> #define SMF_RDA_RETRY_COUNT 25 /* This is taken as the csi's are
>>> assigned in parallel */
>>>> @@ -140,7 +141,12 @@ void SmfCampaignThread::main(NCSCONTEXT
>>>> SmfCampaignThread::~SmfCampaignThread()
>>>> {
>>>> TRACE_ENTER();
>>>> - SaAisErrorT rc = saNtfFinalize(m_ntfHandle);
>>>> + SaAisErrorT rc(saNtfNotificationUnsubscribe(operStateSubId));
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("Failed to unsubscribe to oper state notifications %u", rc);
>>>> + }
>>>> +
>>>> + rc = saNtfFinalize(m_ntfHandle);
>>>> if (rc != SA_AIS_OK) {
>>>> LOG_ER("Failed to finalize NTF handle %u", rc);
>>>> }
>>>> @@ -303,10 +309,14 @@ int SmfCampaignThread::initNtf(void)
>>>> {
>>>> SaAisErrorT rc = SA_AIS_ERR_TRY_AGAIN;
>>>> SaVersionT ntfVersion = { 'A', 1, 1 };
>>>> + SaNtfCallbacksT callbacks = {
>>>> + ntfNotificationCallback,
>>>> + 0
>>>> + };
>>>> unsigned int numOfTries = 50;
>>>>
>>>> while (rc == SA_AIS_ERR_TRY_AGAIN && numOfTries > 0) {
>>>> - rc = saNtfInitialize(&m_ntfHandle, NULL, &ntfVersion);
>>>> + rc = saNtfInitialize(&m_ntfHandle, &callbacks, &ntfVersion);
>>>> if (rc != SA_AIS_ERR_TRY_AGAIN) {
>>>> break;
>>>> }
>>>> @@ -319,9 +329,202 @@ int SmfCampaignThread::initNtf(void)
>>>> return -1;
>>>> }
>>>>
>>>> + // subscribe to operational state change notifications generated
> by AMF
>>>> + rc = initNtfSubscriptions();
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("initNtfSubscriptions FAILED rc=%s", saf_error(rc));
>>>> + return -1;
>>>> + }
>>>> +
>>>> return 0;
>>>> }
>>>>
>>>> +SaAisErrorT SmfCampaignThread::initNtfSubscriptions(void) {
>>>> + TRACE_ENTER();
>>>> + SaAisErrorT rc(SA_AIS_OK);
>>>> +
>>>> + do {
>>>> + SaNtfStateChangeNotificationFilterT stateChangeFilter;
>>>> +
>>>> + SaAisErrorT rc(saNtfStateChangeNotificationFilterAllocate(
>>>> + m_ntfHandle,
>>>> + &stateChangeFilter,
>>>> + 0,
>>>> + 0,
>>>> + 0,
>>>> + 0,
>>>> + 0,
>>>> + 0));
>>>> +
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("saNtfAttributeChangeNotificationFilterAllocate FAILED rc=%s",
>>>> + saf_error(rc));
>>>> + break;
>>>> + }
>>>> +
>>>> + SaNtfNotificationTypeFilterHandlesT notificationFilterHandles = {
>>>> + 0,
>>>> + 0,
>>>> + stateChangeFilter.notificationFilterHandle,
>>>> + 0,
>>>> + 0
>>>> + };
>>>> +
>>>> + rc = saNtfNotificationSubscribe(&notificationFilterHandles,
>>> operStateSubId);
>>>> +
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("saNtfNotificationSubscribe FAILED rc=%s", saf_error(rc));
>>>> + break;
>>>> + }
>>>> +
>>>> + rc =
>>> saNtfNotificationFilterFree(stateChangeFilter.notificationFilterHandle);
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("saNtfNotificationFilterFree FAILED rc=%s", saf_error(rc));
>>>> + break;
>>>> + }
>>>> + } while (false);
>>>> +
>>>> + TRACE_LEAVE();
>>>> + return rc;
>>>> +}
>>>> +
>>>> +bool SmfCampaignThread::isAMFOperState(const SaNtfClassIdT& classId)
>>> const {
>>>> + TRACE_ENTER();
>>>> + bool status(false);
>>>> +
>>>> + if (classId.vendorId == SA_NTF_VENDOR_ID_SAF &&
>>>> + classId.majorId == SA_SVC_AMF &&
>>>> + classId.minorId == SA_AMF_NTFID_SU_OP_STATE) {
>>>> + status = true;
>>>> + }
>>>> +
>>>> + TRACE_LEAVE2("%i", status);
>>>> + return status;
>>>> +}
>>>> +
>>>> +void SmfCampaignThread::handleStateChangeNotification(
>>>> + const SaNtfStateChangeNotificationT& stateChangeNotification) {
>>>> + TRACE_ENTER();
>>>> + if (stateChangeNotification.notificationHeader.eventType) {
>>>> + if (*stateChangeNotification.notificationHeader.eventType ==
>>>> + SA_NTF_OBJECT_STATE_CHANGE) {
>>>> + handleObjectStateChangeNotification(stateChangeNotification);
>>>> + } else {
>>>> + TRACE("ignoring state change notification with event type: %i",
>>>> + *stateChangeNotification.notificationHeader.eventType);
>>>> + }
>>>> + }
>>>> + TRACE_LEAVE();
>>>> +}
>>>> +
>>>> +void SmfCampaignThread::handleAmfObjectStateChangeNotification(
>>>> + const SaNtfStateChangeNotificationT& stateChangeNotification) {
>>>> + TRACE_ENTER();
>>>> +
>>>> + do {
>>>> + bool disabled(false);
>>>> +
>>>> + // see if this is a failure of an upgraded SU
>>>> + for (SaUint16T i(0); i < stateChangeNotification.numStateChanges;
> i++) {
>>>> + if (stateChangeNotification.changedStates[i].newState ==
>>>> + SA_AMF_OPERATIONAL_DISABLED) {
>>>> + disabled = true;
>>>> + break;
>>>> + }
>>>> + }
>>>> +
>>>> + if (!disabled) {
>>>> + TRACE("state change is not to DISABLED -- ignoring");
>>>> + break;
>>>> + }
>>>> +
>>>> + for (SaUint16T i(0);
>>>> + i < stateChangeNotification.notificationHeader.numAdditionalInfo;
>>>> + i++) {
>>>> + if
>>> (stateChangeNotification.notificationHeader.additionalInfo[i].infoId !=
>>>> + SA_AMF_MAINTENANCE_CAMPAIGN_DN ||
>>>> + stateChangeNotification.notificationHeader.additionalInfo[i].infoType
>>>> + != SA_NTF_VALUE_LDAP_NAME) {
>>>> + continue;
>>>> + }
>>>> +
>>>> + SaNameT *name(0);
>>>> + SaUint16T dataSize(0);
>>>> +
>>>> + SaAisErrorT rc(saNtfPtrValGet(
>>>> + stateChangeNotification.notificationHandle,
>>>> +
> &stateChangeNotification.notificationHeader.additionalInfo[i].infoValue,
>>>> + reinterpret_cast<void **>(&name),
>>>> + &dataSize));
>>>> +
>>>> + if (rc == SA_AIS_OK) {
>>>> + SaConstStringT maintenanceCampaign(saAisNameBorrow(name));
>>>> +
>>>> + if (!strcmp(maintenanceCampaign,
>>>> + s_instance->m_campaign->getDn().c_str())) {
>>>> + LOG_ER("SU: %s failed after upgrade in campaign",
>>>> +
>>>
> saAisNameBorrow(stateChangeNotification.notificationHeader.notificationObject));
>>>> + s_instance->m_campaign->getUpgradeCampaign()->suspend();
>>>> + s_instance->m_campaign->getUpgradeCampaign()->setCampState(
>>>> + SA_SMF_CMPG_ERROR_DETECTED);
>>>> +
>>>> + std::string error(saAisNameBorrow(
>>>> + stateChangeNotification.notificationHeader.notificationObject));
>>>> +
>>>> + error += " failed after upgrade";
>>>> + s_instance->m_campaign->setError(error);
>>>> + } else {
>>>> + LOG_ER("maintenance campaign received from AMF (%s) is not the "
>>>> + "same as ours (%s)",
>>>> + maintenanceCampaign,
>>>> + s_instance->m_campaign->getDn().c_str());
>>>> + }
>>>> + } else {
>>>> + LOG_ER("saNtfPtrValGet failed: %d", rc);
>>>> + }
>>>> + }
>>>> + } while (false);
>>>> +
>>>> + TRACE_LEAVE();
>>>> +}
>>>> +
>>>> +void SmfCampaignThread::handleObjectStateChangeNotification(
>>>> + const SaNtfStateChangeNotificationT& stateChangeNotification) {
>>>> + TRACE_ENTER();
>>>> +
>>>> + if (stateChangeNotification.notificationHeader.notificationClassId &&
>>>> +
>>>
> isAMFOperState(*stateChangeNotification.notificationHeader.notificationClassId))
>>> {
>>>> + handleAmfObjectStateChangeNotification(stateChangeNotification);
>>>> + } else {
>>>> + TRACE("ignoring non-AMF state change notification");
>>>> + }
>>>> +
>>>> + TRACE_LEAVE();
>>>> +}
>>>> +
>>>> +void SmfCampaignThread::ntfNotificationCallback(
>>>> + SaNtfSubscriptionIdT subId,
>>>> + const SaNtfNotificationsT *notification) {
>>>> + TRACE_ENTER();
>>>> +
>>>> + do {
>>>> + if (subId != operStateSubId) {
>>>> + TRACE("unknown subscription id received in
> ntfNotificationCallback: %d",
>>>> + subId);
>>>> + break;
>>>> + }
>>>> +
>>>> + if (notification->notificationType == SA_NTF_TYPE_STATE_CHANGE) {
>>>> + s_instance->handleStateChangeNotification(
>>>> + notification->notification.stateChangeNotification);
>>>> + } else {
>>>> + TRACE("ignoring NTF notification of type: %i",
>>>> + notification->notificationType);
>>>> + }
>>>> + } while (false);
>>>> +
>>>> + TRACE_LEAVE();
>>>> +}
>>>> /**
>>>> * SmfCampaignThread::send
>>>> * send event to the thread.
>>>> @@ -672,18 +875,31 @@ int SmfCampaignThread::handleEvents(void
>>>> {
>>>> TRACE_ENTER();
>>>> NCS_SEL_OBJ mbx_fd = ncs_ipc_get_sel_obj(&m_mbx);
>>>> - struct pollfd fds[1];
>>>> +
>>>> + SaSelectionObjectT ntfSelObj(0);
>>>> +
>>>> + SaAisErrorT rc(saNtfSelectionObjectGet(m_ntfHandle, &ntfSelObj));
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("saNtfSelectionObjectGet FAILED - %s", saf_error(rc));
>>>> + return 1;
>>>> + }
>>>> +
>>>> + struct pollfd fds[2];
>>>>
>>>> /* Set up all file descriptors to listen to */
>>>> fds[0].fd = mbx_fd.rmv_obj;
>>>> fds[0].events = POLLIN;
>>>> fds[0].revents = 0;
>>>>
>>>> + fds[1].fd = ntfSelObj;
>>>> + fds[1].events = POLLIN;
>>>> + fds[1].revents = 0;
>>>> +
>>>> TRACE("Campaign thread %s waiting for events",
>>> m_campaign->getDn().c_str());
>>>> while (m_running) {
>>>>
>>>> - int ret = poll(fds, 1, SMF_UPDATE_ELAPSED_TIME_INTERVAL);
>>>> + int ret = poll(fds, sizeof(fds) / sizeof(pollfd),
>>> SMF_UPDATE_ELAPSED_TIME_INTERVAL);
>>>> if (ret == -1) {
>>>> if (errno == EINTR)
>>>> @@ -699,7 +915,16 @@ int SmfCampaignThread::handleEvents(void
>>>> processEvt();
>>>> }
>>>>
>>>> - m_campaign->updateElapsedTime();
>>>> + if (fds[1].revents & POLLIN) {
>>>> + // dispatch NTF events
>>>> + rc = saNtfDispatch(m_ntfHandle, SA_DISPATCH_ALL);
>>>> +
>>>> + if (rc != SA_AIS_OK) {
>>>> + LOG_ER("saNtfDispatch FAILED - %s", saf_error(rc));
>>>> + }
>>>> + }
>>>> +
>>>> + m_campaign->updateElapsedTime();
>>>> }
>>>> TRACE_LEAVE();
>>>> return 0;
>>>> diff --git a/osaf/services/saf/smfsv/smfd/SmfCampaignThread.hh
>>> b/osaf/services/saf/smfsv/smfd/SmfCampaignThread.hh
>>>> --- a/osaf/services/saf/smfsv/smfd/SmfCampaignThread.hh
>>>> +++ b/osaf/services/saf/smfsv/smfd/SmfCampaignThread.hh
>>>> @@ -190,9 +190,24 @@ class SmfCampaignThread {
>>>>
>>>> SaAisErrorT createImmHandle(SmfCampaign * i_campaign);
>>>> SaAisErrorT deleteImmHandle();
>>>> + SaAisErrorT initNtfSubscriptions(void);
>>>> +
>>>> + void handleStateChangeNotification(const
>>> SaNtfStateChangeNotificationT&);
>>>> +
>>>> + void handleObjectStateChangeNotification(
>>>> + const SaNtfStateChangeNotificationT&);
>>>> +
>>>> + void handleAmfObjectStateChangeNotification(
>>>> + const SaNtfStateChangeNotificationT&);
>>>> +
>>>> + bool isAMFOperState(const SaNtfClassIdT&) const;
>>>> +
>>>> + static void ntfNotificationCallback(SaNtfSubscriptionIdT,
>>>> + const SaNtfNotificationsT *);
>>>>
>>>> static void main(NCSCONTEXT info);
>>>> static SmfCampaignThread *s_instance;
>>>> + static SaNtfSubscriptionIdT operStateSubId;
>>>>
>>>> NCSCONTEXT m_task_hdl;
>>>> SYSF_MBX m_mbx; /* mailbox */
>>>> diff --git a/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
>>> b/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
>>>> --- a/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
>>>> +++ b/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
>>>> @@ -1247,8 +1247,8 @@ SmfStepTypeNodeReboot::execute()
>>>> return false;
>>>> }
>>>>
>>>> - /* Modify information model and set maintenance status */
>>>> - LOG_NO("STEP: Modify information model and set maintenance status");
>>>> + /* Modify information model */
>>>> + LOG_NO("STEP: Modify information model");
>>>> if (m_step->modifyInformationModel() != SA_AIS_OK) {
>>>> LOG_ER("Failed to Modify information model in
>>> step=%s",m_step->getRdn().c_str());
>>>> return false;
>>>> @@ -1261,11 +1261,6 @@ SmfStepTypeNodeReboot::execute()
>>>> return false;
>>>> }
>>>>
>>>> - if (m_step->setMaintenanceStateActUnits() == false) {
>>>> - LOG_ER("Failed to set maintenance state in
>>> step=%s",m_step->getRdn().c_str());
>>>> - return false;
>>>> - }
>>>> -
>>>> /* The action below is an add on to
>>> SMF.---------------------------------------*/
>>>> /* See if any of the software bundles installed at online installation
>>> has the */
>>>> /* saSmfBundleInstallOfflineScope attribute set to
>>> SA_SMF_CMD_SCOPE_PLM_EE */
>>>> @@ -1372,6 +1367,13 @@ SmfStepTypeNodeReboot::execute()
>>>> /* the units in the same state as before locking */
>>>> m_step->copyDuInitStateToAu();
>>>>
>>>> + /* Now that the node is up, set the maintenance status */
>>>> + LOG_NO("STEP: Set Maintenance Status");
>>>> + if (m_step->setMaintenanceStateActUnits() == false) {
>>>> + LOG_ER("Failed to set maintenance state in
>>> step=%s",m_step->getRdn().c_str());
>>>> + return false;
>>>> + }
>>>> +
>>>> /* Instantiate activation units */
>>>> LOG_NO("STEP: Instantiate activation units");
>>>> if (m_step->instantiateActivationUnits() == false) {
>>>> @@ -1685,8 +1687,8 @@ SmfStepTypeNodeRebootAct::execute()
>>>> return false;
>>>> }
>>>>
>>>> - /* Modify information model and set maintenance status */
>>>> - LOG_NO("STEP: Modify information model and set maintenance status");
>>>> + /* Modify information model */
>>>> + LOG_NO("STEP: Modify information model");
>>>> if (m_step->modifyInformationModel() != SA_AIS_OK) {
>>>> LOG_ER("Failed to Modify information model in
>>> step=%s",m_step->getRdn().c_str());
>>>> return false;
>>>> @@ -1699,11 +1701,6 @@ SmfStepTypeNodeRebootAct::execute()
>>>> return false;
>>>> }
>>>>
>>>> - if (m_step->setMaintenanceStateActUnits() == false) {
>>>> - LOG_ER("Failed to set maintenance state in
>>> step=%s",m_step->getRdn().c_str());
>>>> - return false;
>>>> - }
>>>> -
>>>> /* Offline installation of new software */
>>>> LOG_NO("STEP: Offline installation of new software");
>>>> if (m_step->offlineInstallNewBundles() == false) {
>>>> @@ -1746,6 +1743,13 @@ SmfStepTypeNodeRebootAct::execute()
>>>> /* the units in the same state as before locking */
>>>> m_step->copyDuInitStateToAu();
>>>>
>>>> + /* Now that the node is up, set the maintenance status */
>>>> + LOG_NO("STEP: Set Maintenance Status");
>>>> + if (m_step->setMaintenanceStateActUnits() == false) {
>>>> + LOG_ER("Failed to set maintenance state in
>>> step=%s",m_step->getRdn().c_str());
>>>> + return false;
>>>> + }
>>>> +
>>>> /* Instantiate activation units */
>>>> LOG_NO("STEP: Instantiate activation units");
>>>> if (m_step->instantiateActivationUnits() == false) {
>>>>

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to