Robot Framework User Guide. Bootstrapped


Eight years ago when I graduated from the University my first job title was a QA Engineer. Lots have been changed since then, but these days I am once again facing some QA tasks. Gladly this time we are talking Test Automation.

In particular my team mates and myself are going to develop a set of test cases to automate acceptance and regressions testing for Nuage VSP products. For many reasons for this task we chose Robot Framework as a tool to write our test cases. Without going into the details about what are the benefits of Robot let me jump to the very point of this post.

Robot has one of the most comprehensive User Guides I’ve seen in Opensource world. It is well-written, descriptive, with lots of examples, but… But it lacks of modern formatting. It is hard to read the docs on a wide monitors, impossible to read on tablets/phones, code snippets have been formatted in too narrow elements and other visual stuff that prevents one to enjoy the documentation itself in full flavor.

Given that I made a humble attempt to beautify the official User Guide of Robot by going the same way as I did with NokDoc — namely, using the Bootstrap CSS and automatically rebuild the docs with it.

Please meet (rfug stands for robot framework user guide).

What has been changed?

  1. Layout now responsive, meaning it will adapt to your device resolution. You may enjoy RF User Guide on portable devices
  2. Open Sans font is enabled by default
  3. Tables are now 100% wide and with a cleaner look

PDF version

I have also compiled a PDF version of the Bootstrapped User Guide. It has the same nice styles applied as well as Table Of Contents, so you will have the ability to navigate through the document quick & easy.

What could be added?

  1. I still have some things to fugure out how to make the page layout be more usable on small resolutions (phones)
  2. Sidebar with all the table of contents links

How it’s been done?

I wrote a small html parser powered by BeautifulSoup4 package to add/change the elements in original User Guide. And I uploaded it to the free HTML server of github (namely github pages).



LSA issue @ February 2, 2017 at 10:28PM

It is remarkable how quickly technology giants like Facebook, Google, Amazon and others became newsmakers No1 in the networking area. Seriously, for 5 breaking news from these guys its only 1 serious announcement from vendor-camp. Keeping the ratio in favor of tech giants meet the roundup of the recent Facebook' even called Disaggregate: Networking. [1]

Last week Facebook held an invitation-only party with very few companies onboarded, among which were Barefoot, Apstra, Canonical and Cumulus. At Facebook, we build our data centers with fully open and disaggregated hardware. This allows us to replace the hardware or the software as soon as better technology becomes available. Because of this, we see compute, storage, and networking gains that scale with our business. We spoke about our latest networking hardware and software — including Wedge 100, Backpack, Voyager, FBOSS and OpenBMC.

As you see, the key topic of this event was disaggregation between software and hardware components. I urge you to watch the keynote video as it lays out the vector of the whole event and helps one to understand why disaggregation was mandatory to large-scale companies like FB.

