* [PATCH] Fix xm block/network-detach command (take2)
@ 2007-08-09 13:12 Masaki Kanno
0 siblings, 0 replies; 6+ messages in thread
From: Masaki Kanno @ 2007-08-09 13:12 UTC (permalink / raw)
To: xen-devel; +Cc: jfehlig, mats
[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 255 bytes --]
Hi,
I updated the patch for latest xen-unstable.
Please look at the following for the last patch.
http://lists.xensource.com/archives/html/xen-devel/2007-08/msg00043.html
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Best regards,
Kan
[-- Attachment #2: xm_block_detach_take2.patch --]
[-- Type: application/octet-stream, Size: 9957 bytes --]
diff -r 7953164cebb6 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Tue Aug 07 09:07:29 2007 +0100
+++ b/tools/python/xen/xend/XendDomainInfo.py Thu Aug 09 20:46:47 2007 +0900
@@ -558,9 +558,64 @@ class XendDomainInfo:
for devclass in XendDevices.valid_devices():
self.getDeviceController(devclass).waitForDevices()
- def destroyDevice(self, deviceClass, devid, force = False):
- log.debug("dev = %s", devid)
- return self.getDeviceController(deviceClass).destroyDevice(devid, force)
+ def destroyDevice(self, deviceClass, devid, force = False, rm_cfg = False):
+ log.debug("XendDomainInfo.destroyDevice: deviceClass = %s, device = %s",
+ deviceClass, devid)
+
+ if rm_cfg:
+ # Convert devid to device number. A device number is
+ # needed to remove its configuration.
+ dev = self.getDeviceController(deviceClass).convertToDeviceNumber(devid)
+
+ # Save current sxprs. A device number and a backend
+ # path are needed to remove its configuration but sxprs
+ # do not have those after calling destroyDevice.
+ sxprs = self.getDeviceSxprs(deviceClass)
+
+ rc = None
+ if self.domid is not None:
+ rc = self.getDeviceController(deviceClass).destroyDevice(devid, force)
+ if not force and rm_cfg:
+ # The backend path, other than the device itself,
+ # has to be passed because its accompanied frontend
+ # path may be void until its removal is actually
+ # issued. It is probable because destroyDevice is
+ # issued first.
+ for dev_num, dev_info in sxprs:
+ dev_num = int(dev_num)
+ if dev_num == dev:
+ for x in dev_info:
+ if x[0] == 'backend':
+ backend = x[1]
+ break
+ break
+ self._waitForDevice_destroy(deviceClass, devid, backend)
+
+ if rm_cfg:
+ if deviceClass == 'vif':
+ if self.domid is not None:
+ for dev_num, dev_info in sxprs:
+ dev_num = int(dev_num)
+ if dev_num == dev:
+ for x in dev_info:
+ if x[0] == 'mac':
+ mac = x[1]
+ break
+ break
+ dev_info = self.getDeviceInfo_vif(mac)
+ else:
+ _, dev_info = sxprs[dev]
+ else: # 'vbd' or 'tap'
+ dev_info = self.getDeviceInfo_vbd(dev)
+ if dev_info is None:
+ return rc
+
+ dev_uuid = sxp.child_value(dev_info, 'uuid')
+ del self.info['devices'][dev_uuid]
+ self.info['%s_refs' % deviceClass].remove(dev_uuid)
+ xen.xend.XendDomain.instance().managed_config_save(self)
+
+ return rc
def getDeviceSxprs(self, deviceClass):
if self._stateGet() in (DOM_STATE_RUNNING, DOM_STATE_PAUSED):
@@ -573,6 +628,23 @@ class XendDomainInfo:
sxprs.append([dev_num, dev_info])
dev_num += 1
return sxprs
+
+ def getDeviceInfo_vif(self, mac):
+ for dev_type, dev_info in self.info.all_devices_sxpr():
+ if dev_type != 'vif':
+ continue
+ if mac == sxp.child_value(dev_info, 'mac'):
+ return dev_info
+
+ def getDeviceInfo_vbd(self, devid):
+ for dev_type, dev_info in self.info.all_devices_sxpr():
+ if dev_type != 'vbd' and dev_type != 'tap':
+ continue
+ dev = sxp.child_value(dev_info, 'dev')
+ dev = dev.split(':')[0]
+ dev = self.getDeviceController(dev_type).convertToDeviceNumber(dev)
+ if devid == dev:
+ return dev_info
def setMemoryTarget(self, target):
@@ -1321,6 +1393,10 @@ class XendDomainInfo:
deviceClass, config = self.info['devices'].get(dev_uuid)
self._waitForDevice(deviceClass, config['devid'])
+ def _waitForDevice_destroy(self, deviceClass, devid, backpath):
+ return self.getDeviceController(deviceClass).waitForDevice_destroy(
+ devid, backpath)
+
def _reconfigureDevice(self, deviceClass, devid, devconfig):
return self.getDeviceController(deviceClass).reconfigureDevice(
devid, devconfig)
diff -r 7953164cebb6 tools/python/xen/xend/server/DevController.py
--- a/tools/python/xen/xend/server/DevController.py Tue Aug 07 09:07:29 2007 +0100
+++ b/tools/python/xen/xend/server/DevController.py Thu Aug 09 21:10:08 2007 +0900
@@ -28,17 +28,19 @@ from xen.xend.xenstore.xswatch import xs
import os
-DEVICE_CREATE_TIMEOUT = 100
+DEVICE_CREATE_TIMEOUT = 100
+DEVICE_DESTROY_TIMEOUT = 100
HOTPLUG_STATUS_NODE = "hotplug-status"
HOTPLUG_ERROR_NODE = "hotplug-error"
HOTPLUG_STATUS_ERROR = "error"
HOTPLUG_STATUS_BUSY = "busy"
-Connected = 1
-Error = 2
-Missing = 3
-Timeout = 4
-Busy = 5
+Connected = 1
+Error = 2
+Missing = 3
+Timeout = 4
+Busy = 5
+Disconnected = 6
xenbusState = {
'Unknown' : 0,
@@ -185,6 +187,18 @@ class DevController:
(devid, self.deviceClass, err))
+ def waitForDevice_destroy(self, devid, backpath):
+ log.debug("Waiting for %s - destroyDevice.", devid)
+
+ if not self.hotplug:
+ return
+
+ status = self.waitForBackend_destroy(backpath)
+
+ if status == Timeout:
+ raise VmError("Device %s (%s) could not be disconnected. " %
+ (devid, self.deviceClass))
+
def reconfigureDevice(self, devid, config):
"""Reconfigure the specified device.
@@ -209,12 +223,7 @@ class DevController:
here.
"""
- try:
- dev = int(devid)
- except ValueError:
- # Does devid contain devicetype/deviceid?
- # Propogate exception if unable to find an integer devid
- dev = int(type(devid) is str and devid.split('/')[-1] or None)
+ dev = self.convertToDeviceNumber(devid)
# Modify online status /before/ updating state (latter is watched by
# drivers, so this ordering avoids a race).
@@ -282,6 +291,15 @@ class DevController:
config_dict = self.getDeviceConfiguration(devid)
all_configs[devid] = config_dict
return all_configs
+
+
+ def convertToDeviceNumber(self, devid):
+ try:
+ return int(devid)
+ except ValueError:
+ # Does devid contain devicetype/deviceid?
+ # Propogate exception if unable to find an integer devid
+ return int(type(devid) is str and devid.split('/')[-1] or None)
## protected:
@@ -513,6 +531,19 @@ class DevController:
return (Missing, None)
+ def waitForBackend_destroy(self, backpath):
+
+ statusPath = backpath + '/' + HOTPLUG_STATUS_NODE
+ ev = Event()
+ result = { 'status': Timeout }
+
+ xswatch(statusPath, deviceDestroyCallback, ev, result)
+
+ ev.wait(DEVICE_DESTROY_TIMEOUT)
+
+ return result['status']
+
+
def backendPath(self, backdom, devid):
"""Construct backend path given the backend domain and device id.
@@ -561,3 +592,19 @@ def hotplugStatusCallback(statusPath, ev
ev.set()
return 0
+
+
+def deviceDestroyCallback(statusPath, ev, result):
+ log.debug("deviceDestroyCallback %s.", statusPath)
+
+ status = xstransact.Read(statusPath)
+
+ if status is None:
+ result['status'] = Disconnected
+ else:
+ return 1
+
+ log.debug("deviceDestroyCallback %d.", result['status'])
+
+ ev.set()
+ return 0
diff -r 7953164cebb6 tools/python/xen/xend/server/blkif.py
--- a/tools/python/xen/xend/server/blkif.py Tue Aug 07 09:07:29 2007 +0100
+++ b/tools/python/xen/xend/server/blkif.py Thu Aug 09 21:10:21 2007 +0900
@@ -165,11 +165,23 @@ class BlkifController(DevController):
try:
DevController.destroyDevice(self, devid, force)
except ValueError:
- devid_end = type(devid) is str and devid.split('/')[-1] or None
+ dev = self.convertToDeviceNumber(devid)
for i in self.deviceIDs():
- d = self.readBackend(i, 'dev')
- if d == devid or (devid_end and d == devid_end):
+ if i == dev:
DevController.destroyDevice(self, i, force)
return
raise VmError("Device %s not connected" % devid)
+
+ def convertToDeviceNumber(self, devid):
+ try:
+ dev = int(devid)
+ except ValueError:
+ if type(devid) is not str:
+ raise VmError("devid %s is wrong type" % str(devid))
+ try:
+ dev = devid.split('/')[-1]
+ dev = int(dev)
+ except ValueError:
+ dev = blkif.blkdev_name_to_number(dev)
+ return dev
diff -r 7953164cebb6 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Tue Aug 07 09:07:29 2007 +0100
+++ b/tools/python/xen/xm/main.py Thu Aug 09 19:50:48 2007 +0900
@@ -2186,6 +2186,7 @@ def xm_network_attach(args):
def detach(args, deviceClass):
+ rm_cfg = True
dom = args[0]
dev = args[1]
try:
@@ -2196,7 +2197,7 @@ def detach(args, deviceClass):
except IndexError:
force = None
- server.xend.domain.destroyDevice(dom, deviceClass, dev, force)
+ server.xend.domain.destroyDevice(dom, deviceClass, dev, force, rm_cfg)
def xm_block_detach(args):
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix xm block/network-detach command (take2)
@ 2007-08-09 18:49 Jim Fehlig
2007-08-10 8:59 ` Masaki Kanno
2007-08-10 22:08 ` Jim Fehlig
0 siblings, 2 replies; 6+ messages in thread
From: Jim Fehlig @ 2007-08-09 18:49 UTC (permalink / raw)
To: Masaki Kanno; +Cc: xen-devel, mats
Masaki Kanno wrote:
> Hi,
>
> I updated the patch for latest xen-unstable.
>
> Please look at the following for the last patch.
> http://lists.xensource.com/archives/html/xen-devel/2007-08/msg00043.html
>
Hi Masaki,
I tested your patch briefly on c/s 15672.
klutina:/usr/lib64/python/xen/xend # xm li
Name ID Mem VCPUs State Time(s)
Domain-0 0 1343 2 r----- 5760.4
sles10 9 512 1 r----- 0.9
klutina:/usr/lib64/python/xen/xend # xm block-list 9
Vdev BE handle state evt-ch ring-ref BE-path
51712 0 0 4 9 522 /local/domain/0/backend/vbd/9/51712
klutina:/usr/lib64/python/xen/xend # xm block-attach 9
tap:aoi:/tests/images/sles10_graphics/disk1 xvdb r
klutina:/usr/lib64/python/xen/xend # xm block-list 9
Vdev BE handle state evt-ch ring-ref BE-path
51712 0 0 4 9 522 /local/domain/0/backend/vbd/9/51712
51728 0 0 3 10 676 /local/domain/0/backend/tap/9/51728
51728 0 0 3 10 676 /local/domain/0/backend/tap/9/51728
klutina:/usr/lib64/python/xen/xend # xm block-detach 9 xvdb
Error: 'tap_refs'
Usage: xm block-detach <Domain> <DevId> [-f|--force]
Destroy a domain's virtual block device.
klutina:/usr/lib64/python/xen/xend # xm block-list 9
Vdev BE handle state evt-ch ring-ref BE-path
51712 0 0 4 9 522 /local/domain/0/backend/vbd/9/51712
The device was unplugged but its config not removed. From xend.log:
File "/usr/lib64/python2.4/xen/xend/XendDomainInfo.py", line 615, in
destroyDevice
self.info['%s_refs' % deviceClass].remove(dev_uuid)
KeyError: 'tap_refs'
I think refs for the various disk types all fall under 'vbd_refs'.
Also, when trying to detach a disk that a pv domU has mounted, I get
this error (after 100 second timeout):
klutina:/usr/lib64/python/xen/xend # xm block-list 10
Vdev BE handle state evt-ch ring-ref BE-path
51712 0 0 4 12 522 /local/domain/0/backend/vbd/10/51712
51728 0 0 4 13 523 /local/domain/0/backend/vbd/10/51728
klutina:/usr/lib64/python/xen/xend # xm block-detach 10 xvdb
(...... wait 100 seconds .......)
Error: Device xvdb not connected
Usage: xm block-detach <Domain> <DevId> [-f|--force]
Destroy a domain's virtual block device.
The behavior is fine (i.e. the disk is still attached and remains in
stored config) but the error message is misleading. xvbd is connected,
its just the front-end won't let go AFAIK.
Regards,
Jim
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix xm block/network-detach command (take2)
2007-08-09 18:49 [PATCH] Fix xm block/network-detach command (take2) Jim Fehlig
@ 2007-08-10 8:59 ` Masaki Kanno
2007-08-17 8:25 ` Masaki Kanno
2007-08-10 22:08 ` Jim Fehlig
1 sibling, 1 reply; 6+ messages in thread
From: Masaki Kanno @ 2007-08-10 8:59 UTC (permalink / raw)
To: Jim Fehlig; +Cc: xen-devel, mats
[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 1915 bytes --]
Hi Jim,
Thanks for your tests.
>I tested your patch briefly on c/s 15672.
<snip>
>The device was unplugged but its config not removed. From xend.log:
>
>File "/usr/lib64/python2.4/xen/xend/XendDomainInfo.py", line 615, in
>destroyDevice
>self.info['%s_refs' % deviceClass].remove(dev_uuid)
>KeyError: 'tap_refs'
>
>I think refs for the various disk types all fall under 'vbd_refs'.
I tested blktap with the same way as your operation. But I did not
encounter the command error as follows.
But your thinking is right, so I wrote a small patch to remove the
error message. Could you test the patch again?
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 747 2 r----- 89.9
vm1 1 256 1 -b---- 0.7
# xm block-list vm1
Vdev BE handle state evt-ch ring-ref BE-path
769 0 0 4 6 8 /local/domain/0/backend/vbd/1/769
# xm block-attach vm1 tap:aio:/xen/second.img xvdb r
# xm block-list vm1
Vdev BE handle state evt-ch ring-ref BE-path
769 0 0 4 6 8 /local/domain/0/backend/vbd/1/769
51728 0 0 4 8 836 /local/domain/0/backend/tap/1/51728
# xm block-detach vm1 xvdb
# xm block-list vm1
Vdev BE handle state evt-ch ring-ref BE-path
769 0 0 4 6 8 /local/domain/0/backend/vbd/1/769
>Also, when trying to detach a disk that a pv domU has mounted, I get
>this error (after 100 second timeout):
<snip>
>The behavior is fine (i.e. the disk is still attached and remains in
>stored config) but the error message is misleading. xvbd is connected,
>its just the front-end won't let go AFAIK.
I'd like to improve the error message. Could you give me thinking
time about 2 weeks?
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Best regards,
Kan
[-- Attachment #2: fix_staging_cs15716.patch --]
[-- Type: application/octet-stream, Size: 612 bytes --]
diff -r 95f90f24f3b1 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Thu Aug 09 16:21:41 2007 +0100
+++ b/tools/python/xen/xend/XendDomainInfo.py Fri Aug 10 17:12:08 2007 +0900
@@ -607,6 +607,9 @@ class XendDomainInfo:
_, dev_info = sxprs[dev]
else: # 'vbd' or 'tap'
dev_info = self.getDeviceInfo_vbd(dev)
+ # To remove the UUID of the device from refs,
+ # deviceClass must be always 'vbd'.
+ deviceClass = 'vbd'
if dev_info is None:
return rc
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix xm block/network-detach command (take2)
2007-08-09 18:49 [PATCH] Fix xm block/network-detach command (take2) Jim Fehlig
2007-08-10 8:59 ` Masaki Kanno
@ 2007-08-10 22:08 ` Jim Fehlig
2007-08-17 8:24 ` Masaki Kanno
1 sibling, 1 reply; 6+ messages in thread
From: Jim Fehlig @ 2007-08-10 22:08 UTC (permalink / raw)
To: Masaki Kanno; +Cc: xen-devel
Masaki Kanno wrote:
> Hi Jim,
>
> Thanks for your tests.
>
>
>> I tested your patch briefly on c/s 15672.
>>
> <snip>
>
>> The device was unplugged but its config not removed. From xend.log:
>>
>> File "/usr/lib64/python2.4/xen/xend/XendDomainInfo.py", line 615, in
>> destroyDevice
>> self.info['%s_refs' % deviceClass].remove(dev_uuid)
>> KeyError: 'tap_refs'
>>
>> I think refs for the various disk types all fall under 'vbd_refs'.
>>
>
> I tested blktap with the same way as your operation. But I did not
> encounter the command error as follows.
> But your thinking is right, so I wrote a small patch to remove the
> error message. Could you test the patch again?
>
Looks good with your additional patch. Thanks.
<snip>
>> The behavior is fine (i.e. the disk is still attached and remains in
>> stored config) but the error message is misleading. xvbd is connected,
>> its just the front-end won't let go AFAIK.
>>
>
> I'd like to improve the error message. Could you give me thinking
> time about 2 weeks?
>
Sure. I just noticed it while testing but spent no time investigating.
Regards,
Jim
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix xm block/network-detach command (take2)
2007-08-10 22:08 ` Jim Fehlig
@ 2007-08-17 8:24 ` Masaki Kanno
0 siblings, 0 replies; 6+ messages in thread
From: Masaki Kanno @ 2007-08-17 8:24 UTC (permalink / raw)
To: Jim Fehlig; +Cc: xen-devel
Hi Jim,
Thanks for your review.
Best regards,
Kan
Fri, 10 Aug 2007 16:08:23 -0600, Jim Fehlig wrote:
>Masaki Kanno wrote:
>> Hi Jim,
>>
>> Thanks for your tests.
>>
>>
>>> I tested your patch briefly on c/s 15672.
>>>
>> <snip>
>>
>>> The device was unplugged but its config not removed. From xend.log:
>>>
>>> File "/usr/lib64/python2.4/xen/xend/XendDomainInfo.py", line 615, in
>>> destroyDevice
>>> self.info['%s_refs' % deviceClass].remove(dev_uuid)
>>> KeyError: 'tap_refs'
>>>
>>> I think refs for the various disk types all fall under 'vbd_refs'.
>>>
>>
>> I tested blktap with the same way as your operation. But I did not
>> encounter the command error as follows.
>> But your thinking is right, so I wrote a small patch to remove the
>> error message. Could you test the patch again?
>>
>
>Looks good with your additional patch. Thanks.
>
><snip>
>>> The behavior is fine (i.e. the disk is still attached and remains in
>>> stored config) but the error message is misleading. xvbd is connected,
>>> its just the front-end won't let go AFAIK.
>>>
>>
>> I'd like to improve the error message. Could you give me thinking
>> time about 2 weeks?
>>
>
>Sure. I just noticed it while testing but spent no time investigating.
>
>Regards,
>Jim
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix xm block/network-detach command (take2)
2007-08-10 8:59 ` Masaki Kanno
@ 2007-08-17 8:25 ` Masaki Kanno
0 siblings, 0 replies; 6+ messages in thread
From: Masaki Kanno @ 2007-08-17 8:25 UTC (permalink / raw)
To: xen-devel, keir; +Cc: Jim Fehlig, mats
[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 2417 bytes --]
Hi Keir,
I send a patch. It resolves the problem that Jim found.
Could you apply it?
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Best regards,
Kan
Fri, 10 Aug 2007 17:59:19 +0900, Masaki Kanno wrote:
>Hi Jim,
>
>Thanks for your tests.
>
>>I tested your patch briefly on c/s 15672.
><snip>
>>The device was unplugged but its config not removed. From xend.log:
>>
>>File "/usr/lib64/python2.4/xen/xend/XendDomainInfo.py", line 615, in
>>destroyDevice
>>self.info['%s_refs' % deviceClass].remove(dev_uuid)
>>KeyError: 'tap_refs'
>>
>>I think refs for the various disk types all fall under 'vbd_refs'.
>
>I tested blktap with the same way as your operation. But I did not
>encounter the command error as follows.
>But your thinking is right, so I wrote a small patch to remove the
>error message. Could you test the patch again?
>
># xm list
>Name ID Mem VCPUs State
>Time(s)
>Domain-0 0 747 2 r-----
>89.9
>vm1 1 256 1 -b----
>0.7
># xm block-list vm1
>Vdev BE handle state evt-ch ring-ref BE-path
>769 0 0 4 6 8 /local/domain/0/backend/vbd/1/769
># xm block-attach vm1 tap:aio:/xen/second.img xvdb r
># xm block-list vm1
>Vdev BE handle state evt-ch ring-ref BE-path
>769 0 0 4 6 8 /local/domain/0/backend/vbd/1/769
>51728 0 0 4 8 836 /local/domain/0/backend/tap/1/51728
># xm block-detach vm1 xvdb
># xm block-list vm1
>Vdev BE handle state evt-ch ring-ref BE-path
>769 0 0 4 6 8 /local/domain/0/backend/vbd/1/769
>
>
>>Also, when trying to detach a disk that a pv domU has mounted, I get
>>this error (after 100 second timeout):
><snip>
>>The behavior is fine (i.e. the disk is still attached and remains in
>>stored config) but the error message is misleading. xvbd is connected,
>>its just the front-end won't let go AFAIK.
>
>I'd like to improve the error message. Could you give me thinking
>time about 2 weeks?
>
>
>Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>
>Best regards,
> Kan
>
>
>-------------------------------text/plain-------------------------------
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel
[-- Attachment #2: fix_cs15716.patch --]
[-- Type: application/octet-stream, Size: 612 bytes --]
diff -r cd511c380e03 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Thu Aug 16 16:00:17 2007 +0100
+++ b/tools/python/xen/xend/XendDomainInfo.py Fri Aug 17 09:39:12 2007 +0900
@@ -607,6 +607,9 @@ class XendDomainInfo:
_, dev_info = sxprs[dev]
else: # 'vbd' or 'tap'
dev_info = self.getDeviceInfo_vbd(dev)
+ # To remove the UUID of the device from refs,
+ # deviceClass must be always 'vbd'.
+ deviceClass = 'vbd'
if dev_info is None:
return rc
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-08-17 8:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-09 18:49 [PATCH] Fix xm block/network-detach command (take2) Jim Fehlig
2007-08-10 8:59 ` Masaki Kanno
2007-08-17 8:25 ` Masaki Kanno
2007-08-10 22:08 ` Jim Fehlig
2007-08-17 8:24 ` Masaki Kanno
-- strict thread matches above, loose matches on Subject: below --
2007-08-09 13:12 Masaki Kanno
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.