Maor Lipchuk has uploaded a new change for review. Change subject: restapi: Add API to support warning for attached Storage Domains ......................................................................
restapi: Add API to support warning for attached Storage Domains Adding a REST API to support warning for attached Storage Domains on attach or import of Storage Domain Change-Id: I4b12e5ea2abea66cb950e3cdd64baaaff72a6919 Bug-Url: https://bugzilla.redhat.com/1179246 Signed-off-by: Maor Lipchuk <mlipc...@redhat.com> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageDomainsResource.java M backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java 3 files changed, 52 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/49/36849/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageDomainsResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageDomainsResource.java index d0f1934..f96362e 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageDomainsResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageDomainsResource.java @@ -39,6 +39,11 @@ @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public Response add(StorageDomain storageDomains); + @POST + @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) + @Path("getfilterattached") + public Response getFilterAttached(StorageDomain storageDomain); + @DELETE @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) @Path("{id}") diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml index ebe75f0..4668f7d 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml @@ -1589,6 +1589,22 @@ Content-Type: {value: application/xml|json, required: true} Expect: {value: 201-created, required: false} Correlation-Id: {value: 'any string', required: false} +- name: /storagedomains|rel=getfilterattached + description: Querying if the Storage Domain is already attached to a Data Center. If the Storage Domain is attached then the Storage Domain will be returned otherwise an empty Storage Domain will be returned. + request: + body: + parameterType: StorageDomain + signatures: + - mandatoryArguments: {storagedomain.host.id|name: 'xs:string', + storagedomain.id: 'xs:string', storagedomain.id: 'xs:string'}} + optionalArguments: {} + description: Perform automatic logon on the VM using the guest agent. + urlparams: + async: {context: matrix, type: 'xs:boolean', value: true|false, required: false} + headers: + Content-Type: {value: application/xml|json, required: true} + Expect: {value: 201-created, required: false} + Correlation-Id: {value: 'any string', required: false} - name: /storagedomains/{storagedomain:id}/files|rel=get description: get the files stored in the iso storage domain request: diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java index b7c9ff3..c1f866a 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java @@ -11,6 +11,7 @@ import org.apache.commons.lang.StringUtils; import org.ovirt.engine.api.common.util.StatusUtils; +import org.ovirt.engine.api.model.CreationStatus; import org.ovirt.engine.api.model.Fault; import org.ovirt.engine.api.model.LogicalUnit; import org.ovirt.engine.api.model.Storage; @@ -42,6 +43,7 @@ import org.ovirt.engine.core.common.queries.GetUnregisteredBlockStorageDomainsParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.NameQueryParameters; +import org.ovirt.engine.core.common.queries.StorageDomainsAndStoragePoolIdQueryParameters; import org.ovirt.engine.core.common.queries.StorageServerConnectionQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -250,6 +252,35 @@ } @Override + public Response getFilterAttached(StorageDomain storageDomain) { + validateParameters(storageDomain, "id", "host.id|name"); + validateEnums(StorageDomain.class, storageDomain); + Guid hostId = getHostId(storageDomain); + org.ovirt.engine.core.common.businessentities.StorageDomain storageDomainToAttach = + getEntity(org.ovirt.engine.core.common.businessentities.StorageDomain.class, + VdcQueryType.GetStorageDomainById, + new IdQueryParameters(asGuid(storageDomain.getId())), + "storage_domain"); + StorageDomainsAndStoragePoolIdQueryParameters parameters = + new StorageDomainsAndStoragePoolIdQueryParameters(storageDomainToAttach, null, hostId); + parameters.setCheckStoragePoolStatus(false); + List<StorageDomainStatic> attachedStorageDomains = + getEntity(List.class, + VdcQueryType.GetStorageDomainsWithAttachedStoragePoolGuid, + parameters, + "GetStorageDomainsWithAttachedStoragePoolGuid", true); + StorageDomain returnedStorageDomain = new StorageDomain(); + if (!attachedStorageDomains.isEmpty()) { + org.ovirt.engine.core.common.businessentities.StorageDomain sd = + new org.ovirt.engine.core.common.businessentities.StorageDomain(); + sd.setStorageStaticData(attachedStorageDomains.get(0)); + returnedStorageDomain = map(sd, new StorageDomain()); + returnedStorageDomain.setStatus(StatusUtils.create(CreationStatus.COMPLETE)); + } + return Response.ok().entity(returnedStorageDomain).build(); + } + + @Override public Response add(StorageDomain storageDomain) { validateParameters(storageDomain, "host.id|name", "type", "storage"); Storage storageConnectionFromUser = storageDomain.getStorage(); -- To view, visit http://gerrit.ovirt.org/36849 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4b12e5ea2abea66cb950e3cdd64baaaff72a6919 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches