timerange argument
authorJulien Desfossez <jdesfossez@efficios.com>
Thu, 22 Jan 2015 17:38:46 +0000 (12:38 -0500)
committerJulien Desfossez <jdesfossez@efficios.com>
Thu, 22 Jan 2015 17:38:46 +0000 (12:38 -0500)
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
LTTngAnalyzes/common.py
iotop.py

index 858d6c5983acd2446be2f8e44bd61dd5c0b322cb..7f8b9956b6180ec57174c833ea132b7757d531e9 100644 (file)
@@ -364,6 +364,21 @@ def trace_collection_date(handle):
         return (y, m, d)
 
 
+def extract_timerange(handle, timerange, gmt):
+    p = re.compile('^\[(?P<begin>.*),(?P<end>.*)\]$')
+    if not p.match(timerange):
+        return None
+    b = p.search(timerange).group("begin").strip()
+    e = p.search(timerange).group("end").strip()
+    begin = date_to_epoch_nsec(handle, b, gmt)
+    if begin is None:
+        return (None, None)
+    end = date_to_epoch_nsec(handle, e, gmt)
+    if end is None:
+        return (None, None)
+    return (begin, end)
+
+
 def date_to_epoch_nsec(handle, date, gmt):
     # match 2014-12-12 17:29:43.802588035 or 2014-12-12T17:29:43.802588035
     p1 = re.compile('^(?P<year>\d\d\d\d)-(?P<mon>[01]\d)-'
index 0b5334f8426dd08985e99ae69995226abae0ad77..4077fa7ca9c09f7ee31702a7a1fca32d971055c7 100755 (executable)
--- a/iotop.py
+++ b/iotop.py
@@ -24,7 +24,7 @@ except ImportError:
 from LTTngAnalyzes.state import State
 from LTTngAnalyzes.common import convert_size, MSEC_PER_NSEC, NSEC_PER_SEC, \
     ns_to_asctime, date_to_epoch_nsec, is_multi_day_trace_collection, \
-    IORequest, Syscalls_stats, ns_to_hour_nsec, str_to_bytes
+    IORequest, Syscalls_stats, ns_to_hour_nsec, str_to_bytes, extract_timerange
 from LTTngAnalyzes.progressbar import progressbar_setup, progressbar_update, \
     progressbar_finish
 from ascii_graph import Pyasciigraph
@@ -780,6 +780,7 @@ if __name__ == "__main__":
                         'of local time')
     parser.add_argument('--begin', type=str, help='start time')
     parser.add_argument('--end', type=str, help='end time')
+    parser.add_argument('--timerange', type=str, help='time range')
     parser.add_argument('--seconds', action="store_true",
                         help='display time in seconds since epoch')
     parser.add_argument('--stats', action="store_true",
@@ -819,10 +820,23 @@ if __name__ == "__main__":
         sys.exit(1)
 
     args.multi_day = is_multi_day_trace_collection(handle)
-    if args.begin:
-        args.begin = date_to_epoch_nsec(handle, args.begin, args.gmt)
-    if args.end:
-        args.end = date_to_epoch_nsec(handle, args.end, args.gmt)
+    if args.timerange:
+        (args.begin, args.end) = extract_timerange(handle, args.timerange,
+                                                   args.gmt)
+        if args.begin is None or args.end is None:
+            print("Invalid timeformat")
+            sys.exit(1)
+    else:
+        if args.begin:
+            args.begin = date_to_epoch_nsec(handle, args.begin, args.gmt)
+        if args.begin is None:
+            print("Invalid timeformat")
+            sys.exit(1)
+        if args.end:
+            args.end = date_to_epoch_nsec(handle, args.end, args.gmt)
+        if args.end is None:
+            print("Invalid timeformat")
+            sys.exit(1)
 
     if args.max == -1:
         args.max = None
This page took 0.026526 seconds and 5 git commands to generate.