Problem specifying device when attaching volumes on XEN
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Critical
|
Brian Waldon |
Bug Description
If I try something like
nova volume-attach de5410d9-
The following traceback shows up:
2012-02-28 14:19:05 AUDIT nova.compute.
9-9948-
2012-02-28 14:19:05 DEBUG nova.rpc.common [-] Making asynchronous call on volume.z2-api1 ... from (pid=10989) multicall /usr/lib/
/rpc/amqp.py:318
2012-02-28 14:19:05 DEBUG nova.rpc.common [-] MSG_ID is ef3894da50e740b
/amqp.py:321
2012-02-28 14:19:05 DEBUG nova.virt.
u'target_iqn': u'iqn.2010-
ttach_volume /usr/lib/
2012-02-28 14:19:05 DEBUG nova.virt.
u'iqn.2010-
/nova/virt/
2012-02-28 14:19:05 WARNING nova.virt.
2012-02-28 14:19:05 DEBUG nova.virt.
from (pid=10989) parse_volume_info /usr/lib/
2012-02-28 14:19:05 ERROR nova.compute.
9-9948-
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
ackspace:
(nova.compute.
2012-02-28 14:19:05 DEBUG nova.rpc.common [-] Making asynchronous call on volume.z2-api1 ... from (pid=10989) multicall /usr/lib/
/rpc/amqp.py:318
2012-02-28 14:19:05 DEBUG nova.rpc.common [-] MSG_ID is 953b08b88c5842f
/amqp.py:321
and the volume doesn't get properly attached.
If I instead run: nova volume-attach de5410d9-
The operation completes and mounts as /dev/xvde in the vm
Changed in nova: | |
milestone: | none → essex-4 |
Changed in nova: | |
assignee: | Vish Ishaya (vishvananda) → Brian Waldon (bcwaldon) |
Changed in nova: | |
status: | Triaged → In Progress |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | essex-4 → 2012.1 |
looks like the translation doesn't support xv...
nova/virt/ xenapi/ volume_ utils.py
353 @classmethod to_number( cls, mountpoint): startswith( '/dev/' ): '^[hs]d[ a-p]$', mountpoint): [2:3]) - ord('a')) '^vd[a- p]$', mountpoint): [2:3]) - ord('a')) '^[0-9] +$', mountpoint): atoi(mountpoint , 10) _('Mountpoint cannot be translated: %s'), mountpoint)
354 def mountpoint_
355 """Translate a mountpoint like /dev/sdc into a numeric"""
356 if mountpoint.
357 mountpoint = mountpoint[5:]
358 if re.match(
359 return (ord(mountpoint
360 elif re.match(
361 return (ord(mountpoint
362 elif re.match(
363 return string.
364 else:
365 LOG.warn(
366 return -1