You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by nv...@apache.org on 2022/04/02 02:39:14 UTC
[cloudstack] branch main updated: Mount disabled storage pool on host reboot (#6164)
This is an automated email from the ASF dual-hosted git repository.
nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new b88cfc2 Mount disabled storage pool on host reboot (#6164)
b88cfc2 is described below
commit b88cfc226ec4fec3d7bd91f86ac2f54712365a71
Author: Rakesh <ra...@gmail.com>
AuthorDate: Sat Apr 2 04:38:32 2022 +0200
Mount disabled storage pool on host reboot (#6164)
* Mount disabled storage pool on host reboot
Add a global setting so that disabled pools will be mounted
again on host reboot
* fix build error
* Update description
* add cluster-wide support
Co-authored-by: Rakesh Venkatesh <ra...@apache.org>
---
.../src/main/java/com/cloud/storage/StorageManager.java | 9 +++++++++
.../main/java/com/cloud/storage/StorageManagerImpl.java | 3 ++-
.../com/cloud/storage/listener/StoragePoolMonitor.java | 15 +++++++++++----
3 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java b/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
index 0ceae02..e4b46bc 100644
--- a/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
+++ b/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
@@ -155,6 +155,15 @@ public interface StorageManager extends StorageService {
ConfigKey<String> PreferredStoragePool = new ConfigKey<String>(String.class, "preferred.storage.pool", "Advanced", "",
"The UUID of preferred storage pool for allocation.", true, ConfigKey.Scope.Account, null);
+ ConfigKey<Boolean> MountDisabledStoragePool = new ConfigKey<>(Boolean.class,
+ "mount.disabled.storage.pool",
+ "Storage",
+ "false",
+ "Mount all zone-wide or cluster-wide disabled storage pools after node reboot",
+ true,
+ ConfigKey.Scope.Cluster,
+ null);
+
/**
* Returns a comma separated list of tags for the specified storage pool
* @param poolId
diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
index db24b17..336565f 100644
--- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
@@ -3340,7 +3340,8 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
MaxDataMigrationWaitTime,
DiskProvisioningStrictness,
PreferredStoragePool,
- SecStorageVMAutoScaleDown
+ SecStorageVMAutoScaleDown,
+ MountDisabledStoragePool
};
}
diff --git a/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java b/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java
index eca96ef..63ae604 100644
--- a/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java
+++ b/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java
@@ -20,6 +20,7 @@ import java.util.List;
import javax.inject.Inject;
+import com.cloud.storage.StorageManager;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager;
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
@@ -44,7 +45,6 @@ import com.cloud.storage.ScopeType;
import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.StorageManagerImpl;
import com.cloud.storage.StoragePoolHostVO;
-import com.cloud.storage.StoragePoolStatus;
public class StoragePoolMonitor implements Listener {
private static final Logger s_logger = Logger.getLogger(StoragePoolMonitor.class);
@@ -108,10 +108,17 @@ public class StoragePoolMonitor implements Listener {
List<StoragePoolVO> zoneStoragePoolsByAnyHypervisor = _poolDao.findZoneWideStoragePoolsByHypervisor(host.getDataCenterId(), HypervisorType.Any);
pools.addAll(zoneStoragePoolsByAnyHypervisor);
+ // get the zone wide disabled pools list if global setting is true.
+ if (StorageManager.MountDisabledStoragePool.value()) {
+ pools.addAll(_poolDao.findDisabledPoolsByScope(host.getDataCenterId(), null, null, ScopeType.ZONE));
+ }
+
+ // get the cluster wide disabled pool list
+ if (StorageManager.MountDisabledStoragePool.valueIn(host.getClusterId())) {
+ pools.addAll(_poolDao.findDisabledPoolsByScope(host.getDataCenterId(), host.getPodId(), host.getClusterId(), ScopeType.CLUSTER));
+ }
+
for (StoragePoolVO pool : pools) {
- if (pool.getStatus() != StoragePoolStatus.Up) {
- continue;
- }
if (!pool.isShared()) {
continue;
}