I think the last two weeks of my life were in fast forward. Before I could fathom what is going on- I found myself sitting and staring at the terminal to find out what could possibly be wrong with the setup of my dev environment this time. Next thing I knew, I was fishing around on the issue tracker to find out what I could do to make my life useful- the fact that some of that stuff looked like Greek- just made stuff worse. When things got out of hand, Daniel would come and point me in the right direction- and hopefully, thats where I’m headed right now. Let me describe it in some more detail:
- Setting it up:
Important and valuable lesson about setting up a dev environment- it’s not as easy as it looks!
I’ve always been scared of making a terrible mistake as root and turning my laptop into a toaster. And although the steps mentioned in the manual assure you that it’ll all work out just fine- somehow, you never have the correct dependencies. And then there are versions- some are right versions, others are disaster versions. The disaster versions would not cooperate with your environment and also refuse to leave your system when you ask them to. I ran into some of these disasters with apache. And although I fought well and hard, I eventually had to give up, take a backup of my data, and re-install ubuntu. Then, I went back to the manual, and started over with the steps- only to run bundle install over 50 times before getting it right.
When you struggle to set up the environment through more energy drinks than your doctor would like- watching it all work makes you a different level of ecstatic altogether. (Sometimes I wonder if they purposely make it this difficult- to make the developers love the environment more X) )
Browsing through the issue tracker can be a very intimidating experience, but also exciting at the same time. One of the initial issues that I was assigned was #7864. It goes something like this: we let the user configure exposed ports in the wizard for any docker container. The Docker remote API supports configuring exposed ports, but Fog did not. Daniel added this feature to Fog in v1.26. However, we still need to find a way to “PortBind” ports on the Docker Host to the Exposed Ports of the Docker Container when we “Start” the conatiner.
While exploring the environment, I noticed that on trying to enter an image name and searching for it using the corresponding icon, we do not get any results, and on looking at the response of the particular network request, we see an “NameError in Image_search#search_repository” error. It was added on the issue tracker as #8815. And after playing around with the code- yayy! I was no longer seeing the error anymore. And hopefully, in a few days, neither would the Foreman users.
I also worked on a couple of other issues- #8789(Wrong link for “learn more about cpu shares” in configuration step of new container), #8342(New Container “next” button is enabled when no Docker computer resource exists) and #8226(Environment variables should be added at creation/runtime). Currently, I’m working on letting users configure DNS in the containers through the wizard (http://projects.theforeman.org/issues/7865 ), and hopefully, would be able to get that in place.