forked from nocproject/noc
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdump-crashinfo.py
39 lines (30 loc) · 1.14 KB
/
dump-crashinfo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ---------------------------------------------------------------------
# ./noc dump-crashinfo
# ---------------------------------------------------------------------
# Copyright (C) 2007-2020 The NOC Project
# See LICENSE for details
# ---------------------------------------------------------------------
# Python modules
import argparse
import time
from pickle import load
# NOC modules
from noc.core.management.base import BaseCommand
class Command(BaseCommand):
help = "Dump crashinfo file"
def add_arguments(self, parser):
parser.add_argument("args", nargs=argparse.REMAINDER, help="List traceback files")
def handle(self, *args, **options):
for path in args:
with open(path) as f:
self.dump_crashinfo(path, load(f))
def dump_crashinfo(self, path, data):
ts = time.localtime(data.get("ts", 0))
print("=" * 72)
print("PATH :", path)
print("COMPONENT :", data.get("component"))
print("TIME : %04d-%02d-%02d %02d:%02d:%02d" % ts[:6])
print("-" * 72)
print(data.get("traceback"))
if __name__ == "__main__":
Command().run()