add_trace_source_options(cmd_convert_dump) cmd_convert_dump.add_argument("-f", "--dumpfile", action="store", help="Trace dump file", default="buffers") cmd_convert_dump.set_defaults(func=convert_dump, paginate=False) cmd_download_dump = subparsers.add_parser( "download", help="download trace dump file (REST)", description=""" Downloads a trace dump via REST Api """) add_trace_source_options(cmd_download_dump) Client.add_arguments(cmd_download_dump, use_full_url=True) cmd_download_dump.set_defaults(func=download_dump, paginate=False) args = parser.parse_args() if getattr(args, 'paginate', False): less_process = subprocess.Popen(['less', '-FX'], stdin=subprocess.PIPE, text=True) sys.stdout = less_process.stdin else: less_process = None try: args.func(args) except InvalidArgumentsException as e:
import collections from osv.client import Client try: import curses curses.setupterm() clear = curses.tigetstr('clear').decode() except: clear = '\033[H\033[2J' parser = argparse.ArgumentParser(description=""" Connects to a running OSv guest through the HTTP API and periodically displays the list of threads getting most CPU time, similarly to the Linux top(1) command.""") Client.add_arguments(parser) args = parser.parse_args() client = Client(args) url = client.get_url() + "/os/threads" ssl_kwargs = client.get_request_kwargs() period = 2.0 # How many seconds between refreshes prevtime = collections.defaultdict(int) cpu = dict() name = dict() timems = 0 while True: start_refresh = time.time()
import collections from osv.client import Client try: import curses curses.setupterm() clear = curses.tigetstr('clear').decode() except: clear = '\033[H\033[2J' parser = argparse.ArgumentParser(description=""" Connects to a running OSv guest through the HTTP API and periodically displays the list of threads getting most CPU time, similarly to the Linux top(1) command.""") Client.add_arguments(parser) args = parser.parse_args() client = Client(args) url = client.get_url() + "/os/threads" ssl_kwargs = client.get_request_kwargs() period = 2.0 # How many seconds between refreshes prevtime = collections.defaultdict(int) cpu = dict() name = dict() timems = 0 while True: start_refresh = time.time()
cmd_convert_dump = subparsers.add_parser("convert-dump", help="convert trace dump file (REST)" , description=""" Converts trace dump acquired via REST Api to trace listing format """) add_trace_source_options(cmd_convert_dump) cmd_convert_dump.add_argument("-f", "--dumpfile", action="store", help="Trace dump file", default="buffers") cmd_convert_dump.set_defaults(func=convert_dump, paginate=False) cmd_download_dump = subparsers.add_parser("download", help="download trace dump file (REST)" , description=""" Downloads a trace dump via REST Api """) add_trace_source_options(cmd_download_dump) Client.add_arguments(cmd_download_dump, use_full_url=True) cmd_download_dump.set_defaults(func=download_dump, paginate=False) args = parser.parse_args() if getattr(args, 'paginate', False): less_process = subprocess.Popen(['less', '-FX'], stdin=subprocess.PIPE) sys.stdout = less_process.stdin else: less_process = None try: args.func(args) except InvalidArgumentsException as e: print "Invalid arguments:", e.message