Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: run.py

Issue 5611225295618048: Issue 1267 - Provide a way to run some command on multiple hosts (Closed)
Left Patch Set: Created Aug. 25, 2014, 2:43 p.m.
Right Patch Set: Print all logging output to stderr Created Aug. 29, 2014, 10:08 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « kick.py ('k') | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding: utf-8 2 # coding: utf-8
3 3
4 import sys 4 import sys
5 import os 5 import os
6 import re 6 import re
7 import subprocess 7 import subprocess
8 import getopt 8 import getopt
9 import yaml 9 import yaml
10 10
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 monitoringConfig = readMonitoringConfig() 89 monitoringConfig = readMonitoringConfig()
90 if not monitoringConfig: 90 if not monitoringConfig:
91 print >>sys.stderr, "Failed to parse monitoring configuration" 91 print >>sys.stderr, "Failed to parse monitoring configuration"
92 return [[], []] 92 return [[], []]
93 # Extract hosts and groups from monitoring config 93 # Extract hosts and groups from monitoring config
94 return processNode(monitoringConfig) 94 return processNode(monitoringConfig)
95 95
96 def resolveHostList(hosts): 96 def resolveHostList(hosts):
97 validHosts, validGroups = getValidHosts() 97 validHosts, validGroups = getValidHosts()
98 if not validHosts: 98 if not validHosts:
99 print "Warning: No valid hosts found, not validating" 99 print >>sys.stderr, "Warning: No valid hosts found, not validating"
100 return hosts 100 return hosts
101 101
102 result = set() 102 result = set()
103 for param in hosts: 103 for param in hosts:
104 if param in validGroups: 104 if param in validGroups:
105 for host in validGroups[param]: 105 for host in validGroups[param]:
106 if host == '*': 106 if host == '*':
107 result = result | validHosts 107 result = result | validHosts
108 else: 108 else:
109 result.add(host) 109 result.add(host)
(...skipping 14 matching lines...) Expand all
124 else: 124 else:
125 subprocess.check_call(command) 125 subprocess.check_call(command)
126 126
127 if __name__ == "__main__": 127 if __name__ == "__main__":
128 user, hosts, ignore_errors, args = parseOptions(sys.argv[1:]) 128 user, hosts, ignore_errors, args = parseOptions(sys.argv[1:])
129 selectedHosts = resolveHostList(hosts) 129 selectedHosts = resolveHostList(hosts)
130 if len(selectedHosts) == 0: 130 if len(selectedHosts) == 0:
131 print >>sys.stderr, 'No valid hosts or groups specified, nothing to do' 131 print >>sys.stderr, 'No valid hosts or groups specified, nothing to do'
132 sys.exit(0) 132 sys.exit(0)
133 for host in selectedHosts: 133 for host in selectedHosts:
134 print 'Running on %s...' % host 134 print >>sys.stderr, 'Running on %s...' % host
mathias 2014/08/25 16:21:25 If all logging would be printed to >>stderr (just
Wladimir Palant 2014/08/29 22:11:15 I'm not usually using scripts on the output. And t
135 runCommand(user, host, args, ignore_errors=ignore_errors) 135 runCommand(user, host, args, ignore_errors=ignore_errors)
LEFTRIGHT
« kick.py ('k') | no next file » | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld