This is an automated email from the ASF dual-hosted git repository. dahn pushed a commit to branch 4.19 in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push: new e196275d5a6 ipmi: extra log sanitation (#10428) e196275d5a6 is described below commit e196275d5a6e4b6c05cd9c82db30b4dc0ef7e545 Author: dahn <d...@onecht.net> AuthorDate: Thu Feb 20 09:01:28 2025 +0100 ipmi: extra log sanitation (#10428) --- .../IpmitoolOutOfBandManagementDriver.java | 8 ++--- .../driver/ipmitool/IpmitoolWrapper.java | 37 +++++++++++++--------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolOutOfBandManagementDriver.java b/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolOutOfBandManagementDriver.java index 2c42554afcc..53a7efbea9e 100644 --- a/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolOutOfBandManagementDriver.java +++ b/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolOutOfBandManagementDriver.java @@ -47,13 +47,13 @@ public final class IpmitoolOutOfBandManagementDriver extends AdapterBase impleme private final ExecutorService ipmitoolExecutor = Executors.newFixedThreadPool(OutOfBandManagementService.SyncThreadPoolSize.value(), new NamedThreadFactory("IpmiToolDriver")); private final IpmitoolWrapper IPMITOOL = new IpmitoolWrapper(ipmitoolExecutor); - public final ConfigKey<String> IpmiToolPath = new ConfigKey<String>("Advanced", String.class, "outofbandmanagement.ipmitool.path", "/usr/bin/ipmitool", + public final ConfigKey<String> IpmiToolPath = new ConfigKey<>("Advanced", String.class, "outofbandmanagement.ipmitool.path", "/usr/bin/ipmitool", "The out of band management ipmitool path used by the IpmiTool driver. Default: /usr/bin/ipmitool.", true, ConfigKey.Scope.Global); - public final ConfigKey<String> IpmiToolInterface = new ConfigKey<String>("Advanced", String.class, "outofbandmanagement.ipmitool.interface", "lanplus", + public final ConfigKey<String> IpmiToolInterface = new ConfigKey<>("Advanced", String.class, "outofbandmanagement.ipmitool.interface", "lanplus", "The out of band management IpmiTool driver interface to use. Default: lanplus. Valid values are: lan, lanplus, open etc.", true, ConfigKey.Scope.Global); - public final ConfigKey<String> IpmiToolRetries = new ConfigKey<String>("Advanced", String.class, "outofbandmanagement.ipmitool.retries", "1", + public final ConfigKey<String> IpmiToolRetries = new ConfigKey<>("Advanced", String.class, "outofbandmanagement.ipmitool.retries", "1", "The out of band management IpmiTool driver retries option -R. Default 1.", true, ConfigKey.Scope.Global); private String getIpmiUserId(ImmutableMap<OutOfBandManagement.Option, String> options, final Duration timeOut) { @@ -122,7 +122,7 @@ public final class IpmitoolOutOfBandManagementDriver extends AdapterBase impleme final OutOfBandManagementDriverResponse response = IPMITOOL.executeCommands(ipmiToolCommands, cmd.getTimeout()); - String oneLineCommand = StringUtils.join(ipmiToolCommands, " "); + String oneLineCommand = StringUtils.join(IPMITOOL.getSanatisedCommandStrings(ipmiToolCommands), " "); String result = response.getResult().trim(); if (response.isSuccess()) { diff --git a/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolWrapper.java b/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolWrapper.java index 6fe98c0925c..2004943c0c6 100644 --- a/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolWrapper.java +++ b/plugins/outofbandmanagement-drivers/ipmitool/src/main/java/org/apache/cloudstack/outofbandmanagement/driver/ipmitool/IpmitoolWrapper.java @@ -26,6 +26,7 @@ import org.apache.cloudstack.outofbandmanagement.driver.OutOfBandManagementDrive import org.apache.cloudstack.utils.process.ProcessResult; import org.apache.cloudstack.utils.process.ProcessRunner; import org.apache.log4j.Logger; +import org.jetbrains.annotations.NotNull; import org.joda.time.Duration; import java.util.ArrayList; @@ -156,25 +157,31 @@ public final class IpmitoolWrapper { public OutOfBandManagementDriverResponse executeCommands(final List<String> commands, final Duration timeOut) { final ProcessResult result = RUNNER.executeCommands(commands, timeOut); if (LOG.isTraceEnabled()) { - List<String> cleanedCommands = new ArrayList<String>(); - int maskNextCommand = 0; - for (String command : commands) { - if (maskNextCommand > 0) { - cleanedCommands.add("**** "); - maskNextCommand--; - continue; - } - if (command.equalsIgnoreCase("-P")) { - maskNextCommand = 1; - } else if (command.toLowerCase().endsWith("password")) { - maskNextCommand = 2; - } - cleanedCommands.add(command); - } + List<String> cleanedCommands = getSanatisedCommandStrings(commands); LOG.trace("Executed ipmitool process with commands: " + StringUtils.join(cleanedCommands, ", ") + "\nIpmitool execution standard output: " + result.getStdOutput() + "\nIpmitool execution error output: " + result.getStdError()); } return new OutOfBandManagementDriverResponse(result.getStdOutput(), result.getStdError(), result.isSuccess()); } + + @NotNull + List<String> getSanatisedCommandStrings(List<String> commands) { + List<String> cleanedCommands = new ArrayList<String>(); + int maskNextCommand = 0; + for (String command : commands) { + if (maskNextCommand > 0) { + cleanedCommands.add("**** "); + maskNextCommand--; + continue; + } + if (command.equalsIgnoreCase("-P")) { + maskNextCommand = 1; + } else if (command.toLowerCase().endsWith("password")) { + maskNextCommand = 2; + } + cleanedCommands.add(command); + } + return cleanedCommands; + } }