v2v: parse_libvirt_xml: handle srN CDROM devices (RHBZ#1612785)

This device naming is mostly written by virt-p2v, so get the slot from
it directly without using the drive_index "decoding" function.

(cherry picked from commit c9abaa3e96)
This commit is contained in:
Pino Toscano
2018-08-09 15:01:37 +02:00
parent 21cf4aaafb
commit bb804081e9

View File

@@ -379,6 +379,16 @@ let parse_libvirt_xml ?conn xml =
let target_dev = xpath_string "target/@dev" in
match target_dev with
| None -> None
| Some dev when String.is_prefix dev "sr" ->
(* "srN" devices are found mostly in the physical XML written by
* virt-p2v.
*)
let name = String.sub dev 2 (String.length dev - 2) in
(try Some (int_of_string name)
with Failure _ ->
warning (f_"could not parse device name %s from the source libvirt XML") dev;
None
)
| Some dev ->
let rec loop = function
| [] ->