While Unit tests are essential to development, I often want to check the complete flow of a feature against a running keystone server as well. I recently upgraded to Fedora 25, and had to reset my environment. Here is how I set up for development.
If you change the public signature of an API, or add a new API in Keystone, there is a good chance the Tests that confirm JSON home layout will break. And that test is fairly unfriendly: It compares a JSON doc with another JSON doc, and spews out the entirety of both JSON docs, without telling you which section breaks. Here is how I deal with it:
Jill Jubinski is a well known and respected community leader in OpenStack. When she says something, especially about recruiting, it is worth listening to her, and evaluating what she says. When she tweeted:
While I find the ‘show some code ur proud of’ stance, its like, what if someone doesnt want to code outside of work? That has to be ok too.
my response came off as a contradicting her. It was:
nothing to show would be suspect. If you hate to code, no paycheck would be high enough to make you do it well.
Which goes to show that terseness is a demanding constraint; I did not adequately state what I was trying to state in my attempt to limit it to a single tweet. And of course, that meant it became a discussion back and forth.
Let me try to be a little more nuanced and fair here. What Jill says is spot on: it should be 100% OK for a programmer, and a good one, to not have anything that they are capable of showing prior to an interview. I, myself, would have fallen into that category earlier in my career.
Yesterday, someone asked me about inherited role assignments in Keystone projects. Here is what we worked out.
Minecraft is a land of Cubes. And yet, in this blockland, it turns out the circle is a very powerful tool. Using the basics of trigonometry, we can build all sorts of things.
Minecraft uses the Cartesian coordinate system to locate and display blocks. That means that every block location in a Minecraft universe can be described using three values: X, Y, and Z. Even the player’s avatar “Steve” has a position recorded this way. If you type the F3 key, you can see a bunch of text on the screen. Buried in there somewhere are the 3 values for Steve’s position.
Since running the Cyrus SASL sample server and client was not too bad, I figured I would see what happened when I tried to secure it using Kerberos.
When I start working on a new project, I usually start by writing a “Hello, World” program and going step by step from there. When trying to learn Cyrus SASL, I found I needed to something comparable, that showed both the client and server side of the connection. While the end state of using SASL should be communication that is both authenticated and encrypted, to start, I just wanted to see the protocol in action, using clear text and no authentication.
I posted this once before, but we’ve moved on a bit since then. So, an update.
#!/usr/bin/python upstream = ['Austin', 'Bexar', 'Cactus', 'Diablo', 'Essex (Tag 2012.1)', 'Folsom (Tag 2012.2)', 'Grizzly (Tag 2013.1)', 'Havana (Tag 2013.2) ', 'Icehouse (Tag 2014.1) ', 'Juno (Tag 2014.2) ', 'Kilo (Tag 2015.1) ', 'Liberty', 'Mitaka', 'Newton', 'Ocata', 'Pike', 'Queens', 'R', 'S'] for v in range(0, len(upstream) - 3): print "RHOS Version %s = upstream %s" % (v, upstream[v + 3])
RHOS Version 0 = upstream Diablo
RHOS Version 1 = upstream Essex (Tag 2012.1)
RHOS Version 2 = upstream Folsom (Tag 2012.2)
RHOS Version 3 = upstream Grizzly (Tag 2013.1)
RHOS Version 4 = upstream Havana (Tag 2013.2)
RHOS Version 5 = upstream Icehouse (Tag 2014.1)
RHOS Version 6 = upstream Juno (Tag 2014.2)
RHOS Version 7 = upstream Kilo (Tag 2015.1)
RHOS Version 8 = upstream Liberty
RHOS Version 9 = upstream Mitaka
RHOS Version 10 = upstream Newton
RHOS Version 11 = upstream Ocata
RHOS Version 12 = upstream Pike
RHOS Version 13 = upstream Queens
RHOS Version 14 = upstream R
RHOS Version 15 = upstream S
Tags in the Git repos are a little different.
- For Essex though Kilo, the releases are tagged based on their code names
- 2011 was weird. We don’t talk about that.
- From 2012 through 2015, the release tags are based on the date of the release. Year, the release number. So the first release in 2012 is 2012.1. Thus 2012.3 does not exist. Which is why we don’t talk about 2011.3.
- From Liberty/8 the upstream 8 matches the RDO and RHOS version 8. Subnumbers are for stable releases, and may not match the downstream releases; Once things go stable, it is a downstream decision when to sync. Thus, we have tags that start with 8,9, and 10 mapping to Liberty, Mitaka, and Newton.
- When Ocata is cut, we’ll go to 11, leading to lots of Spinal Tap references