Introduction to Python Network Programming for Network
Architects and Engineers
(DevNet1040, DevNet1041 and DevNet 1042)
Purpose of these Sessions:
For years, companies and IT organizations in particular have been struggling to drive costs out of the business while at the same time trying to accelerate their overall time to revenue and time to customer value.
In addition, there is are growing demands to identifying new ways of creating value and driving growth through innovation – and to do this in spite of the fact that the current global business environment is becoming increasingly complex and competitive.
As a result, today, more and more companies are turning to business strategies that are increasingly dependent upon automation. It’s become almost a foregone conclusion that without automation, innovation quickly becomes constrained. Without innovation, productivity begins to stagnate and without continual productivity improvements, few businesses can survive over the long run.
Introduction to Python Network Programming for Network Architects and Engineers introduces two of the core building blocks that lie at the heart of many automation strategies – the Python programming language and network programming concepts
Understanding the Python language and network programming in general provides the network architect/engineer a software oriented “lingua franca”. This creates opportunities to align the needs of DevOps and software development communities with the requirements of providing robust and secure network and compute infrastructures.
About these Seminars:
No previous programming background is assumed - concepts are presented as a series of interactive, ‘follow-along’ sessions that cover the basics of network programming with Python. The intent is to try to make these sessions as interactive as possible, so we encourage you to check out our post - on ‘Additional Background for DevNet1040, 1041 and 1042 seminars’ for videos and detail about the Python language and how to install Python on your own machine before you attend.
The training session consists of three parts. These can be taken in order (from Part I to Part III) or taken individually.
Python Network Programming Basics:
- The goal in this session is for the participants to develop a set of Python “building block” templates that can be used as the foundation for more advanced topics*. These templates include:
How to take input from the Python command line or from the keyboard (in the form of an arbitrary domain name).
How to leverage the Python socket library to retrieve the IP address of the Domain Name device.
How to leverage Python to save those Domain Name’s and IP addresses to a simple log file.
A demonstration of a simple UDP based client/server countdown timer application that we will decompose in Part II of the series.
Introduction to Python OS, File and Network Programming Modules Agenda:
- The goal of this session is for the participants to build upon what we learned in Part I and to develop a set of OS and network based utilities that can be added to the Python “Toolbox” that were created in Part I. This includes:
Five simple example scripts that use the Python OS.walk and OS.listdir modules to read and manipulate files and directories.
Two simple examples of how to leverage Python OS and Network methods to ping devices
“Decomposing” or breaking down how the UDP based client/server timer application works.
Intro to Python Network Programming, Building Additional Tools Agenda:
- This session builds upon the “toolbox” utilities created in the previous two sessions and developing a set of additional Python based network programming tools. This includes:
Using the Python socket library to create a simple TCP based client/server message passing script.
Leveraging Python’s RESTful modules to pull down and parse web pages
Leveraging Python’s REST-based request module to log in to a Cisco UCS Server/ACI Fabric and collect information.