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



##########
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:
       Yes we could, but in that case which namespace should be used? If both 
`Disk` elements have valid prefixes/namespaces then I think the method should 
retrieve all the elements defined in the file even with different namespaces, 
do you agree?




-- 
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