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