From e2481b19a254048dae41a1ee8ed6b3356b8df539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 12 Mar 2017 00:44:33 +0100 Subject: [PATCH] tools/qvm-ls: various fixes 1. Fix displaying non-str values - convert them to string. 2. Always sort VMs. 3. Add app argument to main - required for tests. --- qubesmgmt/tools/qvm_ls.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/qubesmgmt/tools/qvm_ls.py b/qubesmgmt/tools/qvm_ls.py index 1c19cdc..61bfb08 100644 --- a/qubesmgmt/tools/qvm_ls.py +++ b/qubesmgmt/tools/qvm_ls.py @@ -109,10 +109,7 @@ class Column(object): if ret is None: return None - if isinstance(ret, int): - return str(ret) - - return ret + return str(ret) def __repr__(self): return '{}(head={!r})'.format(self.__class__.__name__, @@ -405,11 +402,11 @@ class Table(object): table_data = [] if not self.raw_data: table_data.append(self.get_head()) - for vm in self.app.domains: + for vm in sorted(self.app.domains): table_data.append(self.get_row(vm)) qubesmgmt.tools.print_table(table_data, stream=stream) else: - for vm in self.app.domains: + for vm in sorted(self.app.domains): stream.write('|'.join(self.get_row(vm)) + '\n') @@ -524,16 +521,17 @@ def get_parser(): return parser -def main(args=None): +def main(args=None, app=None): '''Main routine of :program:`qvm-ls`. :param list args: Optional arguments to override those delivered from \ command line. + :param app: Operate on given app object instead of instantiating new one. ''' parser = get_parser() try: - args = parser.parse_args(args) + args = parser.parse_args(args, app=app) except qubesmgmt.exc.QubesException as e: parser.print_error(str(e)) return 1