<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:tax="http://schemas.microsoft.com/sharepoint/taxonomy/soap/" xmlns:tns="http://schemas.microsoft.com/sharepoint/soap/recordsrepository/" xmlns:spsup="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle25
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">I see your point Bart.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">This Jira is an Enhancement Request and fulfilling that should not be done so half way.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">All the APIs in V2 should be changed to defer exception handling to the caller as apparently that is the pythonic way.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Wensley, Barton
<br>
<b>Sent:</b> Monday, February 25, 2019 8:10 AM<br>
<b>To:</b> Lin, Shuicheng; MacDonald, Eric; Liu, Tao; Bailey, Henry Albert (Al)<br>
<b>Cc:</b> Xie, Cindy; starlingx-discuss@lists.starlingx.io<br>
<b>Subject:</b> RE: Improve FM's Python API return data<br>
<b>Importance:</b> High<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I disagree with this approach. Instead of just updating two of the methods, you should be updating all the methods in the FaultAPIs class that could fail in the same way and have them raise an exception. You
 should create a new FaultAPIs_v2 class for the updated methods to avoid impacting existing users. When a user of this API wants to use the new exceptions, they will start using the new class.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><br>
Bart<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Lin, Shuicheng [mailto:shuicheng.lin@intel.com]
<br>
<b>Sent:</b> February 25, 2019 2:58 AM<br>
<b>To:</b> MacDonald, Eric; Liu, Tao; Bailey, Henry Albert (Al); Wensley, Barton<br>
<b>Cc:</b> Xie, Cindy; starlingx-discuss@lists.starlingx.io<br>
<b>Subject:</b> RE: Improve FM's Python API return data<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Based on the comments in patch [0], I will add two new API, get_fault_ex and get_faults_by_id_ex.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I will not add a new class, since all other APIs are kept without change.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">For get_fault_ex and get_faults_by_id_ex:
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">the return value will be alarm list (maybe None).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Exception will be thrown if there is error during API execution.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">[0]: <a href="https://review.openstack.org/637655">
https://review.openstack.org/637655</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Best Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Shuicheng<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Lin, Shuicheng [mailto:shuicheng.lin@intel.com]
<br>
<b>Sent:</b> Wednesday, February 20, 2019 10:41 AM<br>
<b>To:</b> MacDonald, Eric <Eric.MacDonald@windriver.com>; Liu, Tao <Tao.Liu@windriver.com>; Al.Bailey@windriver.com<br>
<b>Cc:</b> Xie, Cindy <cindy.xie@intel.com>; starlingx-discuss@lists.starlingx.io<br>
<b>Subject:</b> Re: [Starlingx-discuss] Improve FM's Python API return data<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Hi Eric,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks for the detail comments.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">In my plan, the return value for get_fault API will be like below:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">(False, None): there is error in the API execution.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">(True, None): API execution correctly, and there is no alarm message.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">(True, Alarm): API execution correctly, and there is alarm message.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I think it should fix the issue you have. Is it right?
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">If you agree on this new API return value change, I will implement it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Best Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Shuicheng<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> MacDonald, Eric [<a href="mailto:Eric.MacDonald@windriver.com">mailto:Eric.MacDonald@windriver.com</a>]
<br>
<b>Sent:</b> Tuesday, February 19, 2019 10:35 PM<br>
<b>To:</b> Lin, Shuicheng <<a href="mailto:shuicheng.lin@intel.com">shuicheng.lin@intel.com</a>>; Liu, Tao <<a href="mailto:Tao.Liu@windriver.com">Tao.Liu@windriver.com</a>><br>
<b>Cc:</b> Xie, Cindy <<a href="mailto:cindy.xie@intel.com">cindy.xie@intel.com</a>><br>
<b>Subject:</b> RE: Improve FM's Python API return data<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I took a look and added comments. I don’t think this update fixes the issue I have.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Lin, Shuicheng [<a href="mailto:shuicheng.lin@intel.com">mailto:shuicheng.lin@intel.com</a>]
<br>
<b>Sent:</b> Monday, February 18, 2019 10:09 PM<br>
<b>To:</b> MacDonald, Eric; Liu, Tao<br>
<b>Cc:</b> Xie, Cindy<br>
<b>Subject:</b> RE: Improve FM's Python API return data<br>
<b>Importance:</b> High<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Resend the mail.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Best Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Shuicheng<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Lin, Shuicheng <br>
<b>Sent:</b> Tuesday, February 19, 2019 9:56 AM<br>
<b>To:</b> Liu, Tao (Wind River) <<a href="mailto:tao.liu@windriver.com">tao.liu@windriver.com</a>>; 'eric.macdonald@windriver.com' <<a href="mailto:eric.macdonald@windriver.com">eric.macdonald@windriver.com</a>><br>
<b>Cc:</b> Xie, Cindy <<a href="mailto:cindy.xie@intel.com">cindy.xie@intel.com</a>><br>
<b>Subject:</b> Improve FM's Python API return data<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Tao/Eric,<o:p></o:p></p>
<p class="MsoNormal">For <a href="https://storyboard.openstack.org/#!/story/2004859">
story 2004859</a>, I plan to modify the get_fault api return value as a tuple.<o:p></o:p></p>
<p class="MsoNormal">(True/False, Alarm)<o:p></o:p></p>
<p class="MsoNormal">Alarm is valid only when the 1<sup>st</sup> item is True.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sample code is uploaded for you early review:<o:p></o:p></p>
<p class="MsoNormal">Stx-fault: <a href="https://review.openstack.org/637655">https://review.openstack.org/637655</a><o:p></o:p></p>
<p class="MsoNormal">Stx-integ: <a href="https://review.openstack.org/637656">https://review.openstack.org/637656</a><o:p></o:p></p>
<p class="MsoNormal">Could you help review it and share your thought?<o:p></o:p></p>
<p class="MsoNormal">If you agree on it, I will implement the code and test it.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">For test, I will try to kill fmManager/modify its listening port to simulate the failure case.<o:p></o:p></p>
<p class="MsoNormal">For the api call outside of stx-fault, I may try to call it manually to verify.<o:p></o:p></p>
<p class="MsoNormal">Please share me if there is better verify method.<o:p></o:p></p>
<p class="MsoNormal">Thanks.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best Regards<o:p></o:p></p>
<p class="MsoNormal">Shuicheng<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>