Skip to content

Commit 1d504ef

Browse files
Get powerflex storage config settings from zone, and some fixes
1 parent fc9404e commit 1d504ef

File tree

4 files changed

+35
-32
lines changed

4 files changed

+35
-32
lines changed

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/ScaleIOStorageAdaptor.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,6 @@ public KVMStoragePool createStoragePool(String uuid, String host, int port, Stri
178178
* @throws CloudRuntimeException in case if Storage Pool is not operate-able
179179
*/
180180
private void validateMdmState(Map<String, String> details) {
181-
182181
String configKey = ScaleIOSDCManager.ValidateMdmsOnConnect.key();
183182
String configValue = details.get(configKey);
184183

@@ -689,16 +688,15 @@ public Pair<Boolean, String> unprepareStorageClient(String uuid, Map<String, Str
689688
if (!ScaleIOUtil.isMdmPresent(mdmAddresses[0])) {
690689
return new Pair<>(true, "MDM not added, no need to unprepare the SDC client");
691690
} else {
692-
String configKey =
693-
details.get(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key());
691+
String configKey = ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key();
694692
String configValue = details.get(configKey);
695693

696694
if (StringUtils.isEmpty(configValue)) {
697695
LOGGER.debug(String.format("Configuration key %s not provided", configKey));
698696
} else {
699697
LOGGER.debug(String.format("Configuration key %s provided as %s", configKey, configValue));
700698
}
701-
Boolean blockUnprepare = Boolean.valueOf(configKey);
699+
Boolean blockUnprepare = Boolean.valueOf(configValue);
702700
if (!ScaleIOUtil.isRemoveMdmCliSupported() && !ScaleIOUtil.getVolumeIds().isEmpty() && Boolean.TRUE.equals(blockUnprepare)) {
703701
return new Pair<>(false, "Failed to remove MDMs, SDC client requires service to be restarted, but there are Volumes attached to the Host");
704702
}

plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/ScaleIOPrimaryDataStoreLifeCycle.java

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -307,16 +307,20 @@ public boolean attachZone(DataStore dataStore, ZoneScope scope, Hypervisor.Hyper
307307
@Override
308308
public boolean maintain(DataStore store) {
309309
Map<String,String> details = new HashMap<>();
310-
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.value()));
311-
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.value()));
312-
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.value()));
313-
StoragePoolDetailVO systemIdDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID);
314-
if (systemIdDetail != null) {
315-
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemIdDetail.getValue());
316-
StoragePoolDetailVO mdmsDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_MDMS);
317-
if (mdmsDetail != null) {
318-
details.put(ScaleIOGatewayClient.STORAGE_POOL_MDMS, mdmsDetail.getValue());
319-
details.put(ScaleIOSDCManager.ConnectOnDemand.key(), "false");
310+
StoragePoolVO storagePoolVO = primaryDataStoreDao.findById(store.getId());
311+
if (storagePoolVO != null) {
312+
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.valueIn(storagePoolVO.getDataCenterId())));
313+
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.valueIn(storagePoolVO.getDataCenterId())));
314+
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.valueIn(storagePoolVO.getDataCenterId())));
315+
316+
StoragePoolDetailVO systemIdDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID);
317+
if (systemIdDetail != null) {
318+
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemIdDetail.getValue());
319+
StoragePoolDetailVO mdmsDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_MDMS);
320+
if (mdmsDetail != null) {
321+
details.put(ScaleIOGatewayClient.STORAGE_POOL_MDMS, mdmsDetail.getValue());
322+
details.put(ScaleIOSDCManager.ConnectOnDemand.key(), "false");
323+
}
320324
}
321325
}
322326

