This is an automated email from the ASF dual-hosted git repository.

sureshanaparti 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 c17aa0d9ada Import Remote KVM VM logging improvements (#9284)
c17aa0d9ada is described below

commit c17aa0d9ada2cceaf6d3e7a17cd577cc203047a7
Author: Suresh Kumar Anaparti <sureshkumar.anapa...@gmail.com>
AuthorDate: Mon Jun 24 11:34:37 2024 +0530

    Import Remote KVM VM logging improvements (#9284)
---
 .../admin/vm/ImportUnmanagedInstanceCmd.java        |  8 ++++----
 .../java/com/cloud/agent/api/CheckVolumeAnswer.java |  1 -
 .../com/cloud/agent/api/CheckVolumeCommand.java     |  1 -
 .../com/cloud/agent/api/CopyRemoteVolumeAnswer.java |  1 -
 .../cloud/agent/api/CopyRemoteVolumeCommand.java    |  2 +-
 .../com/cloud/agent/api/GetRemoteVmsAnswer.java     |  2 +-
 .../com/cloud/agent/api/GetRemoteVmsCommand.java    |  2 +-
 .../agent/api/GetUnmanagedInstancesAnswer.java      |  2 +-
 .../agent/api/GetUnmanagedInstancesCommand.java     |  2 +-
 .../kvm/resource/LibvirtComputingResource.java      | 12 ++++++------
 .../wrapper/LibvirtGetRemoteVmsCommandWrapper.java  | 21 +++++++++++----------
 .../LibvirtGetUnmanagedInstancesCommandWrapper.java |  2 +-
 .../cloudstack/vm/UnmanagedVMsManagerImpl.java      |  6 +++---
 13 files changed, 30 insertions(+), 32 deletions(-)

diff --git 
a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
 
b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
index d632c786a16..3d8b23318dd 100644
--- 
a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
+++ 
b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportUnmanagedInstanceCmd.java
@@ -203,8 +203,8 @@ public class ImportUnmanagedInstanceCmd extends 
BaseAsyncCmd {
             for (Map<String, String> entry : (Collection<Map<String, 
String>>)nicNetworkList.values()) {
                 String nic = entry.get(VmDetailConstants.NIC);
                 String networkUuid = entry.get(VmDetailConstants.NETWORK);
-                if (LOGGER.isTraceEnabled()) {
-                    LOGGER.trace(String.format("nic, '%s', goes on net, '%s'", 
nic, networkUuid));
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug(String.format("nic, '%s', goes on net, '%s'", 
nic, networkUuid));
                 }
                 if (StringUtils.isAnyEmpty(nic, networkUuid) || 
_entityMgr.findByUuid(Network.class, networkUuid) == null) {
                     throw new 
InvalidParameterValueException(String.format("Network ID: %s for NIC ID: %s is 
invalid", networkUuid, nic));
@@ -221,8 +221,8 @@ public class ImportUnmanagedInstanceCmd extends 
BaseAsyncCmd {
             for (Map<String, String> entry : (Collection<Map<String, 
String>>)nicIpAddressList.values()) {
                 String nic = entry.get(VmDetailConstants.NIC);
                 String ipAddress = 
StringUtils.defaultIfEmpty(entry.get(VmDetailConstants.IP4_ADDRESS), null);
-                if (LOGGER.isTraceEnabled()) {
-                    LOGGER.trace(String.format("nic, '%s', gets ip, '%s'", 
nic, ipAddress));
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug(String.format("nic, '%s', gets ip, '%s'", 
nic, ipAddress));
                 }
                 if (StringUtils.isEmpty(nic)) {
                     throw new 
InvalidParameterValueException(String.format("NIC ID: '%s' is invalid for IP 
address mapping", nic));
diff --git a/core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java 
b/core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java
index dd136d8642f..5a32ab59a7a 100644
--- a/core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java
+++ b/core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java
@@ -17,7 +17,6 @@
 
 package com.cloud.agent.api;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class CheckVolumeAnswer extends Answer {
 
     private long size;
diff --git a/core/src/main/java/com/cloud/agent/api/CheckVolumeCommand.java 
b/core/src/main/java/com/cloud/agent/api/CheckVolumeCommand.java
index b4036bebf3a..bd44b35c895 100644
--- a/core/src/main/java/com/cloud/agent/api/CheckVolumeCommand.java
+++ b/core/src/main/java/com/cloud/agent/api/CheckVolumeCommand.java
@@ -21,7 +21,6 @@ package com.cloud.agent.api;
 
 import com.cloud.agent.api.to.StorageFilerTO;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class CheckVolumeCommand extends Command {
 
     String srcFile;
diff --git a/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeAnswer.java 
b/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeAnswer.java
index f6d7cab4596..e79005be71b 100644
--- a/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeAnswer.java
+++ b/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeAnswer.java
@@ -17,7 +17,6 @@
 
 package com.cloud.agent.api;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class CopyRemoteVolumeAnswer extends Answer {
 
     private String remoteIp;
diff --git 
a/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeCommand.java 
b/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeCommand.java
index 88e5669f3b1..798336b0e72 100644
--- a/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeCommand.java
+++ b/core/src/main/java/com/cloud/agent/api/CopyRemoteVolumeCommand.java
@@ -21,10 +21,10 @@ package com.cloud.agent.api;
 
 import com.cloud.agent.api.to.StorageFilerTO;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class CopyRemoteVolumeCommand extends Command {
     String remoteIp;
     String username;
+    @LogLevel(LogLevel.Log4jLevel.Off)
     String password;
     String srcFile;
     String tmpPath;
diff --git a/core/src/main/java/com/cloud/agent/api/GetRemoteVmsAnswer.java 
b/core/src/main/java/com/cloud/agent/api/GetRemoteVmsAnswer.java
index 8cd072f1da1..c4e590591d0 100644
--- a/core/src/main/java/com/cloud/agent/api/GetRemoteVmsAnswer.java
+++ b/core/src/main/java/com/cloud/agent/api/GetRemoteVmsAnswer.java
@@ -22,10 +22,10 @@ import org.apache.cloudstack.vm.UnmanagedInstanceTO;
 import java.util.HashMap;
 import java.util.List;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class GetRemoteVmsAnswer extends Answer {
 
     private String remoteIp;
+    @LogLevel(LogLevel.Log4jLevel.Trace)
     private HashMap<String, UnmanagedInstanceTO> unmanagedInstances;
 
     List<String> vmNames;
diff --git a/core/src/main/java/com/cloud/agent/api/GetRemoteVmsCommand.java 
b/core/src/main/java/com/cloud/agent/api/GetRemoteVmsCommand.java
index 5c71d12dbd0..5b6b9bdd360 100644
--- a/core/src/main/java/com/cloud/agent/api/GetRemoteVmsCommand.java
+++ b/core/src/main/java/com/cloud/agent/api/GetRemoteVmsCommand.java
@@ -19,11 +19,11 @@
 
 package com.cloud.agent.api;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class GetRemoteVmsCommand extends Command {
 
     String remoteIp;
     String username;
+    @LogLevel(LogLevel.Log4jLevel.Off)
     String password;
 
     public GetRemoteVmsCommand(String remoteIp, String username, String 
password) {
diff --git 
a/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesAnswer.java 
b/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesAnswer.java
index 771d472be2a..950930ec614 100644
--- a/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesAnswer.java
+++ b/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesAnswer.java
@@ -21,10 +21,10 @@ import java.util.HashMap;
 
 import org.apache.cloudstack.vm.UnmanagedInstanceTO;
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class GetUnmanagedInstancesAnswer extends Answer {
 
     private String instanceName;
+    @LogLevel(LogLevel.Log4jLevel.Trace)
     private HashMap<String, UnmanagedInstanceTO> unmanagedInstances;
 
     GetUnmanagedInstancesAnswer() {
diff --git 
a/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java 
b/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java
index 2cd80aebea1..c0b8987e152 100644
--- a/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java
+++ b/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java
@@ -28,10 +28,10 @@ import org.apache.commons.collections.CollectionUtils;
  * All managed instances will be filtered while trying to find unmanaged 
instances.
  */
 
-@LogLevel(LogLevel.Log4jLevel.Trace)
 public class GetUnmanagedInstancesCommand extends Command {
 
     String instanceName;
+    @LogLevel(LogLevel.Log4jLevel.Trace)
     List<String> managedInstancesNames;
 
     public GetUnmanagedInstancesCommand() {
diff --git 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 76e4efdfd7f..86ece3c8c66 100644
--- 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -3771,14 +3771,14 @@ public class LibvirtComputingResource extends 
ServerResourceBase implements Serv
     }
 
     public List<String> getAllVmNames(final Connect conn) {
-        final ArrayList<String> la = new ArrayList<String>();
+        final ArrayList<String> domainNames = new ArrayList<String>();
         try {
             final String names[] = conn.listDefinedDomains();
             for (int i = 0; i < names.length; i++) {
-                la.add(names[i]);
+                domainNames.add(names[i]);
             }
         } catch (final LibvirtException e) {
-            s_logger.warn("Failed to list Defined domains", e);
+            s_logger.warn("Failed to list defined domains", e);
         }
 
         int[] ids = null;
@@ -3786,14 +3786,14 @@ public class LibvirtComputingResource extends 
ServerResourceBase implements Serv
             ids = conn.listDomains();
         } catch (final LibvirtException e) {
             s_logger.warn("Failed to list domains", e);
-            return la;
+            return domainNames;
         }
 
         Domain dm = null;
         for (int i = 0; i < ids.length; i++) {
             try {
                 dm = conn.domainLookupByID(ids[i]);
-                la.add(dm.getName());
+                domainNames.add(dm.getName());
             } catch (final LibvirtException e) {
                 s_logger.warn("Unable to get vms", e);
             } finally {
@@ -3807,7 +3807,7 @@ public class LibvirtComputingResource extends 
ServerResourceBase implements Serv
             }
         }
 
-        return la;
+        return domainNames;
     }
 
     private HashMap<String, HostVmStateReportEntry> getHostVmStateReport() {
diff --git 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetRemoteVmsCommandWrapper.java
 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetRemoteVmsCommandWrapper.java
index 69802bb845f..942a68b8074 100644
--- 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetRemoteVmsCommandWrapper.java
+++ 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetRemoteVmsCommandWrapper.java
@@ -50,36 +50,37 @@ public final class LibvirtGetRemoteVmsCommandWrapper 
extends CommandWrapper<GetR
 
     @Override
     public Answer execute(final GetRemoteVmsCommand command, final 
LibvirtComputingResource libvirtComputingResource) {
-        String hypervisorURI = "qemu+tcp://" + command.getRemoteIp() + 
"/system";
+        String remoteIp = command.getRemoteIp();
+        String hypervisorURI = "qemu+tcp://" + remoteIp + "/system";
         HashMap<String, UnmanagedInstanceTO> unmanagedInstances = new 
HashMap<>();
         try {
             Connect conn = LibvirtConnection.getConnection(hypervisorURI);
             final List<String> allVmNames = 
libvirtComputingResource.getAllVmNames(conn);
+            s_logger.info(String.format("Found %d VMs on the remote host %s", 
allVmNames.size(), remoteIp));
             for (String name : allVmNames) {
                 final Domain domain = libvirtComputingResource.getDomain(conn, 
name);
-
                 final DomainInfo.DomainState ps = domain.getInfo().state;
                 final VirtualMachine.PowerState state = 
libvirtComputingResource.convertToPowerState(ps);
-                s_logger.debug("VM " + domain.getName() + " - powerstate: " + 
ps + ", state: " + state.toString());
+                s_logger.debug(String.format("Remote VM %s - powerstate: %s, 
state: %s", domain.getName(), ps.toString(), state.toString()));
 
                 if (state == VirtualMachine.PowerState.PowerOff) {
                     try {
                         UnmanagedInstanceTO instance = 
getUnmanagedInstance(libvirtComputingResource, domain, conn);
                         unmanagedInstances.put(instance.getName(), instance);
                     } catch (Exception e) {
-                        s_logger.error("Couldn't fetch VM " + domain.getName() 
+ " details, due to: " + e.getMessage(), e);
+                        s_logger.error("Couldn't fetch remote VM " + 
domain.getName() + " details, due to: " + e.getMessage(), e);
                     }
                 }
                 domain.free();
             }
-            s_logger.debug("Found " + unmanagedInstances.size() + " stopped 
VMs on host " + command.getRemoteIp());
+            s_logger.debug("Found " + unmanagedInstances.size() + " stopped 
VMs on remote host " + remoteIp);
             return new GetRemoteVmsAnswer(command, "", unmanagedInstances);
         } catch (final LibvirtException e) {
-            s_logger.error("Failed to list stopped VMs on remote host " + 
command.getRemoteIp() + ", due to: " + e.getMessage(), e);
+            s_logger.error("Failed to list stopped VMs on remote host " + 
remoteIp + ", due to: " + e.getMessage(), e);
             if (e.getMessage().toLowerCase().contains("connection refused")) {
-                return new Answer(command, false, "Unable to connect to remote 
host " + command.getRemoteIp() + ", please check the libvirtd tcp connectivity 
and retry");
+                return new Answer(command, false, "Unable to connect to remote 
host " + remoteIp + ", please check the libvirtd tcp connectivity and retry");
             }
-            return new Answer(command, false, "Unable to list stopped VMs on 
remote host " + command.getRemoteIp() + ", due to: " + e.getMessage());
+            return new Answer(command, false, "Unable to list stopped VMs on 
remote host " + remoteIp + ", due to: " + e.getMessage());
         }
     }
 
@@ -105,8 +106,8 @@ public final class LibvirtGetRemoteVmsCommandWrapper 
extends CommandWrapper<GetR
 
             return instance;
         } catch (Exception e) {
-            s_logger.debug("Unable to retrieve unmanaged instance info,  due 
to: " + e.getMessage(), e);
-            throw new CloudRuntimeException("Unable to retrieve unmanaged 
instance info, due to: " + e.getMessage());
+            s_logger.debug("Unable to retrieve remote unmanaged instance info, 
 due to: " + e.getMessage(), e);
+            throw new CloudRuntimeException("Unable to retrieve remote 
unmanaged instance info, due to: " + e.getMessage());
         }
     }
 
diff --git 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetUnmanagedInstancesCommandWrapper.java
 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetUnmanagedInstancesCommandWrapper.java
index 65de4f6d310..d7818f7f5f3 100644
--- 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetUnmanagedInstancesCommandWrapper.java
+++ 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetUnmanagedInstancesCommandWrapper.java
@@ -48,7 +48,7 @@ public final class LibvirtGetUnmanagedInstancesCommandWrapper 
extends CommandWra
 
     @Override
     public GetUnmanagedInstancesAnswer execute(GetUnmanagedInstancesCommand 
command, LibvirtComputingResource libvirtComputingResource) {
-        LOGGER.info("Fetching unmanaged instance on host");
+        LOGGER.info("Fetching unmanaged instances on host");
 
         HashMap<String, UnmanagedInstanceTO> unmanagedInstances = new 
HashMap<>();
         try {
diff --git 
a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java 
b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
index 6e7c0245ebc..2ff3bf2ca21 100644
--- a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
@@ -800,6 +800,7 @@ public class UnmanagedVMsManagerImpl implements 
UnmanagedVMsManager {
         }
         int copyTimeoutInSecs = copyTimeout * 60;
         copyRemoteVolumeCommand.setWait(copyTimeoutInSecs);
+        LOGGER.error(String.format("Initiating copy remote volume %s from %s, 
timeout %d secs", path, remoteUrl, copyTimeoutInSecs));
         Answer answer = agentManager.easySend(dest.getHost().getId(), 
copyRemoteVolumeCommand);
         if (!(answer instanceof CopyRemoteVolumeAnswer)) {
             throw new CloudRuntimeException("Error while copying volume of 
remote instance: " + answer.getDetails());
@@ -2434,7 +2435,6 @@ public class UnmanagedVMsManagerImpl implements 
UnmanagedVMsManager {
         return defaultNetwork;
     }
 
-    //generate unit test
     public ListResponse<UnmanagedInstanceResponse> 
listVmsForImport(ListVmsForImportCmd cmd) {
         final Account caller = CallContext.current().getCallingAccount();
         if (caller.getType() != Account.Type.ADMIN) {
@@ -2474,8 +2474,8 @@ public class UnmanagedVMsManagerImpl implements 
UnmanagedVMsManager {
     private HashMap<String, UnmanagedInstanceTO> getRemoteVmsOnKVMHost(long 
zoneId, String remoteHostUrl, String username, String password) {
         //ToDo: add option to list one Vm by name
         List<HostVO> hosts = 
resourceManager.listAllUpAndEnabledHostsInOneZoneByHypervisor(Hypervisor.HypervisorType.KVM,
 zoneId);
-        if(hosts.size() < 1) {
-            throw new CloudRuntimeException("No hosts available for VM 
import");
+        if (hosts.size() < 1) {
+            throw new CloudRuntimeException("No hosts available to list VMs on 
remote host " + remoteHostUrl);
         }
         HostVO host = hosts.get(0);
         GetRemoteVmsCommand getRemoteVmsCommand = new 
GetRemoteVmsCommand(remoteHostUrl, username, password);

Reply via email to