diff --git a/contrib/py/admin/lokinetmon b/contrib/py/admin/lokinetmon index 2c45b2435..d9cfea3bc 100755 --- a/contrib/py/admin/lokinetmon +++ b/contrib/py/admin/lokinetmon @@ -6,6 +6,7 @@ import sys import time import platform import os +import re from argparse import ArgumentParser as AP is_windows = lambda : platform.system().lower() == 'windows' @@ -40,12 +41,13 @@ except ImportError: print("for other linuxs do:") print("\tpip3 install --user geoip") print("for other linuxs you are responsible for obtaining your owen geoip databases, glhf") + time.sleep(1) else: print("install it with:") print("\tpip3 install --user geoip") - print("") - print("press enter to continue without geoip") - sys.stdin.read(1) + print() + print("press enter to continue without geoip") + sys.stdin.read(1) else: try: geoip_env_var = 'GEOIP_DB_FILE' @@ -86,6 +88,7 @@ def ip_to_flag(ip): class Monitor: _sample_size = 12 + introset_filter = None def __init__(self, url, introsetMode=False): self.txrate = 0 @@ -407,12 +410,14 @@ class Monitor: """ y_pos += 1 self.win.move(y_pos, 1) - self.win.addstr("localhost.loki") - y_pos = self._display_our_introset(y_pos, service) - y_pos += 1 + if self.introset_filter("localhost.loki"): + self.win.addstr("localhost.loki") + y_pos = self._display_our_introset(y_pos, service) + y_pos += 1 remotes = service['remoteSessions'] or [] for session in remotes: - y_pos = self._display_session_introset(y_pos, session) + if self.introset_filter(session['remoteIdentity']): + y_pos = self._display_session_introset(y_pos, session) def _display_intro(self, y_pos, intro, label, paths): y_pos += 1 @@ -544,6 +549,7 @@ def main(): ap.add_argument("--introset", action='store_const', const=True, default=False, help="run in introset inspection mode") ap.add_argument("--url", default='tcp://127.0.0.1:1190', type=str, help='url to lokinet rpc') + ap.add_argument('--introset-filter', default=None, type=str, help="while in introset inspection mode filter results by regex") args = ap.parse_args() @@ -551,6 +557,9 @@ def main(): args.url, args.introset ) + mon.introset_filter = lambda x : True + if args.introset_filter: + mon.introset_filter = lambda x : re.match(args.introset_filter, x) is not None mon.run() if __name__ == "__main__":