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



##########
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:
       No, they would have different meaning. Only the one that is meant to be 
in the name space that usually uses `ovf`as prefix is an actual disk template. 
I am not to worried about this occurring with high probability but it is a real 
option for xml-composers.




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