The even-ended number problem in Go and Python

During the Go Essential Training course on LinkedIn, the instructor sets up a problem for you to solve. The solution is in the next slide of the course, and mine was ever so slightly different anyways, so I doubt that this needs to come with a spoiler alert, but anyways… An even-ended number is one that starts and ends with the same digit. That is to say 1, 11, 121, and 10103921 are all even ended numbers as they all start and end with the same digit.

A Modern NetDevOps learning plan

Now that I have I have set up a sort of a learning plan to plug some gaps in my knowledge that I always wanted to plug, but didn’t have the time to do properly. Mindful that I have an opportunity for learning without external influences on my time, but also that my Daughter only has Kindergarten until lunchtime every day, I really only get the morning before the family time kicks in.

End of an Era: The Solera Years

Two weeks ago I was made redundant. COVID and “shifting business priorities” meant a re-org of my department and for whatever reason, that is that. Over the last year or so I had assumed this day might come and the question I had internally was if I would jump or if I would be pushed. Since I was slap bang in the middle of a key project, I had assumed I might still have 9-12 months or so left to close that out.

Doing YANG Wrong: Part 5 - Manufacturer/Model deviations

Part 5: Deviations So we can talk to the device, and we can use candidate configs to stage and then apply configs in aggregate, but we still can’t make a CSR1000v take a simple openconfig IP address. At the beginning I deliberately called out I wanted to use generic models, and avoid the deviations. This is because the python model binding i then generate only works on that vendor’s box now.

Doing YANG Wrong: Part 4 - Config stores

Part 4: Config stores As we head down this rabbit hole, we start to get ever closer to something useful, but ever more deep into the weeds of NETCONF/YANG. For the uninitiated, config stores are a place where you can put config chunks either singularly, or in aggregate over a series of netconf pushes, to generate a new config that you will apply in one hit. In the SP world you might want to setup some interfaces, some BGP and then some overlay like an MPLS service.

Doing YANG Wrong: Part 3 - Using the python bindings

Part 3: Using the python bindings to push a config Given we generated that python file locally in a machine, we assume here that you are still in that subdirectory. The below code was stolen fully from the YANG Book. Much love and all credit to them for their work. from interface_setup import openconfig_interfaces from pyangbind.lib.serialise import pybindIETFXMLEncoder from ncclient import manager # device settings username = 'yangconf' password = 'my_good_password.

Doing YANG Wrong: Part 2 - Python Bindings

Part 2: Python bindings for models Having a model is one thing. Using it requires you to ingest that model somewhere, apply values to its elements (leaves) as necessary/appropriate and then submit that completed model to the appliance for application to the config. I’m a python guy, you might like Go, or ruby or whatever. thats up to you, but I use python right now, which means I use pyangbind and pyang to create pythonic modules I can import into a script, and then interact with the model attributes like I would any other object in python.

Doing YANG Wrong - Part 1: Getting started

This is more of a discovery post than anything particularly useful. It charts my adventure from a problem statement, through discovery of a solution, to a dead end. I post it here to help people see the logic I followed, and why, against all wisdom, it didn’t work. Note that if you are familiar with YANG, I know why this is NOT the right way to do this, but I only know that having done this as shown here.

Network Automation: from spreadsheets to YANG and everything between

Over the last few years I have spent a significant amount of time in YAML and Ansible. I’m not an expert by any means, but I can probably get anything I need done in maybe a few days worth of tinker time. I’m what you would call a fair weather scripter. One thing I learned from building about 30,000 lines of YAML whilst orchestrating ACI, was that Ansible is a square peg, and everything networking is a round hole.

Software Defined Waffle with a gitops topping

Over the last two years or so, I have been on adventure with Data Centre Infrastructure renewal. As past posts may allude to, ACI was a big part of what we did, but before anyone gets all dogmatic about it, know that we didn’t go “All in” with that one product, since I personally don’t subscribe to the “DC Fabrics cure all ills” mantra. CLOS fabrics and the various approaches to overlays within them are great at providing stable platforms with predictable properties for speed, latency and scale.