From: Anthony Liguori <aliguori@us.ibm.com>
To: xen-devel <xen-devel@lists.xensource.com>
Subject: Change in xm interface
Date: Fri, 17 Feb 2006 15:06:00 -0600 [thread overview]
Message-ID: <43F63AB8.6070407@us.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 407 bytes --]
This is a great patch, I just want to make sure everyone who has written
a tool against xm that is perhaps screen scrapping the output of xm
block-list or xm network-list that the interface has changed.
You will now have to use --long to get the same S-Expression output.
Perhaps this sort of changes should be announced on xen-announce in the
future? Is there such a list?
Regards,
Anthony Liguori
[-- Attachment #2: [Xen-changelog] This patch displays the network-list/block-list/vtpm-list using the 'xm' --]
[-- Type: message/rfc822, Size: 10899 bytes --]
From: Xen patchbot -unstable <patchbot-unstable@lists.xensource.com>
To: xen-changelog@lists.xensource.com
Subject: [Xen-changelog] This patch displays the network-list/block-list/vtpm-list using the 'xm'
Date: Fri, 17 Feb 2006 19:44:07 +0000
Message-ID: <E1FABWR-0001gR-KN@xenbits.xensource.com>
# HG changeset patch
# User emellor@leeni.uk.xensource.com
# Node ID 34f6a1efe52d8c5c722a2d423a0b26b469540a3a
# Parent aeeeedc6c9b754dc9d26b4bc12ab9d025578da6e
This patch displays the network-list/block-list/vtpm-list using the 'xm'
command. It supports the '--long' option.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
diff -r aeeeedc6c9b7 -r 34f6a1efe52d tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Fri Feb 17 17:22:23 2006
+++ b/tools/python/xen/xm/main.py Fri Feb 17 18:35:38 2006
@@ -90,18 +90,18 @@
where <DevId> may either be the device ID
or the device name as mounted in the guest"""
-block_list_help = "block-list <DomId> List virtual block devices for a domain"
+block_list_help = "block-list <DomId> [--long] List virtual block devices for a domain"
network_attach_help = """network-attach <DomID> [script=<script>] [ip=<ip>] [mac=<mac>]
[bridge=<bridge>] [backend=<backDomID>]
Create a new virtual network device """
network_detach_help = """network-detach <DomId> <DevId> Destroy a domain's virtual network
device, where <DevId> is the device ID."""
-network_list_help = "network-list <DomId> List virtual network interfaces for a domain"
+network_list_help = "network-list <DomId> [--long] List virtual network interfaces for a domain"
vnet_list_help = "vnet-list [-l|--long] list vnets"
vnet_create_help = "vnet-create <config> create a vnet from a config file"
vnet_delete_help = "vnet-delete <vnetid> delete a vnet"
-vtpm_list_help = "vtpm-list <DomId> list virtual TPM devices"
+vtpm_list_help = "vtpm-list <DomId> [--long] list virtual TPM devices"
short_command_list = [
"console",
@@ -684,29 +684,133 @@
from xen.xend.XendClient import server
print server.xend_node_log()
+def parse_dev_info(info):
+ def get_info(n, t, d):
+ i = 0
+ while i < len(info):
+ if (info[i][0] == n):
+ return t(info[i][1])
+ i = i + 1
+ return t(d)
+ return {
+ #common
+ 'backend-id' : get_info('backend-id', int, -1),
+ 'handle' : get_info('handle', int, 0),
+ 'state' : get_info('state', int, -1),
+ 'be-path' : get_info('backend', str, '??'),
+ 'event-ch' : get_info('event-channel',int, -1),
+ #network specific
+ 'virtual-device' : get_info('virtual-device', str, '??'),
+ 'tx-ring-ref': get_info('tx-ring-ref', int, -1),
+ 'rx-ring-ref': get_info('rx-ring-ref', int, -1),
+ 'mac' : get_info('mac', str, '??'),
+ #block-device specific
+ 'ring-ref' : get_info('ring-ref', int, -1),
+ }
+
+def has_long_option(args):
+ use_long = 0
+ try:
+ (options, params) = getopt.gnu_getopt(args, 'l', ['long'])
+ except getopt.GetoptError, opterr:
+ err(opterr)
+ sys.exit(1)
+
+ for (k, v) in options:
+ if k in ['-l', '--long']:
+ use_long = 1
+ return (use_long, params)
+
def xm_network_list(args):
- arg_check(args, "network-list", 1)
- dom = args[0]
- from xen.xend.XendClient import server
- for x in server.xend_domain_devices(dom, 'vif'):
- sxp.show(x)
- print
+ arg_check(args, "network-list", 1, 2)
+
+ (use_long, params) = has_long_option(args)
+
+ if len(params) == 0:
+ print 'No domain parameter given'
+ sys.exit(1)
+ dom = params[0]
+ from xen.xend.XendClient import server
+ if use_long:
+ devs = server.xend_domain_devices(dom, 'vif')
+ map(PrettyPrint.prettyprint, devs)
+ else:
+ hdr = 0
+ for x in server.xend_domain_devices(dom, 'vif'):
+ if hdr == 0:
+ print 'Idx BE MAC Addr. handle state evt-ch tx-/rx-ring-ref BE-path'
+ hdr = 1
+ ni = parse_dev_info(x[1])
+ ni['idx'] = int(x[0])
+ print ("%(idx)-3d "
+ "%(backend-id)-3d"
+ "%(mac)-17s "
+ "%(handle)-3d "
+ "%(state)-3d "
+ "%(event-ch)-3d "
+ "%(tx-ring-ref)-5d/%(rx-ring-ref)-5d "
+ "%(be-path)-30s "
+ % ni)
def xm_block_list(args):
- arg_check(args, "block-list", 1)
- dom = args[0]
- from xen.xend.XendClient import server
- for x in server.xend_domain_devices(dom, 'vbd'):
- sxp.show(x)
- print
+ arg_check(args, "block-list", 1, 2)
+
+ (use_long, params) = has_long_option(args)
+
+ if len(params) == 0:
+ print 'No domain parameter given'
+ sys.exit(1)
+ dom = params[0]
+ from xen.xend.XendClient import server
+ if use_long:
+ devs = server.xend_domain_devices(dom, 'vbd')
+ map(PrettyPrint.prettyprint, devs)
+ else:
+ hdr = 0
+ for x in server.xend_domain_devices(dom, 'vbd'):
+ if hdr == 0:
+ print 'Vdev BE handle state evt-ch ring-ref BE-path'
+ hdr = 1
+ ni = parse_dev_info(x[1])
+ ni['idx'] = int(x[0])
+ print ("%(idx)-3d "
+ "%(backend-id)-3d "
+ "%(handle)-3d "
+ "%(state)-3d "
+ "%(event-ch)-3d "
+ "%(ring-ref)-5d "
+ "%(be-path)-30s "
+ % ni)
def xm_vtpm_list(args):
- arg_check(args, "vtpm-list", 1)
- dom = args[0]
- from xen.xend.XendClient import server
- for x in server.xend_domain_devices(dom, 'vtpm'):
- sxp.show(x)
- print
+ arg_check(args, "vtpm-list", 1, 2)
+
+ (use_long, params) = has_long_option(args)
+
+ if len(params) == 0:
+ print 'No domain parameter given'
+ sys.exit(1)
+ dom = params[0]
+ from xen.xend.XendClient import server
+ if use_long:
+ devs = server.xend_domain_devices(dom, 'vtpm')
+ map(PrettyPrint.prettyprint, devs)
+ else:
+ hdr = 0
+ for x in server.xend_domain_devices(dom, 'vtpm'):
+ if hdr == 0:
+ print 'Idx BE handle state evt-ch ring-ref BE-path'
+ hdr = 1
+ ni = parse_dev_info(x[1])
+ ni['idx'] = int(x[0])
+ print ("%(idx)-3d "
+ "%(backend-id)-3d "
+ "%(handle)-3d "
+ "%(state)-3d "
+ "%(event-ch)-3d "
+ "%(ring-ref)-5d "
+ "%(be-path)-30s "
+ % ni)
def xm_block_attach(args):
arg_check(args, 'block-attach', 4, 5)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next reply other threads:[~2006-02-17 21:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-17 21:06 Anthony Liguori [this message]
2006-02-17 21:58 ` Change in xm interface Ewan Mellor
2006-02-17 22:13 ` Anthony Liguori
2006-02-17 22:25 ` Nivedita Singhvi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43F63AB8.6070407@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.