Here is the list of the talks happened there:
– Managing a Hybrid Network [by FB] (Don't spend too much time on this talk, it is about Robotron tool, which is much better explained in this deicated article [2])
– Wedge100 and Backpack: From the Leaf to the Spine [by FB]– Why Forwarding Planes will be Programmable: New Paradigms and Use Cases in Networking [by BAREFOOT] (exceptional talk by Barefoot on what is P4 programmable chip and its benefits)
– Open Networking Landscape Overview [by BigSwitch]– Disaggregating The Network OS With Ubuntu [by Canonical]– OpenBMC: An Open Software Framework for BMC [by FB]– Experiences Deploying Disaggregated Solutions [by Cumulus]– The Disaggregated Network Stack [by Snaproute]– Making Open Networking Easy to Build, Deploy and Operate [by Apstra]– Voyager: Opening Layer-1 [by FB]– Network Emulation: Testing Switch Software at Scale [by FB]

#Video #Facebook #Automation

By: via LSA


LSA issue @ January 28, 2017 at 02:35PM

A burden of many #NETCONF articles and tutorials is that they are often silent about the #YANG part. This is why we would like to highlight this post by Michael Kashin called ""Getting Started With NETCONF and YANG"" [1]. Not only this article covers the basics of network elements configuration via NETCONF (particularly via python ncclient module [2]) but also extends to the YANG models definition with practical examples.

Michael uncovers how heavily NETCONF relies on YANG models, how one can download models straight from a network element itself and how to repsent YANG models in a human-readable tree-view with pyang [3] support.

In its closing you'll see a little bit more advanced technique of building a python module based on the downloaded YANG models. Later this python module is used to create a configuration XML delivered via NETCONF to the network element resulting in a configuration change.

And if you are intereseted in NETCONF, make sure to check a NETCONF package for ATOM [4] which allows you easily compose and deliver NETCONF commands to the network elements and the Yang-Explorer tool to visually examine YANG models [5]

#Article #Automation #NETCONF #YANG

By: via LSA


NokDoc Library & NokDoc CLI Tool


For many years Alcatel-Lucent’s documentation was all about authorized personnel only. All of it. And not so long ago ALU opened a considerable part of its documentation portfolio to everyone via its support portal!

This portal internally is the same support portal available at domain though styles are now aligned with Nokia brand-kit. And being the same means that it is often slow in response, old-fashioned in UI and demands too much clicks and scrolling from you.

I hope that one day our documentation portal will be redesigned from ground up in a way that it would match current UX/UI patterns. In the meantime I took a humble attempt to make it a little bit more engineer-friendly.

That’s how I ended up with two projects:

  • Web library with direct links to Nokia’ product documentation — NokDoc Lib
  • And the CLI tool to fetch links to documentation and download it — NokDoc CLI Tool


LSA issue @ January 23, 2017 at 10:41AM

It is always tempting and interesting to see how big guys do their networks. We saw some pieces from Google, Facebook, Amazon, LinkedIn and now Twitter comes. Big 5 is all set!

Last week engineering force at Twitter released an article titled ""The Infrastructure Behind Twitter: Scale"" [1]. The article starts off with networking field in focus and covers both DC and Backbone challenges Twitter faced over the time.

Data Center story is no surprise at all, IGP started to give more troubles that benefits and was swapped with ""BGP as IGP"" solution. Classics of modern DC design. By the way, there is a bonus track in the DC section of the article — a nice slide deck explaining how Twitter did this migration on a live network [2].

At the Backbone side Twitter surpisingly had no TE at some point (o.O). Now they most certainly do and they also adopted TE++ from Juniper [3] which helps them overcome bin-packet problem (common problem for Big 5, Facebook had this as well). After all RSVP-TE autobandwith has some serious players that have implemented it.

When it comes to Edge, problems like PoP design and steering traffic to PoPs start to pop out. Serving a customer from a closest point available (less RTT means less delay and more goodput) is a corner stone for worldwide scale players. On the latter case Twitter ditched geo-DNS in favor of BGP-anycast. We saw this done by LinkedIn and Facebook [4],[5]

Though from a birds eye view all the probles are the same we should thank Twitter for sharing! Maybe we'll see more goodnes from their Engineering dept. soon.

#Article #Datacenter #RSVPTE #BGP





By: via LSA


LSA issue @ January 19, 2017 at 10:43AM

Here is the question: if Host A wants to transmit some data across TCP/IP network to Host B with IP address of how will this Dest_IP address be represented?

Correct, it will be hex encoded, but will the bytestream be like 0x01 02 03 04 or 0x04 03 02 01? Yep, you see where I am going, its endianness who is telling us which byte comes first.

So take a look at this short article which is a perfect read on Endianness. It uncovers why x86 CPUs (back in 90-00's) were a bad choice for networking equipment and how the hell Gulliver's Travels has mixed up with all of it?

#Article #TCP
By: via LSA


Yang Explorer in a Docker container


I would like to see a day come true where all major vendors’ boxes (even small & cheap ones) will be 100% covered by YANG models. Can’t say I believe that it is possible for IETF to standard all the things in vendors domain, but we will manage as long as vendors will stick to standard YANG in their own in-house data modes.

Being in shadows for quite some time, Netconf/Yang are still something new to explore for many of network engineers, myself included. And that’s todays topic — exploring YANG data models with Yang Explorer tool in a docker container (reads: without pain).

Updated version of Yang Explorer in a container has been published on my other resource —


LSA issue @ January 1, 2017 at 02:13PM

Hey there, engineers! Its January 1st 2017 and we are happy to welcome you and wish you all the best.
But is it 2017 indeed? How would one tell if his clock is good, if its in sync with the world clock? Yeah, you got it, in the era of the leap second and New Year eve what topic could we bring up if not NTP?

Lucky us, an Australian SRE@Canonical Paul Gear wrote a 5-post long topic called ""The School for Sysadmins Who Can’t Timesync Good and Wanna Learn To Do Other Stuff Good Too"". We bet you'll become grandmaster of NTP once you read all five of them!

#Article #NTP #Synchronization

Part 1 — The problem with NTP:

Part 2 — How NTP works:

Part 3 — NTP install and configure:

Part 4 — Monitoring and Troubleshooting:

Part 5 — Myths, misconception and best practices:
By: via LSA


brvirt: when brctl meets virsh


Hypervisors diversity is definitely one of the benefits of having Nuage managing your next-generation network. That means that we, as Nuage engineers, have to play with all kinds of hypervisors — like KVM, ESXi and Hyper-V to be more precise. As to me, I love to work with KVM most, simply because it gives you that feel that you are in control and can fine-tune or troubleshoot with granularity you want. Thanks to opensource tools like tcpdump, virsh, ss, top, brctl and many many others!

But these tools won’t fit perfectly for every situation every time. For example consider a simple case of a Linux host with a bunch of VMs connected via Linux bridges and answer a simple question: how to determine what VM names correspond to what virtual network interfaces connected to what bridges? I have to say that this question arises quite often when you troubleshoot network connectivity between VMs or gathering network stats.

And the answer to this question can not be provided with above mentioned tools without some scripting. Indeed, in this post I will share a script called brvirt which does the job by combining iproute2 and virsh outputs.

Link: Github repo.


Using free Yandex DNS service in an automated way


This DNS story started when I bought a domain with a specific need — to dynamically create and delete DNS records for Nuage Networks components we use during Proof Of Concepts and customers trials.

Earlier I used to rely on Dynamic DNS services (i.e. whenever I needed a DNS name for my public endpoints. But this approach has two drawbacks:

  1. To use if for free you have to manually prolong you hostname once in a month. Drove me mad every time!
  2. In PoCs/trials you want your domain represent your product. Using in front of a customer is not something that speaks well for your product. And we all know that devil is in the details.

Therefore I decided to buy a domain that will represent a product we are offering and park it to some provider which offers robustfree and API-enabled DNS service. Google cloud DNS and DynDNS while being both cheap are not free. So I kept looking and ended up with Yandex DNS which has all three traits I was looking for. Lastly I automated this DNS workflow so everyone in my team could provision their own DNS entries via one shared tool.

You got it right, in this post I am going to tell you about a completely free DNS service from Yandex with a decent API you can use for your personal needs. And yes, this post is accompanied with a python script which leverages API and automates DNS records provisioning.