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

sureshanaparti pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.18 by this push:
     new 644f3a3f48f Add, Delete Storage Pool commands should be able execute 
on a host in maintenance (#9301)
644f3a3f48f is described below

commit 644f3a3f48fe2733ab3e6988ae4a15519cf8328b
Author: Abhisar Sinha <63767682+abh1...@users.noreply.github.com>
AuthorDate: Fri Jun 28 18:18:08 2024 +0530

    Add, Delete Storage Pool commands should be able execute on a host in 
maintenance (#9301)
    
    * Restart agent when host comes out of maintenance
    
    * Don't send CreateStoragePoolCommand to hosts in maintenance mode
    
    * CreateStoragePoolCommand can run when host in maintenance. Reverted the 
change to restart agent when host was already up and in maintenance
    
    * Reverted changes done to ResourceManagerImplTest
---
 .../src/main/java/com/cloud/resource/ResourceManager.java        | 2 ++
 .../src/main/java/com/cloud/agent/manager/AgentAttache.java      | 7 +++++--
 .../lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java       | 2 +-
 server/src/main/java/com/cloud/resource/ResourceManagerImpl.java | 9 +++++++++
 .../test/java/com/cloud/resource/MockResourceManagerImpl.java    | 6 ++++++
 5 files changed, 23 insertions(+), 3 deletions(-)

diff --git 
a/engine/components-api/src/main/java/com/cloud/resource/ResourceManager.java 
b/engine/components-api/src/main/java/com/cloud/resource/ResourceManager.java
index 9308be5fb32..91197de6a84 100755
--- 
a/engine/components-api/src/main/java/com/cloud/resource/ResourceManager.java
+++ 
b/engine/components-api/src/main/java/com/cloud/resource/ResourceManager.java
@@ -126,6 +126,8 @@ public interface ResourceManager extends ResourceService, 
Configurable {
 
     public List<HostVO> 
listAllUpAndEnabledHostsInOneZoneByHypervisor(HypervisorType type, long dcId);
 
+    public List<HostVO> listAllUpHostsInOneZoneByHypervisor(HypervisorType 
type, long dcId);
+
     public List<HostVO> listAllUpAndEnabledHostsInOneZone(long dcId);
 
     public List<HostVO> listAllHostsInOneZoneByType(Host.Type type, long dcId);
diff --git 
a/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java 
b/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java
index b12a72136dd..2d8d6f1c48e 100644
--- 
a/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java
+++ 
b/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentAttache.java
@@ -44,6 +44,8 @@ import com.cloud.agent.api.CheckOnHostCommand;
 import com.cloud.agent.api.CheckVirtualMachineCommand;
 import com.cloud.agent.api.CleanupNetworkRulesCmd;
 import com.cloud.agent.api.Command;
+import com.cloud.agent.api.CreateStoragePoolCommand;
+import com.cloud.agent.api.DeleteStoragePoolCommand;
 import com.cloud.agent.api.MaintainCommand;
 import com.cloud.agent.api.MigrateCommand;
 import com.cloud.agent.api.ModifySshKeysCommand;
@@ -119,8 +121,9 @@ public abstract class AgentAttache {
         StopCommand.class.toString(), 
CheckVirtualMachineCommand.class.toString(), PingTestCommand.class.toString(), 
CheckHealthCommand.class.toString(),
         ReadyCommand.class.toString(), ShutdownCommand.class.toString(), 
SetupCommand.class.toString(),
         CleanupNetworkRulesCmd.class.toString(), 
CheckNetworkCommand.class.toString(), PvlanSetupCommand.class.toString(), 
CheckOnHostCommand.class.toString(),
-        ModifyTargetsCommand.class.toString(), 
ModifySshKeysCommand.class.toString(), 
ModifyStoragePoolCommand.class.toString(), SetupMSListCommand.class.toString(), 
RollingMaintenanceCommand.class.toString(),
-            CleanupPersistentNetworkResourceCommand.class.toString()};
+        ModifyTargetsCommand.class.toString(), 
ModifySshKeysCommand.class.toString(),
+        CreateStoragePoolCommand.class.toString(), 
DeleteStoragePoolCommand.class.toString(), 
ModifyStoragePoolCommand.class.toString(),
+        SetupMSListCommand.class.toString(), 
RollingMaintenanceCommand.class.toString(), 
CleanupPersistentNetworkResourceCommand.class.toString()};
     protected final static String[] s_commandsNotAllowedInConnectingMode = new 
String[] { StartCommand.class.toString(), CreateCommand.class.toString() };
     static {
         Arrays.sort(s_commandsAllowedInMaintenanceMode);
diff --git 
a/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
 
b/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
index 213e5620553..a5730d90802 100644
--- 
a/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
+++ 
b/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
@@ -467,7 +467,7 @@ public class CloudStackPrimaryDataStoreLifeCycleImpl 
implements PrimaryDataStore
 
     @Override
     public boolean attachZone(DataStore dataStore, ZoneScope scope, 
HypervisorType hypervisorType) {
-        List<HostVO> hosts = 
_resourceMgr.listAllUpAndEnabledHostsInOneZoneByHypervisor(hypervisorType, 
scope.getScopeId());
+        List<HostVO> hosts = 
_resourceMgr.listAllUpHostsInOneZoneByHypervisor(hypervisorType, 
scope.getScopeId());
         s_logger.debug("In createPool. Attaching the pool to each of the 
hosts.");
         List<HostVO> poolHosts = new ArrayList<HostVO>();
         for (HostVO host : hosts) {
diff --git a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java 
b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
index 1909063dfe3..04a5f0e8d01 100755
--- a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
@@ -3255,6 +3255,15 @@ public class ResourceManagerImpl extends ManagerBase 
implements ResourceManager,
         return sc.list();
     }
 
+    @Override
+    public List<HostVO> listAllUpHostsInOneZoneByHypervisor(final 
HypervisorType type, final long dcId) {
+        final QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
+        sc.and(sc.entity().getHypervisorType(), Op.EQ, type);
+        sc.and(sc.entity().getDataCenterId(), Op.EQ, dcId);
+        sc.and(sc.entity().getStatus(), Op.EQ, Status.Up);
+        return sc.list();
+    }
+
     @Override
     public List<HostVO> listAllUpAndEnabledHostsInOneZone(final long dcId) {
         final QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
diff --git 
a/server/src/test/java/com/cloud/resource/MockResourceManagerImpl.java 
b/server/src/test/java/com/cloud/resource/MockResourceManagerImpl.java
index 4d5b5ba584b..538125a1dbc 100755
--- a/server/src/test/java/com/cloud/resource/MockResourceManagerImpl.java
+++ b/server/src/test/java/com/cloud/resource/MockResourceManagerImpl.java
@@ -588,6 +588,12 @@ public class MockResourceManagerImpl extends ManagerBase 
implements ResourceMana
         return null;
     }
 
+    @Override
+    public List<HostVO> listAllUpHostsInOneZoneByHypervisor(final 
HypervisorType type, final long dcId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
     @Override
     public List<HostVO> listAllUpAndEnabledHostsInOneZone(final long dcId) {
         // TODO Auto-generated method stub

Reply via email to