Daniel Erez has uploaded a new change for review.

Change subject: core: ProviderProxy interface - getProviderValidator
......................................................................

core: ProviderProxy interface - getProviderValidator

ProviderProxy interface:
adding 'getProviderValidator' signature in order to support
a specific provider validator for each provider proxy type
(will be used for CinderProviderValidator).

Change-Id: Ifc062d7b62d6769afa97d100e239a313f72b3c4b
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/BaseProviderProxy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/AbstractOpenStackStorageProviderProxy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackImageProviderProxy.java
5 files changed, 39 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/38873/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
index a0bb728..36aabd2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
@@ -37,6 +37,7 @@
 
     private URL url;
     private Provider<?> hostProvider;
+    private ProviderValidator providerValidator;
 
     protected static enum HttpMethodType {
         GET,
@@ -194,5 +195,12 @@
         return result;
     }
 
+    @Override
+    public ProviderValidator getProviderValidator() {
+        if (providerValidator == null) {
+            providerValidator = new ProviderValidator(hostProvider);
+        }
+        return providerValidator;
+    }
 
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxy.java
index 2d4bf6b..ef62621 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxy.java
@@ -4,7 +4,7 @@
 import java.util.List;
 
 
-public interface ProviderProxy {
+public interface ProviderProxy<T extends ProviderValidator> {
 
     /**
      * Test the connection to the provider.<br>
@@ -37,4 +37,10 @@
      */
     void onRemoval();
 
+    /**
+     * Gets a specific validator for the provider
+     * @return
+     */
+    T getProviderValidator();
+
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
index f81f07f..53567a2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
@@ -12,6 +12,7 @@
 import org.apache.commons.lang.NotImplementedException;
 import org.apache.commons.lang.StringUtils;
 import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import org.ovirt.engine.core.bll.provider.ProviderValidator;
 import org.ovirt.engine.core.bll.provider.network.NetworkProviderProxy;
 import 
org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties;
 import org.ovirt.engine.core.common.businessentities.Provider;
@@ -55,6 +56,8 @@
     private Provider<OpenstackNetworkProviderProperties> provider;
 
     private Quantum client;
+
+    private ProviderValidator providerValidator;
 
     public 
OpenstackNetworkProviderProxy(Provider<OpenstackNetworkProviderProperties> 
provider) {
         this.provider = provider;
@@ -339,4 +342,12 @@
     private static class ApiRootResponse {
         // No implementation since we don't care what's inside the response, 
just that it succeeded.
     }
+
+    @Override
+    public ProviderValidator getProviderValidator() {
+        if (providerValidator == null) {
+            providerValidator = new ProviderValidator(provider);
+        }
+        return providerValidator;
+    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/AbstractOpenStackStorageProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/AbstractOpenStackStorageProviderProxy.java
index 59e888b..ec3c551 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/AbstractOpenStackStorageProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/AbstractOpenStackStorageProviderProxy.java
@@ -7,6 +7,7 @@
 import com.woorea.openstack.keystone.model.Access;
 import com.woorea.openstack.keystone.utils.KeystoneTokenProvider;
 import org.ovirt.engine.core.bll.provider.ProviderProxy;
+import org.ovirt.engine.core.bll.provider.ProviderValidator;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic;
@@ -24,7 +25,7 @@
 import java.security.cert.Certificate;
 import java.util.List;
 
-public abstract class AbstractOpenStackStorageProviderProxy<C extends 
OpenStackClient, T extends TenantProviderProperties> implements ProviderProxy {
+public abstract class AbstractOpenStackStorageProviderProxy<C extends 
OpenStackClient, T extends TenantProviderProperties, V extends 
ProviderValidator> implements ProviderProxy<V> {
 
     protected C client;
 
@@ -36,6 +37,8 @@
 
     protected StorageDomain storageDomain;
 
+    protected V providerValidator;
+
     @Override
     public void testConnection() {
         try {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackImageProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackImageProviderProxy.java
index 9a06d7b..72d31a7 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackImageProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/storage/OpenStackImageProviderProxy.java
@@ -9,6 +9,7 @@
 import java.util.Map;
 
 import org.ovirt.engine.core.bll.provider.ProviderProxyFactory;
+import org.ovirt.engine.core.bll.provider.ProviderValidator;
 import 
org.ovirt.engine.core.common.businessentities.OpenStackImageProviderProperties;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
@@ -27,7 +28,7 @@
 import com.woorea.openstack.glance.model.ImageDownload;
 import com.woorea.openstack.glance.model.Images;
 
-public class OpenStackImageProviderProxy extends 
AbstractOpenStackStorageProviderProxy<Glance, OpenStackImageProviderProperties> 
{
+public class OpenStackImageProviderProxy extends 
AbstractOpenStackStorageProviderProxy<Glance, OpenStackImageProviderProperties, 
ProviderValidator> {
 
     enum GlanceImageFormat {
         RAW("raw"),
@@ -300,4 +301,11 @@
         return getProvider().getUrl() + API_VERSION  + "/images/" + id;
     }
 
+    @Override
+    public ProviderValidator getProviderValidator() {
+        if (providerValidator == null) {
+            providerValidator = new ProviderValidator(provider);
+        }
+        return providerValidator;
+    }
 }


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

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