<br><font size=2 face="sans-serif">Em....The solution goes back to my first
question.</font>
<br><font size=2 face="sans-serif">Snapshot service calls get_all, and
caches all the alarms.</font>
<br><font size=2 face="sans-serif">But listener service can't get the cache
because there are two services and can't share the cache.</font>
<br>
<br>
<br><font size=2 face="sans-serif">BR,</font>
<br><font size=2 face="sans-serif">dwj<br>
</font><font size=3><br>
<br>
</font>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=36%><font size=1 face="sans-serif"><b>"Weyl, Alexey (Nokia
- IL)" <alexey.weyl@nokia.com></b> </font>
<p><font size=1 face="sans-serif">2016-11-24 23:50</font>
<td width=63%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">收件人</font></div>
<td><font size=1 face="sans-serif">"dong.wenjuan@zte.com.cn"
<dong.wenjuan@zte.com.cn></font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">抄送</font></div>
<td><font size=1 face="sans-serif">"Hefetz, Idan (Nokia - IL)"
<idan.hefetz@nokia.com>, "Afek, Ifat (Nokia - IL)" <ifat.afek@nokia.com>,
"openstack-dev@lists.openstack.org" <openstack-dev@lists.openstack.org>,
"zhang.yujunz@zte.com.cn" <zhang.yujunz@zte.com.cn></font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">主题</font></div>
<td><font size=1 face="sans-serif">RE: RE: [openstack-dev] [vitrage] about
aodh alarm notification</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2 color=#1f497d face="Calibri">It seems that you will need
to have a cache for that issue.</font>
<br><font size=2 color=#1f497d face="Calibri">Due to the fact that AODH
alarms aren’t deleted, and stay alive (in AODH) when their state is changed
to ok (but in this case aren’t supposed to appear in Vitrage), and then
when the state is changed back to error (‘alarm’) they are supposed
to appear in Vitrage with all the data, the most simple way to do that
(without touching the core processor and architecture) is by saving those
alarms of AODH in cache in the AODH driver, update its data every change
that arrive to the driver, and then when a notification arrives and if
the state that arrived is different than OK and the state that was in the
cache is OK then send an event with all the data updated in the cache to
the queue, otherwise send only the data received from the oslo bus to the
queue (don’t forget of course to update the cache each time an event
received, and each time we call the get_all of aodh (every snapshot_interval
time) we can update the data in the cache as well.</font>
<br><font size=2 color=#1f497d face="Calibri"> </font>
<br><font size=2 color=#1f497d face="Calibri">Alexey</font>
<br><font size=2 color=#1f497d face="Calibri"> </font>
<br><font size=2 face="Tahoma"><b>From:</b> dong.wenjuan@zte.com.cn [mailto:dong.wenjuan@zte.com.cn]
<b><br>
Sent:</b> Thursday, November 24, 2016 11:24 AM<b><br>
To:</b> Weyl, Alexey (Nokia - IL)<b><br>
Cc:</b> Hefetz, Idan (Nokia - IL); Afek, Ifat (Nokia - IL); openstack-dev@lists.openstack.org;
zhang.yujunz@zte.com.cn<b><br>
Subject:</b> </font><font size=2 face="sans-serif">答复</font><font size=2 face="Tahoma">:
RE: [openstack-dev] [vitrage] about aodh alarm notification</font>
<br><font size=3 face="sans-serif"> </font>
<br><font size=2 face="Arial"><br>
Hi Weyl Alexey,</font><font size=3 face="sans-serif"> <br>
</font><font size=2 face="Arial"><br>
Another question:</font><font size=3 face="sans-serif"> </font><font size=2 face="Arial"><br>
If we received the alarm.creation notification with the 'ok' state, we
filter it and don't create vertex in the Graph.</font><font size=3 face="sans-serif">
</font><font size=2 face="Arial"><br>
The next received the alarm state_change notification, all the other alarm
details are missing in the vertex.</font><font size=3 face="sans-serif">
</font><font size=2 face="Arial"><br>
How can I handle this? Thanks~</font><font size=3 face="sans-serif"> <br>
<br>
</font><font size=2 face="Arial"><br>
BR,</font><font size=3 face="sans-serif"> </font><font size=2 face="Arial"><br>
dwj</font><font size=3 face="sans-serif"><br>
<br>
<br>
<br>
<br>
</font>
<p>
<table width=100%>
<tr valign=top>
<td width=23%><font size=1 face="Arial"><b>"Weyl, Alexey (Nokia -
IL)" <</b></font><a href=mailto:alexey.weyl@nokia.com><font size=1 color=blue face="Arial"><b><u>alexey.weyl@nokia.com</u></b></font></a><font size=1 face="Arial"><b>></b>
</font>
<p><font size=1 face="Arial">2016-11-24 16:25</font><font size=3 face="sans-serif">
</font>
<td width=76%>
<br>
<table width=100%>
<tr valign=top>
<td width=4%>
<div align=right><font size=1 face="sans-serif">收件人</font></div>
<td width=95%><font size=1 face="Arial">"</font><a href=mailto:dong.wenjuan@zte.com.cn><font size=1 color=blue face="Arial"><u>dong.wenjuan@zte.com.cn</u></font></a><font size=1 face="Arial">"
<</font><a href=mailto:dong.wenjuan@zte.com.cn><font size=1 color=blue face="Arial"><u>dong.wenjuan@zte.com.cn</u></font></a><font size=1 face="Arial">>,
"Afek, Ifat (Nokia - IL)" <</font><a href=mailto:ifat.afek@nokia.com><font size=1 color=blue face="Arial"><u>ifat.afek@nokia.com</u></font></a><font size=1 face="Arial">>,
"Hefetz, Idan (Nokia - IL)" <</font><a href=mailto:idan.hefetz@nokia.com><font size=1 color=blue face="Arial"><u>idan.hefetz@nokia.com</u></font></a><font size=1 face="Arial">>,
"</font><a href=mailto:zhang.yujunz@zte.com.cn><font size=1 color=blue face="Arial"><u>zhang.yujunz@zte.com.cn</u></font></a><font size=1 face="Arial">"
<</font><a href=mailto:zhang.yujunz@zte.com.cn><font size=1 color=blue face="Arial"><u>zhang.yujunz@zte.com.cn</u></font></a><font size=1 face="Arial">></font><font size=3 face="sans-serif">
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">抄送</font></div>
<td><font size=1 face="Arial">"</font><a href="mailto:openstack-dev@lists.openstack.org"><font size=1 color=blue face="Arial"><u>openstack-dev@lists.openstack.org</u></font></a><font size=1 face="Arial">"
<</font><a href="mailto:openstack-dev@lists.openstack.org"><font size=1 color=blue face="Arial"><u>openstack-dev@lists.openstack.org</u></font></a><font size=1 face="Arial">></font><font size=3 face="sans-serif">
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">主题</font></div>
<td><font size=1 face="Arial">RE: [openstack-dev] [vitrage] about aodh
alarm notification</font></table>
<br><font size=3 face="sans-serif"> </font>
<p>
<br>
<table width=100%>
<tr valign=top>
<td width=50%>
<td width=50%></table>
<br></table>
<br><font size=3 face="sans-serif"><br>
<br>
<br>
Hi Dong,<br>
<br>
Good question, I will explain how you can handle this problem in Vitrage.<br>
<br>
You don't need the cache mechanism here, it is much more simplier.<br>
<br>
When you get a new alarm with get_all or by notification of 'alarm.creation'
you will create the alarm with its correct data \ properties.<br>
Then when you receive a notification of 'alarm.rule_change', 'alarm.state_transition',
'alarm.deletion' all you need to do is only to update the correct property
that has changed in the aodh vertex.<br>
Thus, When you create the Vertex in the transformer, you know the aodh
uuid so you know the vitrage_id, and you can pass only the properties that
you have received and want to update (and not all the properties that there
in the aodh vertex). All the other properties that you haven't received
that haven't changed you can pass them as None and they won't be changed
in the graph.<br>
<br>
Hope this explains everything.<br>
If you have other questions, you are more than welcome to ask.<br>
<br>
Best Regrads,<br>
Alexey<br>
<br>
<br>
From: </font><a href=mailto:dong.wenjuan@zte.com.cn><font size=3 color=blue face="sans-serif"><u>dong.wenjuan@zte.com.cn</u></font></a><font size=3 face="sans-serif">
[</font><a href=mailto:dong.wenjuan@zte.com.cn><font size=3 color=blue face="sans-serif"><u>mailto:dong.wenjuan@zte.com.cn</u></font></a><font size=3 face="sans-serif">]
<br>
Sent: Thursday, November 24, 2016 9:39 AM<br>
To: Afek, Ifat (Nokia - IL); Weyl, Alexey (Nokia - IL); Hefetz, Idan (Nokia
- IL); </font><a href=mailto:zhang.yujunz@zte.com.cn><font size=3 color=blue face="sans-serif"><u>zhang.yujunz@zte.com.cn</u></font></a><font size=3 face="sans-serif"><br>
Cc: </font><a href="mailto:openstack-dev@lists.openstack.org"><font size=3 color=blue face="sans-serif"><u>openstack-dev@lists.openstack.org</u></font></a><font size=3 face="sans-serif"><br>
Subject: [openstack-dev] [vitrage] about aodh alarm notification<br>
<br>
<br>
Hi Vitrages, <br>
<br>
Currently there are four aodh alarm notifications we need to handle: <br>
'alarm.creation', 'alarm.rule_change', 'alarm.state_transition', 'alarm.deletion'
<br>
<br>
Only the alarm.creation notification carries the alarm detail info. <br>
So we need to cache the alarm info. <br>
When we receive other notifications, we can fill all fields from the cache.
<br>
<br>
But if the alarm creates before vitrage servies startup, we can't get the
alarm.creation notification. <br>
So we need to get_all when vitrage services startup. <br>
As `SnapshotsService` will get all alarms info when it startup. <br>
But `SnapshotsService` and `ListenerService` are two services, <br>
they can't share the cache data unless they communicate with each other.
<br>
This wil be a big change. <br>
<br>
Are there any other better solutions? I need some help, thanks :) <br>
<br>
BR, <br>
dwj</font>
<br>