Daniel Erez has uploaded a new change for review. Change subject: core: Adding force extend support to extendVG ......................................................................
core: Adding force extend support to extendVG * Added 'SupportForceExtendVG' configuration value (true for version 3.2). * Passed 'force' flag to 'extendStorageDomain' iff 'SupportForceExtendVG' is true. * Added new extendStorageDomain method signatures in 'IrsServer' files. * StorageListModel - passed 'force' flag to ExtendSANStorageDomainParameters Change-Id: I3b9196333f680bfad8bb421ad0dad8843b9c8e2b Signed-off-by: Daniel Erez <[email protected]> --- M backend/manager/dbscripts/upgrade/pre_upgrade/0000_config.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ExtendSANStorageDomainParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/ExtendStorageDomainVDSCommandParameters.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ExtendStorageDomainVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IIrsServer.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerConnector.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerWrapper.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java 10 files changed, 79 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/9343/1 diff --git a/backend/manager/dbscripts/upgrade/pre_upgrade/0000_config.sql b/backend/manager/dbscripts/upgrade/pre_upgrade/0000_config.sql index 5887cf0..86d005a 100644 --- a/backend/manager/dbscripts/upgrade/pre_upgrade/0000_config.sql +++ b/backend/manager/dbscripts/upgrade/pre_upgrade/0000_config.sql @@ -478,6 +478,10 @@ select fn_db_add_config_value('SupportForceCreateVG','false','3.0'); select fn_db_add_config_value('SupportForceCreateVG','true','3.1'); select fn_db_add_config_value('SupportForceCreateVG','true','3.2'); +select fn_db_add_config_value('SupportForceExtendVG','false','2.2'); +select fn_db_add_config_value('SupportForceExtendVG','false','3.0'); +select fn_db_add_config_value('SupportForceExtendVG','false','3.1'); +select fn_db_add_config_value('SupportForceExtendVG','true','3.2'); select fn_db_add_config_value('SysPrep2K3Path','backend/manager/conf/sysprep/sysprep.2k3','general'); select fn_db_add_config_value('SysPrep2K8Path','backend/manager/conf/sysprep/sysprep.2k8','general'); select fn_db_add_config_value('SysPrep2K8R2Path','backend/manager/conf/sysprep/sysprep.2k8','general'); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java index cd36ee8..fdfaba2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendSANStorageDomainCommand.java @@ -10,6 +10,8 @@ import org.ovirt.engine.core.common.businessentities.LUNs; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageType; +import org.ovirt.engine.core.common.config.Config; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.vdscommands.ExtendStorageDomainVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.dal.VdcBllMessages; @@ -27,13 +29,18 @@ for (LUNs lun : getParameters().getLunsList()) { proceedLUNInDb(lun, getStorageDomain().getstorage_type()); } + + boolean supportForceExtendVG = Config.<Boolean> GetValue( + ConfigValues.SupportForceExtendVG, getStoragePool().getcompatibility_version().toString()); + if (Backend .getInstance() .getResourceManager() .RunVdsCommand( VDSCommandType.ExtendStorageDomain, new ExtendStorageDomainVDSCommandParameters(getStoragePoolId().getValue(), getStorageDomain() - .getId(), getParameters().getLunIds())).getSucceeded()) { + .getId(), getParameters().getLunIds(), getParameters().isForce(), supportForceExtendVG)) + .getSucceeded()) { setStorageDomainStatus(StorageDomainStatus.Active, null); setSucceeded(true); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ExtendSANStorageDomainParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ExtendSANStorageDomainParameters.java index 7cea40c..926f935 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ExtendSANStorageDomainParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ExtendSANStorageDomainParameters.java @@ -27,11 +27,27 @@ privateLunsList = value; } + private boolean force; + + public boolean isForce() { + return force; + } + + public void setForce(boolean force) { + this.force = force; + } + public ExtendSANStorageDomainParameters(Guid storageDomainId, java.util.ArrayList<String> lunIds) { super(storageDomainId); setLunIds(lunIds); } + public ExtendSANStorageDomainParameters(Guid storageDomainId, java.util.ArrayList<String> lunIds, boolean force) { + super(storageDomainId); + setLunIds(lunIds); + setForce(force); + } + public ExtendSANStorageDomainParameters() { } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java index d1d65b1..8be9c5a 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java @@ -1557,6 +1557,10 @@ @DefaultValueAttribute("300") GlusterRefreshRateHeavy(396), + @TypeConverterAttribute(Boolean.class) + @DefaultValueAttribute("true") + SupportForceExtendVG(397), + Invalid(65535); private int intValue; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/ExtendStorageDomainVDSCommandParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/ExtendStorageDomainVDSCommandParameters.java index 84fd64c..b20fe40 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/ExtendStorageDomainVDSCommandParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/ExtendStorageDomainVDSCommandParameters.java @@ -4,9 +4,11 @@ public class ExtendStorageDomainVDSCommandParameters extends ActivateStorageDomainVDSCommandParameters { public ExtendStorageDomainVDSCommandParameters(Guid storagePoolId, Guid storageDomainId, - java.util.ArrayList<String> deviceList) { + java.util.ArrayList<String> deviceList, boolean force, boolean supportForceExtendVG) { super(storagePoolId, storageDomainId); setDeviceList(deviceList); + setForce(force); + setSupportForceExtendVG(supportForceExtendVG); } private java.util.ArrayList<String> privateDeviceList; @@ -19,6 +21,26 @@ privateDeviceList = value; } + private boolean force; + + public boolean isForce() { + return force; + } + + public void setForce(boolean force) { + this.force = force; + } + + private boolean supportForceExtendVG; + + public boolean isSupportForceExtendVG() { + return supportForceExtendVG; + } + + public void setSupportForceExtendVG(boolean supportForceExtendVG) { + this.supportForceExtendVG = supportForceExtendVG; + } + public ExtendStorageDomainVDSCommandParameters() { } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ExtendStorageDomainVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ExtendStorageDomainVDSCommand.java index a386076..7af29d4 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ExtendStorageDomainVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ExtendStorageDomainVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import java.util.List; + import org.ovirt.engine.core.common.errors.*; import org.ovirt.engine.core.common.vdscommands.*; @@ -12,9 +14,16 @@ @Override protected void ExecuteIrsBrokerCommand() { - status = getIrsProxy().extendStorageDomain(getParameters().getStorageDomainId().toString(), - getParameters().getStoragePoolId().toString(), - getParameters().getDeviceList().toArray(new String[] {})); + String storageDomainId = getParameters().getStorageDomainId().toString(); + String storagePoolId = getParameters().getStoragePoolId().toString(); + List<String> deviceList = getParameters().getDeviceList(); + String[] deviceArray = deviceList.toArray(new String[deviceList.size()]); + boolean isForce = getParameters().isForce(); + + status = getParameters().isSupportForceExtendVG() ? + getIrsProxy().extendStorageDomain(storageDomainId, storagePoolId, deviceArray, isForce) : + getIrsProxy().extendStorageDomain(storageDomainId, storagePoolId, deviceArray); + ProceedProxyReturnValue(); } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IIrsServer.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IIrsServer.java index 8e16620..5fff8aa 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IIrsServer.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IIrsServer.java @@ -57,6 +57,8 @@ StatusOnlyReturnForXmlRpc extendStorageDomain(String sdUUID, String spUUID, String[] devlist); + StatusOnlyReturnForXmlRpc extendStorageDomain(String sdUUID, String spUUID, String[] devlist, boolean force); + StatusOnlyReturnForXmlRpc setStoragePoolDescription(String spUUID, String description); StoragePoolInfoReturnForXmlRpc getStoragePoolInfo(String spUUID); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerConnector.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerConnector.java index bc5ef47..506ef9b 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerConnector.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerConnector.java @@ -64,6 +64,8 @@ public Map<String, Object> extendStorageDomain(String sdUUID, String spUUID, String[] devlist); + public Map<String, Object> extendStorageDomain(String sdUUID, String spUUID, String[] devlist, boolean force); + public Map<String, Object> setStoragePoolDescription(String spUUID, String description); public Map<String, Object> getStoragePoolInfo(String spUUID); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerWrapper.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerWrapper.java index ac10b1d..0ff238e 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerWrapper.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsServerWrapper.java @@ -160,6 +160,12 @@ return wrapper; } + public StatusOnlyReturnForXmlRpc extendStorageDomain(String sdUUID, String spUUID, String[] devlist, boolean force) { + Map<String, Object> xmlRpcReturnValue = irsServer.extendStorageDomain(sdUUID, spUUID, devlist, force); + StatusOnlyReturnForXmlRpc wrapper = new StatusOnlyReturnForXmlRpc(xmlRpcReturnValue); + return wrapper; + } + public StatusOnlyReturnForXmlRpc setStoragePoolDescription(String spUUID, String description) { Map<String, Object> xmlRpcReturnValue = irsServer.setStoragePoolDescription(spUUID, description); StatusOnlyReturnForXmlRpc wrapper = new StatusOnlyReturnForXmlRpc(xmlRpcReturnValue); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java index 3c9a25b..55c836c 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java @@ -1622,6 +1622,7 @@ StorageListModel storageListModel = (StorageListModel) result.getState(); StorageModel storageModel = (StorageModel) getWindow(); SanStorageModel sanStorageModel = (SanStorageModel) storageModel.getSelectedItem(); + boolean force = sanStorageModel.isForce(); storage_domains storageDomain1 = (storage_domains) storageListModel.getSelectedItem(); ArrayList<String> lunIds = new ArrayList<String>(); @@ -1631,7 +1632,7 @@ if (lunIds.size() > 0) { Frontend.RunAction(VdcActionType.ExtendSANStorageDomain, - new ExtendSANStorageDomainParameters(storageDomain1.getId(), lunIds), + new ExtendSANStorageDomainParameters(storageDomain1.getId(), lunIds, force), new IFrontendActionAsyncCallback() { @Override public void Executed(FrontendActionAsyncResult result1) { -- To view, visit http://gerrit.ovirt.org/9343 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3b9196333f680bfad8bb421ad0dad8843b9c8e2b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
