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

Reply via email to