Ajax Datatable: changing row color based on the data

We have the following table which is populated with data, using Ajax

A regular table without color

Now, let’s say you want to color the table rows, based on the second column status after, the table is already filled with data:

  • UNSTABLE -> Yellow
  • SUCCESS -> Green
  • Failure -> Red
Continue reading “Ajax Datatable: changing row color based on the data”

OpenStack: Neutron Service Code Deep Dive

This post is a dummy walkthrough of neutron services code. I recommend being familiar with the following modules (not a hard requirement, but will help you avoid jumping between this post and other docs):

I created the following drawing to make it easier to track several of the files and classes mentioned in this post.

Continue reading “OpenStack: Neutron Service Code Deep Dive”

TripleO: Debugging Overcloud Deployment Failure

You run ‘openstack overcloud deploy’ and after a couple of minutes you find out it failed and if that’s not enough, then you open the deployment log just to find a very (very!) long output that doesn’t give you an clue as to why the deployment failed. In the following sections we’ll see how can we get to the root of the problem.

Continue reading “TripleO: Debugging Overcloud Deployment Failure”

Python: check if two strings are permutations of each other

Another question I cover in a presentation I’m preparing for “Open University meets Open Source” meetups.

What is a Permutation?

Permutation is the action of rearranging objects, characters or symbols into different, unique sequences.

Each sequence is called ‘permutation’.

It’s common to see people mix permutation with combination, but those are two different things. Remember, combination doesn’t care about the order, while permutation does.

Continue reading “Python: check if two strings are permutations of each other”

Python: check if one string is a rotation of another string

Another question I cover in a presentation I’m preparing for “Open University meets Open Source” meetups.

The question

You have two strings, str1 and str2 and you need to return True if the first string is a rotation of the second string. Otherwise, return False.


“hello”,    “llohe” -> True. If we’ll rotate the second string twice, you’ll get ‘hello’.

Continue reading “Python: check if one string is a rotation of another string”

OpenFlow: Introduction

What is OpenFlow?

If we tried to explain what OpenFlow is, a possible definition would be: OpenFlow is a protocol for controlling and interacting with forwarding behaviors of switches. It allows us to dynamically control  the behavior of the switches in our network. Many SDN (software defined network) and Open Source projects use OpenFlow or support it as a plugin, such as OpenStack Neutron and OpenDaylight.

But It’s hard to grasp what it is, what it solves and how it works only using this brief description. In order to truly understand what is OpenFlow, we need to start from the beginning, before SDN era.

Continue reading “OpenFlow: Introduction”

Networking: Self-Study Resources Collection

Usually I don’t publish a post on every new project I create, but in this case I believe a lot of people can find it helpful in their learning process. So for the junior networking folks out there, or folks who just enjoy learning more about networking, you might want to take a look on the following page:

Computer Networking

Basically, it’s a collection of networking videos and slides on a variety of computer networking subjects (sdn, ovs, neutron, openflow, general networking concepts, etc.).

Continue reading “Networking: Self-Study Resources Collection”