Skip to content

Instantly share code, notes, and snippets.

@jathanism
Last active September 23, 2015 22:19
Show Gist options
  • Save jathanism/ea208742882afff89ded to your computer and use it in GitHub Desktop.
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…
#!/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()
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