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