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

Reply via email to