<div dir="ltr">I heard the exrex story from Elisha, though I didn't quite understand the rule of allowed library in OpenStack.<div><br><div>I have also kept it in static datasource, but it was not so convenient to jump over these long files to find the static datasource related function<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Jan 15, 2017 at 5:24 PM Afek, Ifat (Nokia - IL) <<a href="mailto:ifat.afek@nokia.com">ifat.afek@nokia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">







<div bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72" class="gmail_msg">
<div class="m_8238597942106012915WordSection1 gmail_msg">
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg">Hi Yujun,<u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg"><u class="gmail_msg"></u> <u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg">The motivation in building the mocks this way was that we could easily generate a series of events which are different from one another. There used to be a distinction between ‘static fields’
 and ‘dynamic fileds’, and a library named exrex was used to generate random values by regex definitions (e.g. "instance-[0-9]{7}"). We were then contacted by the infra team that exrex was not a known library in OpenStack (did not appear in global-requirements),
 and we decided to remove it. You can still see in the code leftovers from the old implementation.
<u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg"><u class="gmail_msg"></u> <u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg">I’m not sure if all datasources need the ability to generate a series of events. But since this is the way it was built, I decided to keep the structure in the Doctor datasourcde that I’ve
 recently written. <u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg"><u class="gmail_msg"></u> <u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg">I’ll be happy to also hear Elisha’s opinion about it, as he created this mechanism.
<u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg"><u class="gmail_msg"></u> <u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg">Best Regards,<u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg">Ifat.<u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg"><u class="gmail_msg"></u> <u class="gmail_msg"></u></span></p>
<p class="MsoNormal gmail_msg"><span style="font-size:11.0pt;font-family:Calibri" class="gmail_msg"><u class="gmail_msg"></u> <u class="gmail_msg"></u></span></p>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm" class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt"><b class="gmail_msg"><span style="font-family:Calibri;color:black" class="gmail_msg">From:
</span></b><span style="font-family:Calibri;color:black" class="gmail_msg">Yujun Zhang <<a href="mailto:zhangyujun%2Bzte@gmail.com" class="gmail_msg" target="_blank">zhangyujun+zte@gmail.com</a>><br class="gmail_msg">
<b class="gmail_msg">Reply-To: </b>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
<b class="gmail_msg">Date: </b>Friday, 13 January 2017 at 09:43<br class="gmail_msg">
<b class="gmail_msg">To: </b>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
<b class="gmail_msg">Subject: </b>[openstack-dev] [vitrage] code organization for trace generator and<u class="gmail_msg"></u><u class="gmail_msg"></u></span></p>
</div></div></div><div bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72" class="gmail_msg"><div class="m_8238597942106012915WordSection1 gmail_msg">
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt"><u class="gmail_msg"></u> <u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt">Hi, Root Causers <u class="gmail_msg"></u><u class="gmail_msg"></u></p>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt"><u class="gmail_msg"></u> <u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt">In the implementation of static driver unit test, the most difficult part I've encountered is the mock driver and trace generator.<u class="gmail_msg"></u><u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt"><u class="gmail_msg"></u> <u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt">Is there any particular reason to put all mock driver and transformer specs in the same file `trace_generator.py` and `mock_driver.py`? Would it be easier to maintain and extend if we organize the specs and drivers
 in datasource, e.g. `mock.static`, `mock.nova.host` and etc?<u class="gmail_msg"></u><u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt"><u class="gmail_msg"></u> <u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt">--<u class="gmail_msg"></u><u class="gmail_msg"></u></p>
</div>
<div class="gmail_msg">
<p class="MsoNormal gmail_msg" style="margin-left:36.0pt">Yujun<u class="gmail_msg"></u><u class="gmail_msg"></u></p>
</div>
</div>
</div></div><div bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72" class="gmail_msg"><div class="m_8238597942106012915WordSection1 gmail_msg"></div>
</div>

__________________________________________________________________________<br class="gmail_msg">
OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
</blockquote></div></div></div></div>