My first package to pypi. Connpy: Network connection manager and automation module
Hi!

So a little bit of background, I'm a network engineer (ccie), with 10+ years of experience in networking, and i'm a really lazy guy so usually i try to automate and script everything. long time ago i created my bash connection manager and been using it since. A month ago i decided it was time to upgrade it to python and add the automation function i always wanted, and that is how connpy was born.

I'm not a programmer so it may have some issues! let me know.

[https://github.com/fluzzi/connpy/](https://github.com/fluzzi/connpy/) &lt;- here is the link, it also have some documentation it should be easy to use. It's created for linux as it's what i use everyday but i did some testing on macos and it should work.

## connection manager

First its the connection manager, it adds the commands conn/connpy to shell, and you can add all the devices you manage easily:

- conn --add server1

you can add folders and subfolders to organize your devices. i use to work with a lot of clients so i have like 400+ nodes divided in multiples folders.

- conn --add "@office"  
- conn --add "@servers@office"
- conn --add server2@servers@office
- conn --add server3@servers@office
- conn --add router1@office

when you are creating a new node to connect, it allows you to refer profiles, this way you can manage passwords and other information in 1 place and use it in multiple nodes.

- conn profile --add officeuser

then you reference inside the node configuration using "@officeuser".  

you can use profiles to send multiple passwords in case you use 1 or more jumphosts.

Once the nodes are created you just connect to them without passwords.
- conn server1
- conn server2@servers@home
- conn server

## automation module

this is the new feature, once you created your nodes you can use them with the automation module

- import connpy
- config = connpy.configfile()
- server1 = config.getitem("server1@office")
- router1 = config.getitem("router@office")
- server = connpy.node("server1",**server1,config = config)
- router = connpy.node("router1",**router1,config = config)
- print(router.run(["term len 0", "show run"]))
- if server.test("ls -la", "folder to find"):
-   print("folder found")
- else:
-   print("missing folder")

You can also run in multiple devices at the same time using class nodes. (more in the documentation)

Hope someone find it useful!!
thanks!