From 5f93bc8948e8c3af4fee65ea40f050eed4b3d0ba Mon Sep 17 00:00:00 2001 From: dahn Date: Mon, 3 Jan 2022 08:23:18 +0100 Subject: [PATCH] assume a property is one when it isn't a number (#5647) Co-authored-by: Daan Hoogland --- .../com/cloud/storage/template/OVAProcessor.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/cloud/storage/template/OVAProcessor.java b/core/src/main/java/com/cloud/storage/template/OVAProcessor.java index b5d78ac6cdb..d62897f20dc 100644 --- a/core/src/main/java/com/cloud/storage/template/OVAProcessor.java +++ b/core/src/main/java/com/cloud/storage/template/OVAProcessor.java @@ -246,7 +246,17 @@ public class OVAProcessor extends AdapterBase implements Processor { NodeList diskElements = new OVFHelper().getElementsByTagNameAndPrefix(ovfDoc, "Disk", "ovf"); for (int i = 0; i < diskElements.getLength(); i++) { Element disk = (Element)diskElements.item(i); - long diskSize = Long.parseLong(disk.getAttribute("ovf:capacity")); + String diskSizeValue = disk.getAttribute("ovf:capacity"); + long diskSize = 1; + try { + diskSize = Long.parseLong(diskSizeValue); + } catch (NumberFormatException e) { + // ASSUMEably the diskSize contains a property for replacement + LOGGER.warn(String.format("the disksize for disk %s is not a valid number: %s", disk.getAttribute("diskId"), diskSizeValue)); + // TODO parse the property to get any value can not be done at registration time + // and will have to be done at deploytime, so for orchestration purposes + // we now assume, a value of one + } String allocationUnits = disk.getAttribute("ovf:capacityAllocationUnits"); diskSize = OVFHelper.getDiskVirtualSize(diskSize, allocationUnits, ovfFileName); virtualSize += diskSize;