On 01-Jul-14 8:29 PM, Hans Feldt wrote:
> Ack
>
> What about auto clearing of the unproxied alarm?
In AMF spec section 11.2.2.7, there is a state change notification when
proxied status changes from UNPROXIED to PROXIED. Thus in this way both
the enum values
are being utilised.
typedef enum {
SA_AMF_PROXY_STATUS_UNPROXIED = 1,
SA_AMF_PROXY_STATUS_PROXIED = 2
} SaAmfProxyStatusT;
Do we require to again send a clear alarm with SA_AMF_PROXY_STATUS_PROXIED.
In that case the patch will look like this for clear alarm:
diff --git a/osaf/services/saf/amf/amfd/comp.cc
b/osaf/services/saf/amf/amfd/comp.cc
--- a/osaf/services/saf/amf/amfd/comp.cc
+++ b/osaf/services/saf/amf/amfd/comp.cc
@@ -158,10 +158,14 @@ void avd_comp_proxy_status_change(AVD_CO
/* alarm & notifications */
if(proxy_status == SA_AMF_PROXY_STATUS_UNPROXIED)
avd_send_comp_proxy_status_unproxied_alarm(&comp->comp_info.name);
- else if(proxy_status == SA_AMF_PROXY_STATUS_PROXIED)
+ else if(proxy_status == SA_AMF_PROXY_STATUS_PROXIED) {
avd_send_comp_proxy_status_proxied_ntf(&comp->comp_info.name,
SA_AMF_PROXY_STATUS_UNPROXIED,
SA_AMF_PROXY_STATUS_PROXIED);
+ avd_alarm_clear(&comp->comp_info.name,
+ SA_AMF_PROXY_STATUS_PROXIED,
SA_NTF_SOFTWARE_ERROR);
+
+ }
}
If you agree I will push this small change also.
Thanks,
Praveen
> Thanks,
> Hans
>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]]
>> Sent: den 24 juni 2014 10:40
>> To: Hans Feldt; [email protected]
>> Cc: [email protected]
>> Subject: [PATCH 1 of 1] amf : fix component related alarms [#108]
>>
>> osaf/services/saf/amf/amfd/comp.cc | 7 +++++++
>> osaf/services/saf/amf/amfnd/comp.cc | 4 ++--
>> 2 files changed, 9 insertions(+), 2 deletions(-)
>>
>>
>> This patch solves two problems:
>> 1)Upon repair, it clears the alram raised for instantiation-failed component.
>> 2)Send the name of proxied component when it becomes orphan. Earlier AMF used
>> to send name of proxy instead of proxied in alarm.
>>
>> See #108 for sample notifications.
>>
>> diff --git a/osaf/services/saf/amf/amfd/comp.cc
>> b/osaf/services/saf/amf/amfd/comp.cc
>> --- a/osaf/services/saf/amf/amfd/comp.cc
>> +++ b/osaf/services/saf/amf/amfd/comp.cc
>> @@ -96,6 +96,13 @@ void avd_comp_pres_state_set(AVD_COMP *c
>> SA_AMF_NTFID_COMP_CLEANUP_FAILED,
>> SA_NTF_SOFTWARE_ERROR);
>> }
>>
>> + if ((comp->saAmfCompPresenceState ==
>> SA_AMF_PRESENCE_INSTANTIATION_FAILED) &&
>> + (pres_state == SA_AMF_PRESENCE_UNINSTANTIATED)){
>> + avd_alarm_clear(&comp->comp_info.name,
>> + SA_AMF_NTFID_COMP_INSTANTIATION_FAILED,
>> SA_NTF_SOFTWARE_ERROR);
>> + }
>> +
>> +
>> comp->saAmfCompPresenceState = pres_state;
>> avd_saImmOiRtObjectUpdate(&comp->comp_info.name,
>> "saAmfCompPresenceState",
>> SA_IMM_ATTR_SAUINT32T, &comp->saAmfCompPresenceState);
>> diff --git a/osaf/services/saf/amf/amfnd/comp.cc
>> b/osaf/services/saf/amf/amfnd/comp.cc
>> --- a/osaf/services/saf/amf/amfnd/comp.cc
>> +++ b/osaf/services/saf/amf/amfnd/comp.cc
>> @@ -2334,8 +2334,8 @@ uint32_t avnd_comp_proxy_unreg(AVND_CB *
>> /* if(m_AVND_COMP_TYPE_IS_INTER_NODE) */
>> /************************* Section 1 Ends Here
>> **************************/
>> if (m_AVND_COMP_PRES_STATE_IS_INSTANTIATED(rec->pxied_comp)) {
>> - m_AVND_COMP_PROXY_STATUS_SET(comp,
>> SA_AMF_PROXY_STATUS_UNPROXIED);
>> - m_AVND_COMP_PROXY_STATUS_AVD_SYNC(cb, comp, rc_send);
>> + m_AVND_COMP_PROXY_STATUS_SET(rec->pxied_comp,
>> SA_AMF_PROXY_STATUS_UNPROXIED);
>> + m_AVND_COMP_PROXY_STATUS_AVD_SYNC(cb, rec->pxied_comp,
>> rc_send);
>> }
>>
>> /* process proxied comp unregistration */
------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel