<div dir="ltr">Hi Ruben,<div><br></div><div>Looked like there were still multiple changes, so I squashed them into 1 and fixed up the requirements.txt file.  (You should only need to add the python-magnumclient to the requirements.txt file.)  I also abandoned one that was incorporated into the one 1 fix.  Here it is.  Now the community should give you reviews.</div><div><br></div><div><a href="https://review.openstack.org/#/c/404222">https://review.openstack.org/#/c/404222</a><br></div><div><br></div><div>Tim</div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Dec 9, 2016 at 3:06 PM Ruben <<a href="mailto:r.manganiello1@studenti.unisa.it">r.manganiello1@studenti.unisa.it</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Tim,<br class="gmail_msg">
sorry for the late, but I've had a busy week.<br class="gmail_msg">
Anyway, I've tried to add the magnum_driver to review into a single commit.<br class="gmail_msg">
I don't know if I have been able..<br class="gmail_msg">
<br class="gmail_msg">
Ruben<br class="gmail_msg">
<br class="gmail_msg">
----- Messaggio originale -----<br class="gmail_msg">
Da: "Tim Hinrichs" <<a href="mailto:tim@styra.com" class="gmail_msg" target="_blank">tim@styra.com</a>><br class="gmail_msg">
A: "Ruben" <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
Cc: <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>, "timothy l hinrichs" <<a href="mailto:timothy.l.hinrichs@gmail.com" class="gmail_msg" target="_blank">timothy.l.hinrichs@gmail.com</a>><br class="gmail_msg">
Inviato: Mercoledì, 30 novembre 2016 22:04:32<br class="gmail_msg">
Oggetto: Re: [Congress] Magnum_driver<br class="gmail_msg">
<br class="gmail_msg">
Hi Ruben,<br class="gmail_msg">
<br class="gmail_msg">
What you're doing is correct.  The downside is that it creates a new commit<br class="gmail_msg">
for every change you make, and all of those commits show up on gerrit.  In<br class="gmail_msg">
OpenStack (and other projects I've seen that use Gerrit for code reviews)<br class="gmail_msg">
you squash those commits into 1 change so that it's easier for reviewers to<br class="gmail_msg">
see the change as a whole.  (Projects that use Github for code reviews do<br class="gmail_msg">
more like what you're doing now).  To see your<br class="gmail_msg">
<br class="gmail_msg">
Here's a blog showing you what to do...<br class="gmail_msg">
<a href="https://ariejan.net/2011/07/05/git-squash-your-latests-commits-into-one/" rel="noreferrer" class="gmail_msg" target="_blank">https://ariejan.net/2011/07/05/git-squash-your-latests-commits-into-one/</a><br class="gmail_msg">
<br class="gmail_msg">
You can probably do<br class="gmail_msg">
<br class="gmail_msg">
$ git rebase -i<br class="gmail_msg">
<br class="gmail_msg">
and then follow the instructions in the blog that say you replace the<br class="gmail_msg">
'pick' for all the commits after the first with 'squash' (or 's' for<br class="gmail_msg">
short).  So something like the following.<br class="gmail_msg">
<br class="gmail_msg">
pick f392171 Added new feature X squash ba9dd9a Added new elements to page<br class="gmail_msg">
design squash df71a27 Updated CSS for new elements<br class="gmail_msg">
<br class="gmail_msg">
After that, you should be able to do ...<br class="gmail_msg">
<br class="gmail_msg">
$ git review<br class="gmail_msg">
<br class="gmail_msg">
Tim<br class="gmail_msg">
<br class="gmail_msg">
On Wed, Nov 30, 2016 at 5:23 AM Ruben <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
wrote:<br class="gmail_msg">
<br class="gmail_msg">
> Hi Tim,<br class="gmail_msg">
> what should I do to squash all the commits into a single one?<br class="gmail_msg">
><br class="gmail_msg">
> To add the code to review I made:<br class="gmail_msg">
><br class="gmail_msg">
> git add <file><br class="gmail_msg">
> git commit<br class="gmail_msg">
> git review<br class="gmail_msg">
><br class="gmail_msg">
> Isn't it correct?<br class="gmail_msg">
><br class="gmail_msg">
> Ruben<br class="gmail_msg">
><br class="gmail_msg">
> ----- Messaggio originale -----<br class="gmail_msg">
> Da: "Tim Hinrichs" <<a href="mailto:tim@styra.com" class="gmail_msg" target="_blank">tim@styra.com</a>><br class="gmail_msg">
> A: "Ruben" <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
> Cc: <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>, "timothy l hinrichs" <<br class="gmail_msg">
> <a href="mailto:timothy.l.hinrichs@gmail.com" class="gmail_msg" target="_blank">timothy.l.hinrichs@gmail.com</a>><br class="gmail_msg">
> Inviato: Mercoledì, 30 novembre 2016 2:34:22<br class="gmail_msg">
> Oggetto: Re: [Congress] Magnum_driver<br class="gmail_msg">
><br class="gmail_msg">
> Hi Ruben,<br class="gmail_msg">
><br class="gmail_msg">
> I left a comment on one of the changes; after you take care of that I'll<br class="gmail_msg">
> take a closer look at the code.  Let me know if you have questions.<br class="gmail_msg">
><br class="gmail_msg">
> Tim<br class="gmail_msg">
><br class="gmail_msg">
> On Tue, Nov 29, 2016 at 4:06 AM Ruben <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
> wrote:<br class="gmail_msg">
><br class="gmail_msg">
> > Hi Tim,<br class="gmail_msg">
> > I've added the code of magnum_driver and its unit test to review.<br class="gmail_msg">
> > It seems everything works.<br class="gmail_msg">
> ><br class="gmail_msg">
> > Ruben<br class="gmail_msg">
> ><br class="gmail_msg">
> > ----- Original Message -----<br class="gmail_msg">
> > From: "Tim Hinrichs" <<a href="mailto:tim@styra.com" class="gmail_msg" target="_blank">tim@styra.com</a>><br class="gmail_msg">
> > To: "Ruben" <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
> > Cc: <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>, "timothy l hinrichs" <<br class="gmail_msg">
> > <a href="mailto:timothy.l.hinrichs@gmail.com" class="gmail_msg" target="_blank">timothy.l.hinrichs@gmail.com</a>><br class="gmail_msg">
> > Sent: Saturday, November 26, 2016 12:48:12 AM<br class="gmail_msg">
> > Subject: Re: [Congress] Magnum_driver<br class="gmail_msg">
> ><br class="gmail_msg">
> > Definitely push that code up into Gerrit so we can all take a look.  Data<br class="gmail_msg">
> > like pods and containers is probably the most valuable data from Magnum,<br class="gmail_msg">
> so<br class="gmail_msg">
> > I'd definitely recommend adding that.  But push the code you have to<br class="gmail_msg">
> Gerrit<br class="gmail_msg">
> > first.  (As long as you leave the ChangeId the same each time you push to<br class="gmail_msg">
> > Gerrit, Gerrit will keep all of the versions you pushed organized<br class="gmail_msg">
> together,<br class="gmail_msg">
> > yet keep the versions separate.)<br class="gmail_msg">
> ><br class="gmail_msg">
> > Tim<br class="gmail_msg">
> ><br class="gmail_msg">
> > On Fri, Nov 25, 2016 at 3:06 PM Ruben <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
> > wrote:<br class="gmail_msg">
> ><br class="gmail_msg">
> > > Hi Tim,<br class="gmail_msg">
> > > You are great. It works! Thanks a lot!<br class="gmail_msg">
> > > I've also solved the problem with py27. The unit test seems to work.<br class="gmail_msg">
> > > The only thing that seems not to work is populate the 'clusters_links'<br class="gmail_msg">
> > and<br class="gmail_msg">
> > > 'cluster_templates_links' tables: they are empty.<br class="gmail_msg">
> > > Also, the 'labels' table is empty.<br class="gmail_msg">
> > > I've no errors anyway.<br class="gmail_msg">
> > > Are these problems according to you?<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > Should I to try to add the translation of pods, containers and<br class="gmail_msg">
> services?<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > I've add the code to review.<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > Ruben<br class="gmail_msg">
> > > ----- Original Message -----<br class="gmail_msg">
> > > From: "Tim Hinrichs" <<a href="mailto:tim@styra.com" class="gmail_msg" target="_blank">tim@styra.com</a>><br class="gmail_msg">
> > > To: "Ruben" <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
> > > Cc: <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>, "timothy l hinrichs" <<br class="gmail_msg">
> > > <a href="mailto:timothy.l.hinrichs@gmail.com" class="gmail_msg" target="_blank">timothy.l.hinrichs@gmail.com</a>><br class="gmail_msg">
> > > Sent: Friday, November 25, 2016 10:36:29 PM<br class="gmail_msg">
> > > Subject: Re: [Congress] Magnum_driver<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > Hi Ruben,<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > Glad you got that worked out.  Once in a while I end up deleting my<br class="gmail_msg">
> .tox<br class="gmail_msg">
> > > dir because it gets out of date.  I guess that's what the --recreate<br class="gmail_msg">
> > option<br class="gmail_msg">
> > > to tox does.  So I learned something.  :)<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > The new error message looks to be saying that an object of type<br class="gmail_msg">
> 'Cluster'<br class="gmail_msg">
> > > cannot be iterated.  Congress's _translate_clusters method assumes that<br class="gmail_msg">
> > > what you give it is basically JSON (arrays, dictionaries, numbers,<br class="gmail_msg">
> > strings,<br class="gmail_msg">
> > > bools).   In this case Congress is trying to iterate over the keys of a<br class="gmail_msg">
> > > dictionary but is getting a 'Cluster' Python object instead.  What's<br class="gmail_msg">
> > > happening is that when you do the cluster.list() (or whatever it's<br class="gmail_msg">
> > called)<br class="gmail_msg">
> > > on the magnum-python you're getting back a list of Cluster Python<br class="gmail_msg">
> objects<br class="gmail_msg">
> > > instead of a list of dictionaries.<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > To fix the problem, you'll want to take the results of cluster.list()<br class="gmail_msg">
> and<br class="gmail_msg">
> > > translate it into a list of dictionaries, and then hand that off to<br class="gmail_msg">
> > > _translate_clusters.  Probably you'll need to do the same for the<br class="gmail_msg">
> > > cluster_template.  So instead of ...<br class="gmail_msg">
> > ><br class="gmail_msg">
> > >         clusters_method = lambda: self._translate_clusters(<br class="gmail_msg">
> > >             {'clusters': self.magnum.clusters.list()})<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > You'll want to do something like ...<br class="gmail_msg">
> > ><br class="gmail_msg">
> > >         clusters_method = lambda: self._translate_clusters(<br class="gmail_msg">
> > >             {'clusters': [x.__dict__ for x in<br class="gmail_msg">
> > self.magnum.clusters.list()]<br class="gmail_msg">
> > >  })<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > Or at least, that's what I'd start trying.  __dict__ grabs all the<br class="gmail_msg">
> fields<br class="gmail_msg">
> > > of an object and returns a dictionary.  (If some of the values of that<br class="gmail_msg">
> > > dictionary are also Python objects, then you might need something<br class="gmail_msg">
> that's<br class="gmail_msg">
> > > more complicated to recursively walk the result of clusters.list() and<br class="gmail_msg">
> > > translate everything into lists and dictionaries.  And I'm not sure<br class="gmail_msg">
> that<br class="gmail_msg">
> > > __dict__ will give you exactly what you want, but it's worth a try.).<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > Tim<br class="gmail_msg">
> > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> > > On Thu, Nov 24, 2016 at 12:11 PM Ruben <<br class="gmail_msg">
> <a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a><br class="gmail_msg">
> > ><br class="gmail_msg">
> > > wrote:<br class="gmail_msg">
> > ><br class="gmail_msg">
> > > > Hi Tim,<br class="gmail_msg">
> > > > I solved the problem with:<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > tox --recreate -e py27<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Now I no have the error on the import. The unit test still has some<br class="gmail_msg">
> > > > errors, but I don't know why..<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Anyway, I've this error when I try to add the magnum_driver:<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > 2016-11-24 20:56:27.191 INFO congress.datasources.datasource_driver<br class="gmail_msg">
> [-]<br class="gmail_msg">
> > > > magnum:: polling<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.192 DEBUG congress.datasources.datasource_driver<br class="gmail_msg">
> > [-]<br class="gmail_msg">
> > > > update table clusters. from (pid=18720) update_from_datasource<br class="gmail_msg">
> > > > /opt/stack/congress/congress/datasources/datasource_driver.py:1370<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.427 DEBUG congress.datasources.magnum_driver [-]<br class="gmail_msg">
> > > > CLUSTERS: {'clusters': [<Clusters {u'status': u'CREATE_FAILED',<br class="gmail_msg">
> > > > u'cluster_template_id': u'8d25a1ed-faa6-4305-a6a1-6559708c805b',<br class="gmail_msg">
> > u'uuid':<br class="gmail_msg">
> > > > u'1634beb9-25de-4cdd-bafa-67537069f0cc', u'links': [{u'href': u'<br class="gmail_msg">
> > > ><br class="gmail_msg">
> <a href="http://10.0.2.15:9511/v1/clusters/1634beb9-25de-4cdd-bafa-67537069f0cc" rel="noreferrer" class="gmail_msg" target="_blank">http://10.0.2.15:9511/v1/clusters/1634beb9-25de-4cdd-bafa-67537069f0cc</a><br class="gmail_msg">
> > ',<br class="gmail_msg">
> > > > u'rel': u'self'}, {u'href': u'<br class="gmail_msg">
> > > > <a href="http://10.0.2.15:9511/clusters/1634beb9-25de-4cdd-bafa-67537069f0cc" rel="noreferrer" class="gmail_msg" target="_blank">http://10.0.2.15:9511/clusters/1634beb9-25de-4cdd-bafa-67537069f0cc</a><br class="gmail_msg">
> ',<br class="gmail_msg">
> > > > u'rel': u'bookmark'}], u'stack_id':<br class="gmail_msg">
> > > > u'17f1248d-286a-4fd4-9639-af5773670f03', u'master_count': 1,<br class="gmail_msg">
> > u'keypair':<br class="gmail_msg">
> > > > u'testkey', u'node_count': 1, u'create_timeout': 60, u'name':<br class="gmail_msg">
> > > > u'k8s-cluster'}>]} from (pid=18720) _translate_clusters<br class="gmail_msg">
> > > > /opt/stack/congress/congress/datasources/magnum_driver.py:165<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 ERROR congress.datasources.datasource_driver<br class="gmail_msg">
> > [-]<br class="gmail_msg">
> > > > Datasource driver raised exception<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > > Traceback (most recent call last):<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 1384, in poll<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  self.update_from_datasource()  # sets self.state<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 1371, in update_from_datasource<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  self.update_methods[registered_table]()<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File "/opt/stack/congress/congress/datasources/magnum_driver.py",<br class="gmail_msg">
> line<br class="gmail_msg">
> > > > 150, in <lambda><br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  {'clusters': self.magnum.clusters.list()})<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File "/opt/stack/congress/congress/datasources/datasource_utils.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 57, in inner<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  result = f(self, raw_data, *args, **kw)<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File "/opt/stack/congress/congress/datasources/magnum_driver.py",<br class="gmail_msg">
> line<br class="gmail_msg">
> > > > 167, in _translate_clusters<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  obj['clusters'], MagnumDriver.clusters_translator)<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 1048, in convert_objs<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  rows, _ = DataSourceDriver.convert_obj(o, translator)<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 1021, in convert_obj<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  parent_row_dict)<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 994, in _populate_translator_data_hdict<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  return cls._populate_hdict(translator, obj, parent_row_dict)<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 924, in _populate_hdict<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  cls._get_value(obj, field, selector), extract_fn)<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  File<br class="gmail_msg">
> "/opt/stack/congress/congress/datasources/datasource_driver.py",<br class="gmail_msg">
> > > line<br class="gmail_msg">
> > > > 693, in _get_value<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > >  if field in o:<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > > TypeError: argument of type 'Cluster' is not iterable<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 TRACE congress.datasources.datasource_driver<br class="gmail_msg">
> > > > 2016-11-24 20:56:27.435 INFO congress.datasources.datasource_driver<br class="gmail_msg">
> [-]<br class="gmail_msg">
> > > > magnum:: finished polling<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Any suggestions to solve it?<br class="gmail_msg">
> > > > I've add the code to review.<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Ruben<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > ----- Original Message -----<br class="gmail_msg">
> > > > From: "Ruben" <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>><br class="gmail_msg">
> > > > To: "Tim Hinrichs" <<a href="mailto:tim@styra.com" class="gmail_msg" target="_blank">tim@styra.com</a>><br class="gmail_msg">
> > > > Cc: <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>, "timothy l hinrichs" <<br class="gmail_msg">
> > > > <a href="mailto:timothy.l.hinrichs@gmail.com" class="gmail_msg" target="_blank">timothy.l.hinrichs@gmail.com</a>><br class="gmail_msg">
> > > > Sent: Thursday, November 24, 2016 12:44:38 AM<br class="gmail_msg">
> > > > Subject: Re: [Congress] Magnum_driver<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Hi Tim,<br class="gmail_msg">
> > > > I already have 'pyhton-magnumclient' in the requirements.txt file,<br class="gmail_msg">
> but<br class="gmail_msg">
> > I<br class="gmail_msg">
> > > > still have the error.<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > This is the /opt/stack/congress/requirements.txt file:<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > "# The order of packages is significant, because pip processes them<br class="gmail_msg">
> in<br class="gmail_msg">
> > > the<br class="gmail_msg">
> > > > order<br class="gmail_msg">
> > > > # of appearance. Changing the order has an impact on the overall<br class="gmail_msg">
> > > > integration<br class="gmail_msg">
> > > > # process, which may cause wedges in the gate later.<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Babel>=2.3.4 # BSD<br class="gmail_msg">
> > > > eventlet!=0.18.3,>=0.18.2 # MIT<br class="gmail_msg">
> > > > PuLP>=1.4.1 # MIT<br class="gmail_msg">
> > > > keystoneauth1>=2.14.0 # Apache-2.0<br class="gmail_msg">
> > > > keystonemiddleware!=4.5.0,>=4.2.0 # Apache-2.0<br class="gmail_msg">
> > > > Paste # MIT<br class="gmail_msg">
> > > > PasteDeploy>=1.5.0 # MIT<br class="gmail_msg">
> > > > pbr>=1.6 # Apache-2.0<br class="gmail_msg">
> > > > python-keystoneclient>=3.6.0 # Apache-2.0<br class="gmail_msg">
> > > > python-heatclient>=1.5.0 # Apache-2.0<br class="gmail_msg">
> > > > python-magnumclient<br class="gmail_msg">
> > > > python-muranoclient>=0.8.2 # Apache-2.0<br class="gmail_msg">
> > > > python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0<br class="gmail_msg">
> > > > python-neutronclient>=5.1.0 # Apache-2.0<br class="gmail_msg">
> > > > python-ceilometerclient>=2.5.0 # Apache-2.0<br class="gmail_msg">
> > > > python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0<br class="gmail_msg">
> > > > python-swiftclient>=2.2.0 # Apache-2.0<br class="gmail_msg">
> > > > python-ironicclient>=1.6.0 # Apache-2.0<br class="gmail_msg">
> > > > alembic>=0.8.4 # MIT<br class="gmail_msg">
> > > > python-dateutil>=2.4.2 # BSD<br class="gmail_msg">
> > > > python-glanceclient>=2.5.0 # Apache-2.0<br class="gmail_msg">
> > > > Routes!=2.0,!=2.1,!=2.3.0,>=1.12.3;python_version=='2.7' # MIT<br class="gmail_msg">
> > > > Routes!=2.0,!=2.3.0,>=1.12.3;python_version!='2.7' # MIT<br class="gmail_msg">
> > > > six>=1.9.0 # MIT<br class="gmail_msg">
> > > > oslo.concurrency>=3.8.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.config!=3.18.0,>=3.14.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.context>=2.9.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.db!=4.13.1,!=4.13.2,>=4.11.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.messaging>=5.2.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.policy>=1.15.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.serialization>=1.10.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.service>=1.10.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.utils>=3.18.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.middleware>=3.0.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.vmware>=2.11.0 # Apache-2.0<br class="gmail_msg">
> > > > oslo.log>=3.11.0 # Apache-2.0<br class="gmail_msg">
> > > > WebOb>=1.6.0 # MIT"<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > ----- Original Message -----<br class="gmail_msg">
> > > > From: "Tim Hinrichs" <<a href="mailto:tim@styra.com" class="gmail_msg" target="_blank">tim@styra.com</a>><br class="gmail_msg">
> > > > To: "Ruben" <<a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a>>,<br class="gmail_msg">
> > > > <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
> > > > Cc: "timothy l hinrichs" <<a href="mailto:timothy.l.hinrichs@gmail.com" class="gmail_msg" target="_blank">timothy.l.hinrichs@gmail.com</a>><br class="gmail_msg">
> > > > Sent: Wednesday, November 23, 2016 11:44:40 PM<br class="gmail_msg">
> > > > Subject: Re: [Congress] Magnum_driver<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Ruben,<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > All the software that gets imported by your code needs to be listed<br class="gmail_msg">
> in<br class="gmail_msg">
> > > > requirements.txt so that when tox runs, it installs that software.<br class="gmail_msg">
> > When<br class="gmail_msg">
> > > I<br class="gmail_msg">
> > > > did some debugging for you I made the necessary change, so if you add<br class="gmail_msg">
> > > that<br class="gmail_msg">
> > > > back into your change, that error should disappear.<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > <a href="https://review.openstack.org/#/c/397150/" rel="noreferrer" class="gmail_msg" target="_blank">https://review.openstack.org/#/c/397150/</a><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > Tim<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > On Wed, Nov 23, 2016 at 12:29 PM Ruben <<br class="gmail_msg">
> > <a href="mailto:r.manganiello1@studenti.unisa.it" class="gmail_msg" target="_blank">r.manganiello1@studenti.unisa.it</a><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > wrote:<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > > > > Hi everybody,<br class="gmail_msg">
> > > > > I've trying to run the unit test of the magnum_driver.<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > I make:<br class="gmail_msg">
> > > > > -cd /opt/stack/congress/<br class="gmail_msg">
> > > > > -tox -epy27<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > but I have error with the import.<br class="gmail_msg">
> > > > > This is the output:<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > "py27 develop-inst-noop: /opt/stack/congress<br class="gmail_msg">
> > > > > py27 installed:<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> alabaster==0.7.9,alembic==0.8.8,amqp==1.4.9,anyjson==0.3.3,appdirs==1.4.0,Babel==2.3.4,cachetools==2.0.0,cffi==1.9.1,cliff==2.2.0,cmd2==0.6.9,-e<br class="gmail_msg">
> > > > > git+<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> <a href="http://git.openstack.org/openstack/congress@b2d96b56f721c941e85db565d203df008c455b19#egg=congress,contextlib2==0.5.4,coverage==4.2,cryptography==1.5.3,debtcollector==1.9.0,decorator==4.0.10,docutils==0.12,dogpile.cache==0.6.2,enum34==1.1.6,eventlet==0.19.0,extras==1.0.0,fasteners==0.14.1,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,functools32==3.2.3.post2,futures==3.0.5,futurist==0.19.0,greenlet==0.4.10,hacking==0.10.2,idna==2.1,ipaddress==1.0.17,iso8601==0.1.11,Jinja2==2.8,jsonpatch==1.14,jsonpointer==1.10,jsonschema==2.5.1,keystoneauth1==2.15.0,keystonemiddleware==4.10.0,kombu==3.0.37,linecache2==1.0.0,lxml==3.6.4,Mako==1.0.6,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,monotonic==1.2,mox3==0.18.0,msgpack-python==0.4.8,netaddr==0.7.18,netifaces==0.10.5,openstacksdk==0.9.9,os-client-config==1.22.0,osc-lib==1.2.0,oslo.concurrency==3.15.0,oslo.config==3.19.0,oslo.context==2.10.0,oslo.db==4.14.0,oslo.i18n==3.10.0,oslo.log==3.17.0,oslo.messaging==5.12.0,oslo.middleware==3.20.0,oslo.policy==1.16.0,oslo.serialization==2.14.0,oslo.service==1.17.0,oslo.utils==3.18.0,oslo.vmware==2.15.0,oslosphinx==4.8.0,oslotest==2.11.0,Paste==2.0.3,PasteDeploy==1.5.2,pbr==1.10.0,pep8==1.5.7,pika==0.10.0,pika-pool==0.1.3,ply==3.9,positional==1.1.1,prettytable==0.7.2,PuLP==1.6.1,pyasn1==0.1.9,pycadf==2.4.0,pycparser==2.17,pyflakes==0.8.1,Pygments==2.1.3,pyinotify==0.9.6,pyOpenSSL==16.2.0,pyparsing==1.5.7,python-ceilometerclient==2.7.0,python-cinderclient==1.9.0,python-dateutil==2.6.0,python-editor==1.0.1,python-glanceclient==2.5.0,python-heatclient==1.5.0,python-ironicclient==1.8.0,python-keystoneclient==3.6.0,python-mimeparse==1.6.0,python-muranoclient==0.11.1,python-neutronclient==6.0.0,python-novaclient==6.0.0,python-openstackclient==3.3.0,python-subunit==1.2.0,python-swiftclient==3.1.0,pytz==2016.7,PyYAML==3.12,reno==1.8.0,repoze.lru==0.6,requests==2.11.1,requests-mock==1.1.0,requestsexceptions==1.1.3,retrying==1.3.3,rfc3986==0.4.1,Routes==2.3.1,simplejson==3.10.0,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,SQLAlchemy==1.1.3,sqlalchemy-migrate==0.10.0,sqlparse==0.2.2,stevedore==1.18.0,suds-jurko==0.6,Tempita==0.5.2,tenacity==3.3.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unicodecsv==0.14.1,unittest2==1.1.0,urllib3==1.19,warlock==1.2.0,WebOb==1.6.2,wrapt==1.10.8,yaql==1.1.1" rel="noreferrer" class="gmail_msg" target="_blank">http://git.openstack.org/openstack/congress@b2d96b56f721c941e85db565d203df008c455b19#egg=congress,contextlib2==0.5.4,coverage==4.2,cryptography==1.5.3,debtcollector==1.9.0,decorator==4.0.10,docutils==0.12,dogpile.cache==0.6.2,enum34==1.1.6,eventlet==0.19.0,extras==1.0.0,fasteners==0.14.1,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,functools32==3.2.3.post2,futures==3.0.5,futurist==0.19.0,greenlet==0.4.10,hacking==0.10.2,idna==2.1,ipaddress==1.0.17,iso8601==0.1.11,Jinja2==2.8,jsonpatch==1.14,jsonpointer==1.10,jsonschema==2.5.1,keystoneauth1==2.15.0,keystonemiddleware==4.10.0,kombu==3.0.37,linecache2==1.0.0,lxml==3.6.4,Mako==1.0.6,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,monotonic==1.2,mox3==0.18.0,msgpack-python==0.4.8,netaddr==0.7.18,netifaces==0.10.5,openstacksdk==0.9.9,os-client-config==1.22.0,osc-lib==1.2.0,oslo.concurrency==3.15.0,oslo.config==3.19.0,oslo.context==2.10.0,oslo.db==4.14.0,oslo.i18n==3.10.0,oslo.log==3.17.0,oslo.messaging==5.12.0,oslo.middleware==3.20.0,oslo.policy==1.16.0,oslo.serialization==2.14.0,oslo.service==1.17.0,oslo.utils==3.18.0,oslo.vmware==2.15.0,oslosphinx==4.8.0,oslotest==2.11.0,Paste==2.0.3,PasteDeploy==1.5.2,pbr==1.10.0,pep8==1.5.7,pika==0.10.0,pika-pool==0.1.3,ply==3.9,positional==1.1.1,prettytable==0.7.2,PuLP==1.6.1,pyasn1==0.1.9,pycadf==2.4.0,pycparser==2.17,pyflakes==0.8.1,Pygments==2.1.3,pyinotify==0.9.6,pyOpenSSL==16.2.0,pyparsing==1.5.7,python-ceilometerclient==2.7.0,python-cinderclient==1.9.0,python-dateutil==2.6.0,python-editor==1.0.1,python-glanceclient==2.5.0,python-heatclient==1.5.0,python-ironicclient==1.8.0,python-keystoneclient==3.6.0,python-mimeparse==1.6.0,python-muranoclient==0.11.1,python-neutronclient==6.0.0,python-novaclient==6.0.0,python-openstackclient==3.3.0,python-subunit==1.2.0,python-swiftclient==3.1.0,pytz==2016.7,PyYAML==3.12,reno==1.8.0,repoze.lru==0.6,requests==2.11.1,requests-mock==1.1.0,requestsexceptions==1.1.3,retrying==1.3.3,rfc3986==0.4.1,Routes==2.3.1,simplejson==3.10.0,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,SQLAlchemy==1.1.3,sqlalchemy-migrate==0.10.0,sqlparse==0.2.2,stevedore==1.18.0,suds-jurko==0.6,Tempita==0.5.2,tenacity==3.3.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unicodecsv==0.14.1,unittest2==1.1.0,urllib3==1.19,warlock==1.2.0,WebOb==1.6.2,wrapt==1.10.8,yaql==1.1.1</a><br class="gmail_msg">
> > > > > py27<br class="gmail_msg">
> > > > > <<br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> <a href="http://git.openstack.org/openstack/congress@b2d96b56f721c941e85db565d203df008c455b19#egg=congress,contextlib2==0.5.4,coverage==4.2,cryptography==1.5.3,debtcollector==1.9.0,decorator==4.0.10,docutils==0.12,dogpile.cache==0.6.2,enum34==1.1.6,eventlet==0.19.0,extras==1.0.0,fasteners==0.14.1,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,functools32==3.2.3.post2,futures==3.0.5,futurist==0.19.0,greenlet==0.4.10,hacking==0.10.2,idna==2.1,ipaddress==1.0.17,iso8601==0.1.11,Jinja2==2.8,jsonpatch==1.14,jsonpointer==1.10,jsonschema==2.5.1,keystoneauth1==2.15.0,keystonemiddleware==4.10.0,kombu==3.0.37,linecache2==1.0.0,lxml==3.6.4,Mako==1.0.6,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,monotonic==1.2,mox3==0.18.0,msgpack-python==0.4.8,netaddr==0.7.18,netifaces==0.10.5,openstacksdk==0.9.9,os-client-config==1.22.0,osc-lib==1.2.0,oslo.concurrency==3.15.0,oslo.config==3.19.0,oslo.context==2.10.0,oslo.db==4.14.0,oslo.i18n==3.10.0,oslo.log==3.17.0,oslo.messaging==5.12.0,oslo.middleware==3.20.0,oslo.policy==1.16.0,oslo.serialization==2.14.0,oslo.service==1.17.0,oslo.utils==3.18.0,oslo.vmware==2.15.0,oslosphinx==4.8.0,oslotest==2.11.0,Paste==2.0.3,PasteDeploy==1.5.2,pbr==1.10.0,pep8==1.5.7,pika==0.10.0,pika-pool==0.1.3,ply==3.9,positional==1.1.1,prettytable==0.7.2,PuLP==1.6.1,pyasn1==0.1.9,pycadf==2.4.0,pycparser==2.17,pyflakes==0.8.1,Pygments==2.1.3,pyinotify==0.9.6,pyOpenSSL==16.2.0,pyparsing==1.5.7,python-ceilometerclient==2.7.0,python-cinderclient==1.9.0,python-dateutil==2.6.0,python-editor==1.0.1,python-glanceclient==2.5.0,python-heatclient==1.5.0,python-ironicclient==1.8.0,python-keystoneclient==3.6.0,python-mimeparse==1.6.0,python-muranoclient==0.11.1,python-neutronclient==6.0.0,python-novaclient==6.0.0,python-openstackclient==3.3.0,python-subunit==1.2.0,python-swiftclient==3.1.0,pytz==2016.7,PyYAML==3.12,reno==1.8.0,repoze.lru==0.6,requests==2.11.1,requests-mock==1.1.0,requestsexceptions==1.1.3,retrying==1.3.3,rfc3986==0.4.1,Routes==2.3.1,simplejson==3.10.0,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,SQLAlchemy==1.1.3,sqlalchemy-migrate==0.10.0,sqlparse==0.2.2,stevedore==1.18.0,suds-jurko==0.6,Tempita==0.5.2,tenacity==3.3.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unicodecsv==0.14.1,unittest2==1.1.0,urllib3==1.19,warlock==1.2.0,WebOb==1.6.2,wrapt==1.10.8,yaql==1.1.1py27" rel="noreferrer" class="gmail_msg" target="_blank">http://git.openstack.org/openstack/congress@b2d96b56f721c941e85db565d203df008c455b19#egg=congress,contextlib2==0.5.4,coverage==4.2,cryptography==1.5.3,debtcollector==1.9.0,decorator==4.0.10,docutils==0.12,dogpile.cache==0.6.2,enum34==1.1.6,eventlet==0.19.0,extras==1.0.0,fasteners==0.14.1,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,functools32==3.2.3.post2,futures==3.0.5,futurist==0.19.0,greenlet==0.4.10,hacking==0.10.2,idna==2.1,ipaddress==1.0.17,iso8601==0.1.11,Jinja2==2.8,jsonpatch==1.14,jsonpointer==1.10,jsonschema==2.5.1,keystoneauth1==2.15.0,keystonemiddleware==4.10.0,kombu==3.0.37,linecache2==1.0.0,lxml==3.6.4,Mako==1.0.6,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,monotonic==1.2,mox3==0.18.0,msgpack-python==0.4.8,netaddr==0.7.18,netifaces==0.10.5,openstacksdk==0.9.9,os-client-config==1.22.0,osc-lib==1.2.0,oslo.concurrency==3.15.0,oslo.config==3.19.0,oslo.context==2.10.0,oslo.db==4.14.0,oslo.i18n==3.10.0,oslo.log==3.17.0,oslo.messaging==5.12.0,oslo.middleware==3.20.0,oslo.policy==1.16.0,oslo.serialization==2.14.0,oslo.service==1.17.0,oslo.utils==3.18.0,oslo.vmware==2.15.0,oslosphinx==4.8.0,oslotest==2.11.0,Paste==2.0.3,PasteDeploy==1.5.2,pbr==1.10.0,pep8==1.5.7,pika==0.10.0,pika-pool==0.1.3,ply==3.9,positional==1.1.1,prettytable==0.7.2,PuLP==1.6.1,pyasn1==0.1.9,pycadf==2.4.0,pycparser==2.17,pyflakes==0.8.1,Pygments==2.1.3,pyinotify==0.9.6,pyOpenSSL==16.2.0,pyparsing==1.5.7,python-ceilometerclient==2.7.0,python-cinderclient==1.9.0,python-dateutil==2.6.0,python-editor==1.0.1,python-glanceclient==2.5.0,python-heatclient==1.5.0,python-ironicclient==1.8.0,python-keystoneclient==3.6.0,python-mimeparse==1.6.0,python-muranoclient==0.11.1,python-neutronclient==6.0.0,python-novaclient==6.0.0,python-openstackclient==3.3.0,python-subunit==1.2.0,python-swiftclient==3.1.0,pytz==2016.7,PyYAML==3.12,reno==1.8.0,repoze.lru==0.6,requests==2.11.1,requests-mock==1.1.0,requestsexceptions==1.1.3,retrying==1.3.3,rfc3986==0.4.1,Routes==2.3.1,simplejson==3.10.0,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,SQLAlchemy==1.1.3,sqlalchemy-migrate==0.10.0,sqlparse==0.2.2,stevedore==1.18.0,suds-jurko==0.6,Tempita==0.5.2,tenacity==3.3.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unicodecsv==0.14.1,unittest2==1.1.0,urllib3==1.19,warlock==1.2.0,WebOb==1.6.2,wrapt==1.10.8,yaql==1.1.1py27</a><br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > runtests: PYTHONHASHSEED='<a href="tel:(423)%20517-1505" value="+14235171505" class="gmail_msg" target="_blank">4235171505</a> <(423)%20517-1505><br class="gmail_msg">
> <(423)%20517-1505><br class="gmail_msg">
> > <(423)%20517-1505><br class="gmail_msg">
> > > <(423)%20517-1505><br class="gmail_msg">
> > > > <(423)%20517-1505>'<br class="gmail_msg">
> > > > > py27 runtests: commands[0] | find . -type f -name *.py[c|o] -delete<br class="gmail_msg">
> > > > > py27 runtests: commands[1] | python setup.py testr --slowest<br class="gmail_msg">
> > > > --testr-args=<br class="gmail_msg">
> > > > > running testr<br class="gmail_msg">
> > > > > running=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \<br class="gmail_msg">
> > > > > OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \<br class="gmail_msg">
> > > > > OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \<br class="gmail_msg">
> > > > > ${PYTHON:-python} -m subunit.run discover -t ./ ./congress/tests<br class="gmail_msg">
> > --list<br class="gmail_msg">
> > > > > --- import errors ---<br class="gmail_msg">
> > > > > Failed to import test module:<br class="gmail_msg">
> > > > congress.tests.datasources.test_magnum_driver<br class="gmail_msg">
> > > > > Traceback (most recent call last):<br class="gmail_msg">
> > > > >   File<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> "/opt/stack/congress/.tox/py27/local/lib/python2.7/site-packages/unittest2/loader.py",<br class="gmail_msg">
> > > > > line 456, in _find_test_path<br class="gmail_msg">
> > > > >     module = self._get_module_from_name(name)<br class="gmail_msg">
> > > > >   File<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> "/opt/stack/congress/.tox/py27/local/lib/python2.7/site-packages/unittest2/loader.py",<br class="gmail_msg">
> > > > > line 395, in _get_module_from_name<br class="gmail_msg">
> > > > >     __import__(name)<br class="gmail_msg">
> > > > >   File "congress/tests/datasources/test_magnum_driver.py", line 18,<br class="gmail_msg">
> > in<br class="gmail_msg">
> > > > > <module><br class="gmail_msg">
> > > > >     from congress.datasources import magnum_driver<br class="gmail_msg">
> > > > >   File "congress/datasources/magnum_driver.py", line 16, in<br class="gmail_msg">
> <module><br class="gmail_msg">
> > > > >     from magnumclient import client as magnum_client<br class="gmail_msg">
> > > > > ImportError: No module named magnumclient<br class="gmail_msg">
> > > > > Non-zero exit code (2) from test listing.<br class="gmail_msg">
> > > > > error: testr failed (3)<br class="gmail_msg">
> > > > > ERROR: InvocationError: '/opt/stack/congress/.tox/py27/bin/python<br class="gmail_msg">
> > > > setup.py<br class="gmail_msg">
> > > > > testr --slowest --testr-args='<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> __________________________________________________________________________________________________<br class="gmail_msg">
> > > > > summary<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
> __________________________________________________________________________________________________<br class="gmail_msg">
> > > > > ERROR:   py27: commands failed"<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > Pep8 is ok.<br class="gmail_msg">
> > > > > What should I do to solve the error above?<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > Anyway I've errors with the translators..<br class="gmail_msg">
> > > > > I've add the code to review.<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > > Ruben<br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > > ><br class="gmail_msg">
> > > ><br class="gmail_msg">
> > ><br class="gmail_msg">
> ><br class="gmail_msg">
><br class="gmail_msg">
</blockquote></div>