22 |
22 |
import sys
|
23 |
23 |
import os
|
24 |
24 |
import itertools
|
|
25 |
import time
|
25 |
26 |
from optparse import make_option
|
26 |
27 |
from cStringIO import StringIO
|
27 |
28 |
|
... | ... | |
64 |
65 |
"ops": "OpCodes",
|
65 |
66 |
"opresult": "OpCode_result",
|
66 |
67 |
"opstatus": "OpCode_status",
|
|
68 |
"oplog": "OpCode_log",
|
67 |
69 |
"summary": "Summary",
|
68 |
70 |
}
|
69 |
71 |
else:
|
... | ... | |
129 |
131 |
else:
|
130 |
132 |
return str(value)
|
131 |
133 |
|
132 |
|
selected_fields = ["id", "status", "ops", "opresult", "opstatus"]
|
|
134 |
selected_fields = ["id", "status", "ops", "opresult", "opstatus", "oplog"]
|
133 |
135 |
|
134 |
136 |
result = GetClient().QueryJobs(args, selected_fields)
|
135 |
137 |
|
136 |
138 |
first = True
|
137 |
139 |
|
138 |
|
for job_id, status, ops, opresult, opstatus in result:
|
|
140 |
for job_id, status, ops, opresult, opstatus, oplog in result:
|
139 |
141 |
if not first:
|
140 |
142 |
format(0, "")
|
141 |
143 |
else:
|
... | ... | |
148 |
150 |
|
149 |
151 |
format(1, "Status: %s" % status)
|
150 |
152 |
format(1, "Opcodes:")
|
151 |
|
for opcode, result, status in zip(ops, opresult, opstatus):
|
|
153 |
for opcode, result, status, log in zip(ops, opresult, opstatus, oplog):
|
152 |
154 |
format(2, "%s" % opcode["OP_ID"])
|
153 |
155 |
format(3, "Status: %s" % status)
|
154 |
156 |
format(3, "Input fields:")
|
... | ... | |
175 |
177 |
format(4, "%s: %s" % (key, result_helper(val)))
|
176 |
178 |
else:
|
177 |
179 |
format(3, "Result: %s" % result)
|
|
180 |
format(3, "Execution log:")
|
|
181 |
for serial, (sec, usec), log_type, log_msg in log:
|
|
182 |
time_txt = time.strftime("%F %T", time.localtime(sec)) + ".%06d" % usec
|
|
183 |
encoded = str(log_msg).encode('string_escape')
|
|
184 |
format(4, "%s:%s:%s %s" % (serial, time_txt, log_type, encoded))
|
178 |
185 |
return 0
|
179 |
186 |
|
180 |
187 |
|