From: Keir Fraser Date: Wed, 11 Mar 2009 10:13:46 +0000 (+0000) Subject: xm: Sort pvSCSI devices information by virtual HCTL X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13992^2~117 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0b384c185ae2c82506dc1cf96518d8a996a4b9a6;p=xen.git xm: Sort pvSCSI devices information by virtual HCTL Signed-off-by: Masaki Kanno --- diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index 193141236a..2ffa50a0fe 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -2231,6 +2231,33 @@ def xm_pci_list_assignable_devices(args): print d.name, print +def vscsi_sort(devs): + def sort_hctl(ds, l): + s = [] + for d1 in ds: + for d2 in d1: + v_dev = sxp.child_value(d2, 'v-dev') + n = int(v_dev.split(':')[l]) + try: + j = s[n] + except IndexError: + j = [] + s.extend([ [] for _ in range(len(s), n+1) ]) + j.append(d2) + s[n] = j + return s + + for i in range(len(devs)): + ds1 = [ devs[i][1][0][1] ] + ds1 = sort_hctl(ds1, 3) + ds1 = sort_hctl(ds1, 2) + ds1 = sort_hctl(ds1, 1) + ds2 = [] + for d in ds1: + ds2.extend(d) + devs[i][1][0][1] = ds2 + return devs + def vscsi_convert_sxp_to_dict(dev_sxp): dev_dict = {} for opt_val in dev_sxp[1:]: @@ -2271,6 +2298,9 @@ def xm_scsi_list(args): else: devs = server.xend.domain.getDeviceSxprs(dom, 'vscsi') + # Sort devs by virtual HCTL. + devs = vscsi_sort(devs) + if use_long: map(PrettyPrint.prettyprint, devs) else: