DaanHoogland commented on a change in pull request #5825:
URL: https://github.com/apache/cloudstack/pull/5825#discussion_r778673717



##########
File path: api/src/main/java/com/cloud/agent/api/storage/OVFHelper.java
##########
@@ -366,21 +387,25 @@ private DatadiskTO generateDiskTO(OVFFile file, OVFDisk 
disk, String ovfParentPa
                 isIso, bootable, controller, controllerSubType, diskNumber, 
configuration);
     }
 
-    protected List<OVFDisk> extractDisksFromOvfDocumentTree(Document doc) {
-        NodeList disks = doc.getElementsByTagName("Disk");
-        NodeList ovfDisks = doc.getElementsByTagName("ovf:Disk");
-        NodeList items = doc.getElementsByTagName("Item");
+    protected NodeList getElementByTagNameAndSupportedNamespaces(Document doc, 
List<String> namespaces, String tagName) {
+        NodeList nodeList = null;
+        for (String namespace : namespaces) {
+            nodeList = doc.getElementsByTagNameNS(namespace, tagName);
+            if (nodeList.getLength() > 0) {
+                break;
+            }
+        }
+        return nodeList;
+    }
 
-        int totalDisksLength = disks.getLength() + ovfDisks.getLength();
+    protected List<OVFDisk> extractDisksFromOvfDocumentTree(Document doc, 
List<String> supportedNamespaces) {
+        NodeList disks = getElementByTagNameAndSupportedNamespaces(doc, 
supportedNamespaces, "Disk");

Review comment:
       this will work in most cases. the only quirk is if there are two name 
spaces defined that both have a `Disk` element.
   Can we specify the exact name space we need?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to