Revision 5b23c34c scripts/gnt-job
b/scripts/gnt-job | ||
---|---|---|
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 |
|
Also available in: Unified diff