Typically when I work on code changes I try to keep things to a single commit. This makes it so I won’t need to squash my commits into one (you gotta keep that history clean). It even makes updating pull-requests rather easy with a force push. I have seen many people be befuddled by this kind of workflow. Hopefully this post and the examples within will help future developers who run into problems. Continue reading “linuxnippet #4: Splitting big commits”
Like many people I have a repository that contains a vast majority of my configuration files, or dot files (because a lot of them start with a period). Doing this allows me to set up a new environment very quickly. While it probably is not standard practice it should be! At least it feels like a right of passage. Continue reading “linuxnippet #3: Running vim commands at execution”
This is the first of a new collection of posts that are dedicated to reviewing tutorials I find while learning my own thing. A lot of tutorials are outdated or wrong. “You mean things on the Internet can be wrong?!” In my field I run into a lot of tutorials. Ones that are large enough to warrant a review, either being very bad or very good, I will post about. This one is about installing Laravel. Continue reading “Tutorial Review: Laravel Quick Start”
Ever need to find a file that contains some text? Hate trying to remember how to do it so you google it all the time? This post is one I reference often. I do not recommend spending your valuable brain-space on useless info. Just remember how to find the answer and you’ll be golden.
This one is a quickie because it’s mainly for me to remember: Continue reading “linuxnippet #2: Finding files in command line”
Hey kids. Do you ever find yourself working at your terminal, with the dull glow barely revealing the letters on your keyboard, attempting to do the same thing to all the regions in your company? Your friends have, in quiet whispers, mentioned pssh, screen, and tmux as the best trip you’ll ever have. As a smart developer you cautiously dabbled in them at first. Maybe you found what you were looking for, but then in the thick of things you found yourself banging your head on that same keyboard. The trip just wasn’t worth it.
What are we talking about again?
I ran into a problem while installing neutron. This error is rather common (as seen through googling) but the solution was hard to find. This is what I found that worked for me. YMMV.
I’m posting this primarily so I don’t lose my settings (they are on a piece of paper on my desk).
These are just basic notes for me because I will forget.
This uses the Swift-YouTube-Player Cocoapod from https://github.com/gilesvangruisen/Swift-YouTube-Player
Copy the instructions here to get it installed using pods.
It isn’t up-to-date with swift 2.0 yet so copy the changes here
Then (using the information from here) make sure the
VTPlayer.html file is included in the
YouTubePlayer) resources list:
- Click on
- Click on
- Click on
- Click on the plus sign (add build phase)
- Add a
Copy Filesbuild phase
Resourcesand add the
Rebuild all the things.
These workflow tips are for me to remember how I managed to make certain things more efficient.
This episode started from my local neutron failing to start due to:
2015-03-16 10:56:59.272 6232 CRITICAL neutron [-] ArgsAlreadyParsedError: arguments already parsed: cannot register CLI option
This was caused by this upstream change:
015-03-16 10:56:59.162 6232 TRACE neutron.service from neutron.openstack.common import log as logging
I had to change all the
from neutron.openstack.common import log as logging lines to
from oslo_log import log as logging. This isn’t a big deal and you’d think
sed would work, but it can’t work due to the difficulties involved in reordering the imports into alphabetical order.
tmux I’d make a vertical split and make my edits in one of the panes. In the other pane I run:
watch -n 1 'find . -name "*.py" | xargs grep "neutron.openstack.common import log as logging"'
Having an updating list of what files I need to update is helpful and keeps me sane.
As a quark/neutron developer I have to stand up neutron servers all the time. The way that openstack prefers this be done is with devstack. This is really great and cool if you want to deal with the whole stack and watch how the services interact. If you just want to develop your plugin for Neutron this is quite a bit more than overkill.
The OpenStack community is, rightfully so, pot-committed with their auth solution keystone. This can be seen by clients having
--help outputs like:
$ neutron –help
DEPRECATED! Only keystone is supported.
This means that if you wish to be a simple, no-nonsense neutron developer and make use of the clients you’ll need to stand up keystone. Despite having done such a thing multiple times I still think it’s a pain in the ass. It’s simply a fact of life that OpenStack is somewhat complicated, maybe needlessly so, and abandoning support for ease-of-use solutions like
noauth is a big reason for that.
It’s these little things that make open-source development — open.
If you’d like the OpenStack community to embrace the mentality of ease-of-entry, and more openness please show your support in getting these auth extensions upstream.
How to Use noauth
noauth is quite simple.
neutron –os-auth-strategy noauth –os-url <service endpoint> COMMAND
neutron –os-auth-strategy noauth –os-url http://localhost:9696/v2.0 net-list
Create a network
neutron –os-auth-strategy noauth –os-url http://localhost:9696/v2.0 net-create my_nets –tenant-id me
Because you’re doing
noauth you’ll need to pass in the
tenant-id. This isn’t a big deal though because you can make up whatever you want!
If more examples are necessary just comment.