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 <[email protected]>
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