Daniel Erez has uploaded a new change for review.

Change subject: restapi: Extend block domain - override_luns
......................................................................

restapi: Extend block domain - override_luns

Added 'override_luns' flag to update storage domain api:
* An optional flag when extending a block storage domain
  i.e. force flag for extending a domain
  (same flag as adding a new block storage domain).
* BackendStorageDomainResource - passed the flag
  to ExtendSANStorageDomainParameters.
* rsdl_metadata: added an optional 'override_luns'
  argument in update storage.

Change-Id: I492876d33913e8ddc88c30e5189e52bf58361fd1
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
2 files changed, 8 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/9344/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
index 91e2536..c6fc8a0 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
@@ -705,7 +705,7 @@
       parameterType: StorageDomain
       signatures:
       - mandatoryArguments: {}
-        optionalArguments: {storagedomain.name: 'xs:string'}
+        optionalArguments: {storagedomain.name: 'xs:string', 
storagedomain.storage.override_luns: 'xs:boolean'}
     urlparams:
       async: {context: matrix, type: 'xs:boolean', value: true|false, 
required: false}
     headers:
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
index cb5e773..89dbd0d 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
@@ -123,18 +123,20 @@
         List<LogicalUnit> existingLuns = 
storageDomain.getStorage().getVolumeGroup().getLogicalUnits();
         List<LogicalUnit> incomingLuns = 
getIncomingLuns(incoming.getStorage());
         List<LogicalUnit> newLuns = findNewLuns(existingLuns, incomingLuns);
+        boolean overrideLuns = incoming.getStorage().isSetOverrideLuns() ?
+                incoming.getStorage().isOverrideLuns() : false;
         if (!newLuns.isEmpty()) {
             //If there are new LUNs, this means the user wants to extend the 
storage domain.
             //Supplying a host is necessary for this operation, but not for 
regular update
             //of storage-domain. So only now is the time for this validation.
             validateParameters(incoming, "host.id|name");
-            addLunsToStorageDomain(incoming, storageType, newLuns);
+            addLunsToStorageDomain(incoming, storageType, newLuns, 
overrideLuns);
             //Remove the new LUNs from the incoming LUns before update, since 
they have already been dealt with.
             incomingLuns.removeAll(newLuns);
         }
     }
 
-    private void addLunsToStorageDomain(StorageDomain incoming, StorageType 
storageType, List<LogicalUnit> newLuns) {
+    private void addLunsToStorageDomain(StorageDomain incoming, StorageType 
storageType, List<LogicalUnit> newLuns, boolean overrideLuns) {
         for (LogicalUnit lun : newLuns) {
             if (lun.isSetAddress() && lun.isSetTarget()) {
                 storage_server_connections connection = 
StorageDomainHelper.getConnection(storageType, lun.getAddress(), 
lun.getTarget(), lun.getUsername(), lun.getPassword(), lun.getPort());
@@ -145,7 +147,7 @@
 
         refreshVDSM(incoming);
 
-        ExtendSANStorageDomainParameters params = createParameters(guid, 
newLuns);
+        ExtendSANStorageDomainParameters params = createParameters(guid, 
newLuns, overrideLuns);
 
         performAction(VdcActionType.ExtendSANStorageDomain, params);
     }
@@ -197,7 +199,7 @@
                  : null;
     }
 
-    private ExtendSANStorageDomainParameters createParameters(Guid 
storageDomainId, List<LogicalUnit> newLuns) {
+    private ExtendSANStorageDomainParameters createParameters(Guid 
storageDomainId, List<LogicalUnit> newLuns, boolean force) {
         ExtendSANStorageDomainParameters params = new 
ExtendSANStorageDomainParameters();
         params.setStorageDomainId(storageDomainId);
         ArrayList<String> lunIds = new ArrayList<String>();
@@ -205,6 +207,7 @@
             lunIds.add(newLun.getId());
         }
         params.setLunIds(lunIds);
+        params.setForce(force);
         return params;
     }
 


--
To view, visit http://gerrit.ovirt.org/9344
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I492876d33913e8ddc88c30e5189e52bf58361fd1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <de...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to