From 7ab25606e539ad7455699c6a4ca43e57dbe3f2d6 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 12 May 2023 16:56:37 +0200 Subject: [vbox] Handle the version-dependent StorageControllers path everywhere --- ...alizationConfigurationVirtualboxFileFormat.java | 25 +++++++++------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java') diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java index 5446ddb..b5b3180 100644 --- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java +++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java @@ -287,13 +287,7 @@ public class VirtualizationConfigurationVirtualboxFileFormat private void removeUnusedHdds() { Set existing = new HashSet<>(); - String path; - if ( this.getVersion().isSmallerThan( Version.valueOf( "1.17" ) ) ) { - path = "/VirtualBox/Machine/StorageControllers/StorageController/AttachedDevice/Image"; - } else { - path = "/VirtualBox/Machine/Hardware/StorageControllers/StorageController/AttachedDevice/Image"; - } - NodeList list = findNodes( path ); + NodeList list = findNodes( storageControllersPath() + "/StorageController/AttachedDevice/Image" ); if ( list != null && list.getLength() != 0 ) { for ( int i = 0; i < list.getLength(); ++i ) { Node item = list.item( i ); @@ -323,6 +317,13 @@ public class VirtualizationConfigurationVirtualboxFileFormat } } + public String storageControllersPath() + { + if ( this.getVersion().isSmallerThan( Version.valueOf( "1.17" ) ) ) + return "/VirtualBox/Machine/StorageControllers"; + return "/VirtualBox/Machine/Hardware/StorageControllers"; + } + /** * Saves the machine's uuid as hardware uuid to prevent VMs from * believing in a hardware change. @@ -459,14 +460,8 @@ public class VirtualizationConfigurationVirtualboxFileFormat */ public void setHdds() throws XPathExpressionException { - final XPathExpression hddsExpr; - if ( this.getVersion().isSmallerThan( Version.valueOf( "1.17" ) ) ) { - hddsExpr = XmlHelper.compileXPath( - "/VirtualBox/Machine/StorageControllers/StorageController/AttachedDevice[@type='HardDisk']/Image" ); - } else { - hddsExpr = XmlHelper.compileXPath( - "/VirtualBox/Machine/Hardware/StorageControllers/StorageController/AttachedDevice[@type='HardDisk']/Image" ); - } + final XPathExpression hddsExpr = XmlHelper.compileXPath( storageControllersPath() + + "/StorageController/AttachedDevice[@type='HardDisk']/Image" ); NodeList nodes = (NodeList)hddsExpr.evaluate( this.doc, XPathConstants.NODESET ); if ( nodes == null ) { -- cgit v1.2.3-55-g7522