@@ -328,16 +332,17 @@ public boolean maintain(DataStore store) {
328332
@Override
329333
public boolean cancelMaintain(DataStore store) {
330334
Map<String,String> details = new HashMap<>();
331-
StoragePoolDetailVO systemIdDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID);
332-
if (systemIdDetail != null) {
333-
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemIdDetail.getValue());
334-
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.value()));
335-
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.value()));
336-
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.value()));
337-
sdcManager = ComponentContext.inject(sdcManager);
338-
if (sdcManager.areSDCConnectionsWithinLimit(store.getId())) {
339-
StoragePoolVO storagePoolVO = primaryDataStoreDao.findById(store.getId());
340-
if (storagePoolVO != null) {
335+
StoragePoolVO storagePoolVO = primaryDataStoreDao.findById(store.getId());
336+
if (storagePoolVO != null) {
337+
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.valueIn(storagePoolVO.getDataCenterId())));
338+
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.valueIn(storagePoolVO.getDataCenterId())));
339+
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.valueIn(storagePoolVO.getDataCenterId())));
340+
341+
StoragePoolDetailVO systemIdDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID);
342+
if (systemIdDetail != null) {
343+
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemIdDetail.getValue());
344+
sdcManager = ComponentContext.inject(sdcManager);
345+
if (sdcManager.areSDCConnectionsWithinLimit(store.getId())) {
341346
details.put(ScaleIOSDCManager.ConnectOnDemand.key(), String.valueOf(ScaleIOSDCManager.ConnectOnDemand.valueIn(storagePoolVO.getDataCenterId())));
342347
StoragePoolDetailVO mdmsDetail = storagePoolDetailsDao.findDetail(store.getId(), ScaleIOGatewayClient.STORAGE_POOL_MDMS);
343348
if (mdmsDetail != null) {

plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/manager/ScaleIOSDCManagerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ private String prepareSDCOnHost(Host host, DataStore dataStore, String systemId,
207207
Map<String, String> details = new HashMap<>();
208208
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemId);
209209
details.put(ScaleIOGatewayClient.STORAGE_POOL_MDMS, mdms);
210-
details.put(MdmsChangeApplyTimeout.key(), String.valueOf(MdmsChangeApplyTimeout.value()));
210+
details.put(MdmsChangeApplyTimeout.key(), String.valueOf(MdmsChangeApplyTimeout.valueIn(host.getDataCenterId())));
211211

212212
PrepareStorageClientCommand cmd = new PrepareStorageClientCommand(((PrimaryDataStore) dataStore).getPoolType(), dataStore.getUuid(), details);
213213
int timeoutSeconds = 60;
@@ -326,7 +326,7 @@ private boolean unprepareSDCOnHost(Host host, DataStore dataStore, String mdms)
326326
logger.debug(String.format("Unpreparing SDC on the host %s (%s)", host.getId(), host.getName()));
327327
Map<String,String> details = new HashMap<>();
328328
details.put(ScaleIOGatewayClient.STORAGE_POOL_MDMS, mdms);
329-
details.put(MdmsChangeApplyTimeout.key(), String.valueOf(MdmsChangeApplyTimeout.value()));
329+
details.put(MdmsChangeApplyTimeout.key(), String.valueOf(MdmsChangeApplyTimeout.valueIn(host.getDataCenterId())));
330330
UnprepareStorageClientCommand cmd = new UnprepareStorageClientCommand(((PrimaryDataStore) dataStore).getPoolType(), dataStore.getUuid(), details);
331331
int timeoutSeconds = 60;
332332
cmd.setWait(timeoutSeconds);

plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/provider/ScaleIOHostListener.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ private String getSdcIdOfHost(HostVO host, DataStore dataStore) {
111111
}
112112
Map<String,String> details = new HashMap<>();
113113
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemId);
114-
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.value()));
115-
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.value()));
116-
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.value()));
114+
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.valueIn(host.getDataCenterId())));
115+
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.valueIn(host.getDataCenterId())));
116+
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.valueIn(host.getDataCenterId())));
117117
_sdcManager = ComponentContext.inject(_sdcManager);
118118
if (_sdcManager.areSDCConnectionsWithinLimit(poolId)) {
119119
details.put(ScaleIOSDCManager.ConnectOnDemand.key(), String.valueOf(ScaleIOSDCManager.ConnectOnDemand.valueIn(host.getDataCenterId())));
@@ -206,9 +206,9 @@ public boolean hostDisconnected(long hostId, long poolId) {
206206
}
207207
Map<String,String> details = new HashMap<>();
208208
details.put(ScaleIOGatewayClient.STORAGE_POOL_SYSTEM_ID, systemId);
209-
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.value()));
210-
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.value()));
211-
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.value()));
209+
details.put(ScaleIOSDCManager.MdmsChangeApplyTimeout.key(), String.valueOf(ScaleIOSDCManager.MdmsChangeApplyTimeout.valueIn(host.getDataCenterId())));
210+
details.put(ScaleIOSDCManager.ValidateMdmsOnConnect.key(), String.valueOf(ScaleIOSDCManager.ValidateMdmsOnConnect.valueIn(host.getDataCenterId())));
211+
details.put(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.key(), String.valueOf(ScaleIOSDCManager.BlockSdcUnprepareIfRestartNeededAndVolumesAreAttached.valueIn(host.getDataCenterId())));
212212
_sdcManager = ComponentContext.inject(_sdcManager);
213213
if (_sdcManager.canUnprepareSDC(host, dataStore)) {
214214
details.put(ScaleIOSDCManager.ConnectOnDemand.key(), String.valueOf(ScaleIOSDCManager.ConnectOnDemand.valueIn(host.getDataCenterId())));

0 commit comments

Comments
 (0)