This is an automated email from the ASF dual-hosted git repository.
abhisar pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.20 by this push:
new d38c1f8d125 Fix error message while creating local storage pool
(#12767)
d38c1f8d125 is described below
commit d38c1f8d1250172b535f13161028359b02fc8fb0
Author: Vishesh <[email protected]>
AuthorDate: Fri Mar 27 10:29:13 2026 +0530
Fix error message while creating local storage pool (#12767)
* Fix error message while creating local storage pool
---
.../java/com/cloud/storage/StorageManagerImpl.java | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
index d1dca0fa901..6751da3dde0 100644
--- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
@@ -16,6 +16,7 @@
// under the License.
package com.cloud.storage;
+import static
com.cloud.configuration.ConfigurationManagerImpl.SystemVMUseLocalStorage;
import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
import java.io.UnsupportedEncodingException;
@@ -144,6 +145,7 @@ import org.apache.cloudstack.storage.to.VolumeObjectTO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.EnumUtils;
import org.springframework.stereotype.Component;
@@ -176,7 +178,6 @@ import com.cloud.capacity.dao.CapacityDao;
import com.cloud.cluster.ClusterManagerListener;
import com.cloud.configuration.Config;
import com.cloud.configuration.ConfigurationManager;
-import com.cloud.configuration.ConfigurationManagerImpl;
import com.cloud.configuration.Resource.ResourceType;
import com.cloud.cpu.CPU;
import com.cloud.dc.ClusterVO;
@@ -803,6 +804,10 @@ public class StorageManagerImpl extends ManagerBase
implements StorageManager, C
return createLocalStorage(host, pInfo);
}
+ private boolean isLocalStorageEnabledForZone(DataCenterVO zone) {
+ return zone.isLocalStorageEnabled() ||
BooleanUtils.toBoolean(SystemVMUseLocalStorage.valueIn(zone.getId()));
+ }
+
@DB
@Override
public DataStore createLocalStorage(Host host, StoragePoolInfo pInfo)
throws ConnectionException {
@@ -810,12 +815,7 @@ public class StorageManagerImpl extends ManagerBase
implements StorageManager, C
if (dc == null) {
return null;
}
- boolean useLocalStorageForSystemVM = false;
- Boolean isLocal =
ConfigurationManagerImpl.SystemVMUseLocalStorage.valueIn(dc.getId());
- if (isLocal != null) {
- useLocalStorageForSystemVM = isLocal.booleanValue();
- }
- if (!(dc.isLocalStorageEnabled() || useLocalStorageForSystemVM)) {
+ if (!isLocalStorageEnabledForZone(dc)) {
return null;
}
DataStore store = null;
@@ -1017,6 +1017,10 @@ public class StorageManagerImpl extends ManagerBase
implements StorageManager, C
if (Grouping.AllocationState.Disabled == zone.getAllocationState() &&
!_accountMgr.isRootAdmin(account.getId())) {
throw new PermissionDeniedException(String.format("Cannot perform
this operation, Zone is currently disabled: %s", zone));
}
+ // Check if it's local storage and if it's enabled on the zone
+ if (isFileScheme && !isLocalStorageEnabledForZone(zone)) {
+ throw new InvalidParameterValueException("Local storage is not
enabled for zone: " + zone);
+ }
managementService.checkJsInterpretationAllowedIfNeededForParameterValue(ApiConstants.IS_TAG_A_RULE,
Boolean.TRUE.equals(cmd.isTagARule()));