-
-
Save jathanism/ea208742882afff89ded to your computer and use it in GitHub Desktop.
This is a proof-of-concept for executing a command every 5 seconds on a device and displaying the result, while maintaining a persistent connection to the device. THIS IS 100% TOTAL HACK THAT SHOULD NOT BE USED IN PRODUCTION. It's hard-coded to print the result of But it illustrates that you can connect to a device (or devices) and run a command…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
persist.py - Execute stuff in a loop over a persistent connection w/ Trigger. | |
""" | |
import datetime | |
from trigger.cmds import Commando | |
from trigger import twister | |
class PersistentChannel(twister.TriggerSSHAsyncPtyChannel): | |
loop_delay = 5 # in seconds. | |
really_done = False # Are we *really* all done? | |
def loseConnection(self): | |
""" | |
Only terminate the connection if we're all done. | |
This is a hack to trick Trigger into starting the whole command loop | |
over again instead of disconnecting. | |
""" | |
# log.msg('=' * 50) | |
print self.device | |
print datetime.datetime.now() | |
print self.results[0] # We only want the 'show arp' result. | |
# log.msg('=' * 50) | |
# Only disconnect if we're *really* done. This isn't implemented yet, | |
# so you have to ctrl-C to kill the event loop. | |
if self.really_done: | |
super(PersistentChannel, self).loseConnection() | |
else: | |
self.results = [] # Zero out our stored results. | |
self.commanditer = iter(self.factory.commands) # Reset commands | |
reactor.callLater(self.loop_delay, self._send_next) # Start over | |
def timeoutConnection(self): | |
"""We also don't want the connection to timeout.""" | |
if self.really_done: | |
super(PersistentChannel, self).timeoutConnection() | |
# Monkey patch PersistentChannel in to replace TriggerSSHAsyncPtyChannel | |
twister.TriggerSSHAsyncPtyChannel = PersistentChannel | |
if __name__ == '__main__': | |
devices = ['arista-sw1'] | |
commands = ['show arp'] | |
p = Commando(devices=devices, commands=commands) | |
p.run() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
arista-sw1 | |
2015-09-23 14:59:48.728166 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 14:59:53.736746 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 14:59:58.747346 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:03.752687 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:08.758815 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:13.767237 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:18.772122 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:23.779500 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:28.789501 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:33.799315 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:38.807613 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:43.814169 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:48.824859 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:53.833535 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:00:58.843982 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:03.852134 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:08.863119 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:13.870926 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:18.879225 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:23.886698 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:28.895824 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:33.903060 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:38.911929 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:43.917121 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:48.923803 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:53.933978 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:01:58.945470 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:03.955552 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:08.964562 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:13.971728 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:18.980240 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:23.989627 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:28.997306 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:34.005602 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:39.013308 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:44.018279 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:49.029150 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:54.037078 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:02:59.043180 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:04.051839 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:09.060180 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:14.066895 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:19.073406 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:24.080962 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:29.087254 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:34.096188 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:39.106332 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:44.116092 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:49.122800 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:54.131325 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:03:59.138565 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:04.147199 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:09.155566 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:14.166516 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:19.174167 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:24.182583 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:29.191259 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:34.195342 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:39.202953 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:44.210828 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:49.217160 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:54.225976 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:04:59.231103 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:04.236676 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:09.247285 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:14.254271 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:19.262134 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:24.269259 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:29.275249 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:34.283484 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:39.290499 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:44.299236 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:49.307055 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:54.315838 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:05:59.322942 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:04.329588 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:09.338234 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:14.344901 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:19.353726 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:24.360432 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:29.368010 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:34.376163 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:39.382511 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:44.392562 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:49.397453 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:54.407498 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:06:59.415376 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:07:04.423623 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:07:09.429823 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:07:14.437719 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 | |
arista-sw1 | |
2015-09-23 15:07:19.448605 | |
Address Age (min) Hardware Addr Interface | |
192.168.56.1 0 0a00.2700.0000 Management1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment