From 0b6ae16f01aaa1a6d5ba9f240e131c688c7224ca Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Thu, 9 Aug 2018 15:01:37 +0200
Subject: [PATCH] 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.
---
v2v/parse_libvirt_xml.ml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/v2v/parse_libvirt_xml.ml b/v2v/parse_libvirt_xml.ml
index 57e741574..4912f1cc0 100644
--- a/v2v/parse_libvirt_xml.ml
+++ b/v2v/parse_libvirt_xml.ml
@@ -385,6 +385,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
| [] ->
--
2.20.1