Categories
Uncategorized

Debugging RabbitMQ issues in OpenStack

Let’s start this new post entry in “professor” mode, doing a statement: “AMQP is the messaging technology chosen by the OpenStack cloud“. This link refers to Nova but is valid for any other OpenStack project. AMQP is used to facilitate the inter process communication. For example, if the Neutron DHCP agent needs to retrieve some […]

Categories
OpenStack Tech

Testing Keepalived

Welcome back! I just finished my lethargic aestival period, emerging from the swimming pool like a manatee. Back to the (awaited) office routine, I had a clash with Keepalived; actually with around four hundred instances. Yes, 400 instances spawned to control the same number of high availability routers in OpenStack. The OpenStack L3 agent is […]

Categories
OVS/OVN

ovsdbapp, your library for Open vSwitch and OVN

The first thing you will notice reviewing the code of this library is a common pattern: Terry Wilson, one of the fathers of the creature. It has many other contributors, but he is the main maintainer. Thanks! This library provides a Python native implementation to access to the Open vSwitch database, using the OVSDB management […]

Categories
OpenStack Tech

Network namespaces and containers

Openstack can be deployed in several ways. For example, for testing and development, devstack is used. For production environments, Kolla-Ansible provides a set of tools to define, create and deploy a set of containers running the needed services. TripleO is another deployment tool that can be configured to run the services on containers. Neutron, the […]

Categories
OpenStack

Database query testing in OpenStack Neutron

Welcome to the exciting world of databases! At least for the project in OpenStack I know best, which is Neutron. Neutron, and if I’m not wrong all the OpenStack projects, use SQLAlchemy as ORM library. Here you can read how this ORM was introduced in OpenStack to be the only API to talk to the […]

Categories
Tech

Timer context in Python

Some time ago I created a timer class for Neutron. This class was a context manager with a defined timeout. This timeout was implemented using the Linux alarm clock. Once the clock finishes the countdown, sends an alarm signal to the calling process. The problem of this implementation is that is not possible to use […]

Categories
OpenStack Tech

Python multithreading

As commented in my introductory post, this blog pretends to be a kind of work diary, and sometimes will be the shoulder to cry on. In relation to threads, regardless of the programming language, a programmer needs to be mentally strong. Jokes aside, I would like first to introduce this post with some links to […]

Categories
Tech

How do I setup my development environment: git, vim and screen

Every software developer, regardless of the OS used, programming language or editors used, has its own predefined setup. We are creatures of habit, because that help us to improve our productivity. For example, I still use screen when I should have migrated to tmux. It use ctrl-b instead of ctrl-a… absolutely barbaric! (although it can […]

Categories
OpenStack Tech

OpenStack local git mirror

If you are an OpenStack developer, you will know about devstack. This deployment tool, used only for testing and development, will retrieve all needed OpenStack projects from a defined git server; by default https://opendev.org. The “stacking” process (collect all needed projects, install all dependencies and start the projects as configured) usually takes around 10 minutes. […]

Categories
Tech

How to quickly deploy your development virtual machines

It’s well know, for every software developer, that when you have been working in one or several projects, written in different languages, with external dependencies (libraries, modules, packages, etc.), for a long time in the same development machine, eventually you’ll need to format it and reinstall everything again. The mess is so complicated that is […]