Daniel Erez has uploaded a new change for review. Change subject: core: added getDiskStatus to CinderBroker ......................................................................
core: added getDiskStatus to CinderBroker * Added getDiskStatus method to CinderBroker. * Added mapCinderVolumeStatusToImageStatus method to CinderBroker. * Added getVolumeById method to OpenStackVolumeProviderProxy. Change-Id: I0857ebb82f697e4ba05d722f3e951124f33fbfd5 Bug-Url: https://bugzilla.redhat.com/1185826 Signed-off-by: Daniel Erez <de...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackVolumeProviderProxy.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java 2 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/39020/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackVolumeProviderProxy.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackVolumeProviderProxy.java index 19baed9..1959ad7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackVolumeProviderProxy.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackVolumeProviderProxy.java @@ -61,6 +61,10 @@ return retCinderVolume.getId(); } + public Volume getVolumeById(String id) { + return getClient(getTenantId()).volumes().show(id).execute(); + } + @Override public void onRemoval() { List<StorageDomain> storageDomains = getDbFacade().getStorageDomainDao().getAllByConnectionId(provider.getId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java index e0a42f3..b9d9290 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java @@ -1,9 +1,12 @@ package org.ovirt.engine.core.bll.storage; import com.woorea.openstack.base.client.OpenStackResponseException; +import com.woorea.openstack.cinder.model.Volume; import com.woorea.openstack.cinder.model.VolumeForCreate; import org.ovirt.engine.core.bll.provider.storage.OpenStackVolumeProviderProxy; import org.ovirt.engine.core.common.businessentities.storage.CinderDisk; +import org.ovirt.engine.core.common.businessentities.storage.CinderVolumeStatus; +import org.ovirt.engine.core.common.businessentities.storage.ImageStatus; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; @@ -47,6 +50,33 @@ }); } + public ImageStatus getDiskStatus(final Guid id) { + return execute(new Callable<ImageStatus>() { + @Override + public ImageStatus call() { + Volume volume = proxy.getVolumeById(id.toString()); + CinderVolumeStatus cinderVolumeStatus = CinderVolumeStatus.forValue(volume.getStatus()); + return mapCinderVolumeStatusToImageStatus(cinderVolumeStatus); + } + }); + } + + protected static ImageStatus mapCinderVolumeStatusToImageStatus(CinderVolumeStatus cinderVolumeStatus) { + switch (cinderVolumeStatus) { + case Available: + return ImageStatus.OK; + case Creating: + case Deleting: + case Extending: + return ImageStatus.LOCKED; + case Error: + case ErrorDeleting: + return ImageStatus.ILLEGAL; + default: + return null; + } + } + private OpenStackVolumeProviderProxy getVolumeProviderProxy(Guid storageDomainId) { if (proxy == null) { proxy = OpenStackVolumeProviderProxy.getFromStorageDomainId(storageDomainId); -- To view, visit https://gerrit.ovirt.org/39020 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0857ebb82f697e4ba05d722f3e951124f33fbfd5 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