#!/usr/bin/python # mclu (mini cluster) # Copyright (C) 2014 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import argparse import libvirt import lib def cmdline (subparsers): p = subparsers.add_parser ( 'list', help='list virtual machines', ) p.add_argument ( '--running', action='store_const', const=True, help='list only running VMs' ) p.add_argument ( '--inactive', action='store_const', const=True, help='list only inactive VMs' ) p.set_defaults (run=run) def run (c, args, nodes): show_running = True show_inactive = True if not args.running or not args.inactive: if args.running: show_running = True show_inactive = False if args.inactive: show_running = False show_inactive = True running, inactive = lib.get_all_guests (c, nodes.values ()) if show_running: for guest in running.values(): node_name = guest['node'].name dom_name = guest['dom'].name() dom_state = lib.pretty_run_status (guest['dom'].state()[0]) print "%s:%s\t%s" % (node_name, dom_name, dom_state) if show_inactive: for name in inactive.values(): print "%s\tinactive" % name