Daniel Erez has uploaded a new change for review.

Change subject: core: introduce CinderBroker
......................................................................

core: introduce CinderBroker

Introducing CinderBroker class which handles all invocations
of Cinder sdk actions (e.g. createVolume/deleteVolume/etc).
The CinderBroker adds VdcBllErrors.CINDER_ERROR to executeFailedMessages
in case of an OpenStackResponseException.

Change-Id: If71305412188be95dc88bc0d8646958a3d3e6aef
Bug-Url: https://bugzilla.redhat.com/1185826
Signed-off-by: Daniel Erez <de...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
M backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
M 
frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
6 files changed, 50 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/39016/1

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
new file mode 100644
index 0000000..8cd350c
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
@@ -0,0 +1,41 @@
+package org.ovirt.engine.core.bll.storage;
+
+import com.woorea.openstack.base.client.OpenStackResponseException;
+import org.ovirt.engine.core.bll.provider.storage.OpenStackVolumeProviderProxy;
+import org.ovirt.engine.core.common.errors.VdcBllErrors;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
+
+import java.util.ArrayList;
+import java.util.concurrent.Callable;
+
+public class CinderBroker extends AuditLogableBase {
+
+    private OpenStackVolumeProviderProxy proxy;
+    private ArrayList<String> executeFailedMessages;
+
+    public CinderBroker(Guid storageDomainId, ArrayList<String> 
executeFailedMessages) {
+        this.proxy = getVolumeProviderProxy(storageDomainId);
+        this.executeFailedMessages = executeFailedMessages;
+    }
+
+    private <T> T execute(Callable<T> callable) {
+        try {
+            return callable.call();
+        } catch (OpenStackResponseException e) {
+            executeFailedMessages.add(VdcBllErrors.CINDER_ERROR.name());
+            executeFailedMessages.add(String.format("$cinderException %1$s", 
e.getMessage()));
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private OpenStackVolumeProviderProxy getVolumeProviderProxy(Guid 
storageDomainId) {
+        if (proxy == null) {
+            proxy = 
OpenStackVolumeProviderProxy.getFromStorageDomainId(storageDomainId);
+        }
+        return proxy;
+    }
+
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
index 523346e..b4a5e2b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
@@ -478,6 +478,9 @@
     // SetupNetwork errors
     SETUP_NETWORKS_ROLLBACK(5300),
 
+    // Cinder errors
+    CINDER_ERROR(5400),
+
     // Gluster errors
     NO_UP_SERVER_FOUND(7000),
     // error to indicate backend does not recognize the session
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
index 026ec62..8e82a67 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -448,3 +448,4 @@
 GlusterHostStorageDevicePVCreateFailedException=Failed to create LVM Physical 
Volume
 GlusterHostStorageDeviceLVConvertFailedException=Failed to run lvconvert for 
device
 GlusterHostStorageDeviceLVChangeFailedException=Failed to run lvchange for the 
thin pool
+CINDER_ERROR=An error occurred on Cinder - '${cinderException}'
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
index 93307e8..9d9b3ce 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
@@ -899,4 +899,7 @@
 
     @DefaultStringValue("Failed to run lvchange for the thin pool:")
     String GlusterHostStorageDeviceLVChangeFailedException();
+
+    @DefaultStringValue("An error occurred on Cinder - '${cinderException}'")
+    String CINDER_ERROR();
 }
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
index fe5fc85..1e5aa46 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
@@ -343,3 +343,4 @@
 ACTIVATE_NIC_FAILED=Failed to activate VM Network Interface.
 DEACTIVATE_NIC_FAILED=Failed to deactivate VM Network Interface.
 UPDATE_VNIC_FAILED=Failed to update VM Network Interface.
+CINDER_ERROR=An error occurred on Cinder - '${cinderException}'
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
 
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
index 4000118..49a4c75 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
+++ 
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties
@@ -394,3 +394,4 @@
 GlusterSnapshotConfigFailedException=Failed to configure gluster volume 
snapshot
 GlusterSnapshotConfigSetFailedException=Failed to set the gluster volume 
snapshot configuration
 GlusterSnapshotConfigGetFailedException=Failed to get the gluster volume 
snapshot configuration
+CINDER_ERROR=An error occurred on Cinder - '${cinderException}'


-- 
To view, visit https://gerrit.ovirt.org/39016
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If71305412188be95dc88bc0d8646958a3d3e6aef
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