[openstack-dev] [Manila] Ask for help on supportting the 3-rd party CI for HDFS driver

Philipp Marek philipp.marek at linbit.com
Thu Jun 11 05:51:55 UTC 2015


Hi all,

> > Thanks Jeremy.  I assume Chen could follow this example to add a
> > job for the HDFS driver?
> > 
> > https://review.openstack.org/#/c/188744/
> 
> That's a fine short-form answer. The longer answer is to solicit
> input from some of the people who have done similar work, so that
> mistakes can be learned from rather than repeated.
As requested, here's some input from me.

Oh well, where to start? Perhaps at the beginning ...

Openstack has quite a lot of documentation - in Wiki pages, code examples, 
and so on. Navigating all of that (well, even finding the relevant pieces) 
is not that easy - and some parts are wrong in details or contradict each 
other. Unavoidable for a project of this size, but still annoying for 
newcomers.

What I'd very much have liked to see was some big-picture overview how the 
processes and configurations work[1]. Some short description what the files 
in the project-config mean, what they are used for, etc., to get a basic 
understanding how that works _without_ needing to learn all the auxillary 
tools (of which there are quite a few - Zuul, Jenkins, Puppet, ...).

What *I* did get wrong (and this an important point to learn from!) is that 
even things like the devstack plugin name matters. This isn't written 
anywhere, but if you get it wrong then the various jobs won't match the 
generated check & gate scriptlet names anymore, and then there are some 
more hoops to jump through...[2]


I still stand by my opinion (as voiced in Vancouver) that for such one-off 
things (that contributors are not likely to repeat over and over again) it 
might make sense to have -infra simply *do* them[3].


But let's get back to the topic - what I have learned, resp. what I did 
wrong, so that others can learn.

The quoted change number above is not enough; I've pushed a few updates 
already, so to get a more complete example it might be better to take 
a checkout and to filter by my changes:

    # git log --committer philipp.marek at linbit.com

Looking at the *combined* diff of that might be a first step. Or perhaps 
not, because of the wrong name...


Another idea that I can pass on is that as soon as you've had the first CI 
run, navigate the logfile directory to fetch the local.conf and 
tempest.conf file (which will be compressed), and to look at them. Some 
small errors might be diagnosed from there[4], without needing to spend 
time looking what goes wrong and why.


Anything else? Hmmm... yeah, the last point I can mention is that people on 
IRC (-infra, for that topic) are very helpful. If you're unlucky, they're 
stressed by other problems and won't have that much time; but generally, 
you'll receive answers quite fast.
(Unless you're in the wrong timezone. AJaeger is very helpful in the CET 
zones - but he's alone [I guess], and so it's a game of luck again. Having 
some more -infra cores distributed around the globe would be nice.)

Well - you have to know to ask the right questions, right. While sometimes 
you'll get extensive answers, in busier times you might get the *exact* 
answer to your question - whether it's helpful in the long term, or not.


Overall, it's been both more awful than expected, and at the same time more 
people help than with other Open-Source projects; I guess I'll have to stop 
here, to avoid starting a rant about another topic.


I hope that helps - at least a little bit.


Regards,

Phil


==

Ad 1: In the last 8 weeks (since starting the CI in -infra) I got some 
ideas; I'm not sure how much is correct, but if there's interest, I can try 
to put them down into a wiki (please point me to some suitable location).

Ad 2: Another thing that is not written down (but could be guessed) is that 
some lists have to be kept in alphabetical order...

Ad 3: Eg. for free if it's an Open Source project, and for a small fee like 
$200 or so for proprietary ones - that's still some major savings for the 
company, compared to spending tens of man-hours trying to get that right.
  It doesn't make sense to require people to learn about things they will
never use again - and the amount of time spent answering the questions, 
diagnosing problems and so on is quite a bit higher than doing it simply 
right the first time.
And if it's *that* often needed, why not write a small script that, given 
a name, does the needed changes, so that only a commit & review is needed?

Ad 4: Eg., the cinder tests multi-backend tests failed for my driver.
After looking at tempest.conf I figured out (thanks, jgriffith, for telling 
me that too) that they were *wrongly* activated - because I've had 
  -              CINDER_ENABLED_BACKENDS=,drbd:drbdmanage"
  +              CINDER_ENABLED_BACKENDS=drbd:drbdmanage"
A small comma in the setup definition - and several tests fail, instead of 
them getting skipped...

-- 
: Ing. Philipp Marek
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting                 http://www.linbit.com :

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.



More information about the OpenStack-dev mailing list