Federico Simoncelli has uploaded a new change for review.

Change subject: [wip] providers: add the openstack glance support
......................................................................

[wip] providers: add the openstack glance support

Change-Id: I424998de6f6514d65938484fffa5405e35857e43
Signed-off-by: Federico Simoncelli <[email protected]>
---
M backend/manager/dbscripts/storages_sp.sql
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GlanceProviderProxy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ProviderType.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAO.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java
6 files changed, 111 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/15899/1

diff --git a/backend/manager/dbscripts/storages_sp.sql 
b/backend/manager/dbscripts/storages_sp.sql
index 436a470..93028f2 100644
--- a/backend/manager/dbscripts/storages_sp.sql
+++ b/backend/manager/dbscripts/storages_sp.sql
@@ -388,6 +388,21 @@
 
 
 
+Create or replace FUNCTION Getstorage_domain_staticBystorage(v_storage 
VARCHAR(250))
+RETURNS SETOF storage_domain_static
+   AS $procedure$
+BEGIN
+   RETURN QUERY SELECT *
+   FROM storage_domain_static
+   WHERE storage = v_storage;
+
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+
+
+
 Create or replace FUNCTION 
Getstorage_domain_staticBystorage_pool_id(v_storage_pool_id UUID)
 RETURNS SETOF storage_domain_static_view
    AS $procedure$
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GlanceProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GlanceProviderProxy.java
new file mode 100644
index 0000000..1084f89
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GlanceProviderProxy.java
@@ -0,0 +1,69 @@
+package org.ovirt.engine.core.bll.provider;
+
+import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
+import org.ovirt.engine.core.common.businessentities.StorageDomainType;
+import org.ovirt.engine.core.common.businessentities.StorageFormatType;
+import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+
+import java.security.cert.Certificate;
+import java.util.List;
+
+
+public class GlanceProviderProxy implements ProviderProxy {
+
+    private Provider provider;
+
+    public GlanceProviderProxy(Provider provider) {
+        this.provider = provider;
+    }
+
+    @Override
+    public void testConnection() {
+    }
+
+    @Override
+    public List<? extends Certificate> getCertificateChain() {
+        return null;
+    }
+
+    protected DbFacade getDbFacade() {
+        return DbFacade.getInstance();
+    }
+
+    @Override
+    public void onAddition() {
+        // Storage domain static
+        StorageDomainStatic domainStaticEntry = new StorageDomainStatic();
+        domainStaticEntry.setId(Guid.NewGuid());
+        domainStaticEntry.setStorage(provider.getId().toString());
+        domainStaticEntry.setStorageName(provider.getName());
+        domainStaticEntry.setDescription(provider.getDescription());
+        domainStaticEntry.setStorageFormat(StorageFormatType.V1);
+        domainStaticEntry.setStorageType(StorageType.GLANCE);
+        domainStaticEntry.setStorageDomainType(StorageDomainType.Image);
+        getDbFacade().getStorageDomainStaticDao().save(domainStaticEntry);
+        // Storage domain dynamic
+        StorageDomainDynamic domainDynamicEntry = new StorageDomainDynamic();
+        domainDynamicEntry.setId(domainStaticEntry.getId());
+        domainDynamicEntry.setAvailableDiskSize(0);
+        domainDynamicEntry.setUsedDiskSize(0);
+        getDbFacade().getStorageDomainDynamicDao().save(domainDynamicEntry);
+    }
+
+    @Override
+    public void onRemoval() {
+        List<StorageDomainStatic> domainStaticEntries = 
getDbFacade().getStorageDomainStaticDao()
+                .getAllByStorage(provider.getId().toString());
+
+        // removing the static and dynamic storage domain entries
+        for (StorageDomainStatic domainStaticEntry : domainStaticEntries) {
+            
getDbFacade().getStorageDomainDynamicDao().remove(domainStaticEntry.getId());
+            
getDbFacade().getStorageDomainStaticDao().remove(domainStaticEntry.getId());
+        }
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
index 5cea11d..f0eddaf 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
@@ -22,7 +22,14 @@
      * @return The proxy for communicating with the provider
      */
     public <P extends ProviderProxy> P create(Provider provider) {
-        return (P) new ForemanHostProviderProxy(provider);
+        switch (provider.getType()) {
+            case FOREMAN:
+                return (P) new ForemanHostProviderProxy(provider);
+            case OPENSTACK_IMAGE:
+                return (P) new GlanceProviderProxy(provider);
+            default:
+                return null;
+        }
     }
 
     /**
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ProviderType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ProviderType.java
index f96f263..7d51cd6 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ProviderType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ProviderType.java
@@ -5,7 +5,8 @@
  */
 public enum ProviderType implements Identifiable {
     OPENSTACK_NETWORK(0),
-    FOREMAN(1);
+    FOREMAN(1),
+    OPENSTACK_IMAGE(2);
 
     private int value;
 
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAO.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAO.java
index 116389b..b277af1 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAO.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAO.java
@@ -19,6 +19,15 @@
     StorageDomainStatic getByName(String name);
 
     /**
+     * Retrieves all the instances with the specified storage.
+     *
+     * @param storage
+     *            the storage value
+     * @return the domain
+     */
+    List<StorageDomainStatic> getAllByStorage(String storage);
+
+    /**
      * Retrieves all domains of the specified type for the specified pool.
      *
      * @param type
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java
index 8517ce4..c83405c 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java
@@ -30,6 +30,14 @@
     }
 
     @Override
+    public List<StorageDomainStatic> getAllByStorage(String storage) {
+        return 
getCallsHandler().executeReadList("Getstorage_domain_staticBystorage",
+                StorageDomainStaticRowMapper.instance,
+                getCustomMapSqlParameterSource()
+                        .addValue("storage", storage));
+    }
+
+    @Override
     public List<StorageDomainStatic> getAllOfStorageType(
             StorageType type) {
         return 
getCallsHandler().executeReadList("Getstorage_domain_staticBystorage_pool_type",


-- 
To view, visit http://gerrit.ovirt.org/15899
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I424998de6f6514d65938484fffa5405e35857e43
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to