Category Archives: Uncategorized

Opensource contributions

I always wanted to contribute to some major Opensource project since my engineering student days (more that 10 years ago). In those days I was looking to contribute the Linux kernel project but never did I get a chance.

Howpever as part of my work for Nuage, I have been (finally) able to contribute to Opensource projects. Specifically I have contributed to the following Opensource projects

  • Openstack Puppet Neutron
  • Openshift Ansible
  • Openstack Fuel Plugin for Nuage



For the past few weeks I have been working with Containers (specifically docker) for my work on Redhat Openshift. I was able to make a number of contributions to the Openshift Ansible toolkit as part of my work on the Openshift platform for Nuage. Has been super fun.

However what really excites me about my current work is that I have also started using Golang for my work and am really liking it. I find Go to be a crossbreed of Python and C and I think it makes sense to use Golang instead of C++. To be fair I haven’t worked with C++ to write any production code but consider myself fortunate for avoiding that pain.

3D Printing after a while

It’s been a while that I 3D printed anything. Have been really busy after joining Nuage . However today I decided to print something on my printer since Tanu’s cousin is here and he wanted to see how 3d printing work. However I had to calibrate my 3d printer before I could use it, so used the calibration circuit that I had designed to easy the process. The design is open source and is shown below



The confusion started right at the united airlines gate at the Newark airport. We had to stand In line twice, once to get our passport checked and once to board our flight. Again while boarding the flight we had of our passport ready.

Once we landed in movie, the immigration was a breeze. Getting home using a cab was equally easily as well. No hassles at all. I am just hoping that my kids don’t fall sick during this short trip.


Have been using vijava for one of my projects recently.  It’s a fairly decent Java wrapper over Vmware’s web services API. However there are some very basic Java bugs with the library, for example the VirtualEthernetCard class does not override the equals methods (really!!!). This has been causing me a pain while comparing two Sets of VirtualEthernetCard objects. I wish the author had followed the rules mentioned in the awesome book “Effective Java“.

Virsh + MAAS + Juju

Was able to get MAAS (Metal AS A Service) working Virsh by following this guide. Following are some of the important points to note about this setup is that  Also it’s important to

  1. The router ip and the upstream DNS need to be set to the MAAS network gateway ip (e.g.
  2. Set the default gateway field empty.
  3. In /etc/bind/named.conf.options set dnssec-validation no and remove any_ipv6

Got RDO packstack working

After struggling a bit, I finally got RDO packstack working with a RHEL7 qcow2 image. I was able to get it working with three nodes, one controller and two compute nodes. I was able to boot a VM on each of the compute nodes and was able to ping between them. This was achieved via a Vxlan tunnel created between the two nodes.

One important thing about RDO is that I found it quite stable once I could get it working.


I have been trying to get openstack working with packstack on RHEL7 and it has not being an easy. I thought that packstack on RHEL7 would just work but it doesn’t.

Memory requirements

Make sure the controller node has at least 4GB of memory.

Disable/Enable services

systemctl disable firewalld
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
systemctl enable network.service
systemctl start network.service

Network Service

I am using RHEL7 qcow2 image on KVM and one of the annoying problems that bugged me that network.service use to always fail

systemctl start network.service

The reason for this failure was that my ethernet interface was ens3 on the VM but there no corresponding ifcfg file in /etc/sysconfig/network-scripts for it. Once I edit ifcfg-eth0 to ifcfg-ens3, I came over this issue.

Stale mysql database

Every time before you run the packstack command make sure that the mysql database has been cleaned up. This can be done with “rm -rf /var/lib/mysql”

Change passwords

perl -p -i -e "s/_PW=(\S)+/_PW=simple/g" answer.file


Installing vim-flake8

I use vim for writing most of my C and Python code. For python I tend to use vim-flake8 for automated PEP8 checking. However I always forget how to install vim-flake8 and hence am writing this post

First install pathogen

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim

Then install the vim-flake8 plugin

cd ~/.vim/bundle
git clone

Finally add the following lines to .vimrc

execute pathogen#infect()
filetype off 
syntax on
filetype plugin indent on
autocmd BufWritePost *.py call Flake8()