Mike Kolesnik has uploaded a new change for review.

Change subject: engine: Added provider custom properties
......................................................................

engine: Added provider custom properties

Added custom properties field to provider to use for installing provider
on hosts, etc.

Change-Id: I546c9e6a98cb83fd95a37d4799afab9359cc4900
Signed-off-by: Mike Kolesnik <mkole...@redhat.com>
---
M backend/manager/dbscripts/providers_sp.sql
A 
backend/manager/dbscripts/upgrade/03_03_0210_add_custom_properties_to_providers.sql
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
4 files changed, 40 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/15671/1

diff --git a/backend/manager/dbscripts/providers_sp.sql 
b/backend/manager/dbscripts/providers_sp.sql
index 99c0c4a..20231ae 100644
--- a/backend/manager/dbscripts/providers_sp.sql
+++ b/backend/manager/dbscripts/providers_sp.sql
@@ -15,7 +15,8 @@
     v_provider_type VARCHAR(32),
     v_auth_required BOOLEAN,
     v_auth_username VARCHAR(64),
-    v_auth_password TEXT)
+    v_auth_password TEXT,
+    v_custom_properties TEXT)
 RETURNS VOID
 AS $procedure$
 BEGIN
@@ -27,7 +28,8 @@
         provider_type,
         auth_required,
         auth_username,
-        auth_password)
+        auth_password,
+        custom_properties)
     VALUES(
         v_id,
         v_name,
@@ -36,7 +38,8 @@
         v_provider_type,
         v_auth_required,
         v_auth_username,
-        v_auth_password);
+        v_auth_password,
+        v_custom_properties);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -52,7 +55,8 @@
     v_provider_type VARCHAR(32),
     v_auth_required BOOLEAN,
     v_auth_username VARCHAR(64),
-    v_auth_password TEXT)
+    v_auth_password TEXT,
+    v_custom_properties TEXT)
 RETURNS VOID
 AS $procedure$
 BEGIN
@@ -64,6 +68,7 @@
            auth_required = v_auth_required,
            auth_username = v_auth_username,
            auth_password = v_auth_password,
+           custom_properties = v_custom_properties,
            _update_date = NOW()
     WHERE  id = v_id;
 END; $procedure$
diff --git 
a/backend/manager/dbscripts/upgrade/03_03_0210_add_custom_properties_to_providers.sql
 
b/backend/manager/dbscripts/upgrade/03_03_0210_add_custom_properties_to_providers.sql
new file mode 100644
index 0000000..1703b2c
--- /dev/null
+++ 
b/backend/manager/dbscripts/upgrade/03_03_0210_add_custom_properties_to_providers.sql
@@ -0,0 +1 @@
+select fn_db_add_column('providers', 'custom_properties', 'TEXT');
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java
index 69eb59f..d87737a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.core.common.businessentities;
 
+import java.util.Map;
+
 import javax.validation.constraints.NotNull;
 
 import org.ovirt.engine.core.common.validation.annotation.ValidName;
@@ -37,6 +39,8 @@
     private String username;
 
     private String password;
+
+    private Map<String, String> customProperties;
 
     @Override
     public String getName() {
@@ -105,6 +109,14 @@
         this.password = password;
     }
 
+    public Map<String, String> getCustomProperties() {
+        return customProperties;
+    }
+
+    public void setCustomProperties(Map<String, String> customProperties) {
+        this.customProperties = customProperties;
+    }
+
     @Override
     public Object getQueryableId() {
         return getId();
@@ -122,6 +134,7 @@
         result = prime * result + ((getType() == null) ? 0 : 
getType().hashCode());
         result = prime * result + ((getUrl() == null) ? 0 : 
getUrl().hashCode());
         result = prime * result + ((getUsername() == null) ? 0 : 
getUsername().hashCode());
+        result = prime * result + ((getCustomProperties() == null) ? 0 : 
getCustomProperties().hashCode());
         return result;
     }
 
@@ -185,6 +198,13 @@
         } else if (!getUsername().equals(other.getUsername())) {
             return false;
         }
+        if (getCustomProperties() == null) {
+            if (other.getCustomProperties() != null) {
+                return false;
+            }
+        } else if (!getCustomProperties().equals(other.getCustomProperties())) 
{
+            return false;
+        }
         return true;
     }
 
@@ -207,6 +227,8 @@
                 .append(getUsername())
                 .append(", password=")
                 .append(getPassword() == null ? null : "******")
+                .append(", customProperties=")
+                .append(getCustomProperties())
                 .append("]");
         return builder.toString();
     }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
index 345a686..2bf4526 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
@@ -2,6 +2,7 @@
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.HashMap;
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.Provider;
@@ -10,6 +11,7 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils;
 import org.ovirt.engine.core.dao.DefaultGenericDaoDbFacade;
+import org.ovirt.engine.core.utils.SerializationFactory;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
 
@@ -28,7 +30,9 @@
                 .addValue("provider_type", 
EnumUtils.nameOrNull(entity.getType()))
                 .addValue("auth_required", entity.isRequiringAuthentication())
                 .addValue("auth_username", entity.getUsername())
-                .addValue("auth_password", 
DbFacadeUtils.encryptPassword(entity.getPassword()));
+                .addValue("auth_password", 
DbFacadeUtils.encryptPassword(entity.getPassword()))
+                .addValue("custom_properties",
+                        
SerializationFactory.getSerializer().serialize(entity.getCustomProperties()));
     }
 
     @Override
@@ -56,6 +60,7 @@
         }
 
         @Override
+        @SuppressWarnings("unchecked")
         public Provider mapRow(ResultSet rs, int index) throws SQLException {
             Provider entity = new Provider();
             entity.setId(Guid.createGuidFromString(rs.getString("id")));
@@ -66,6 +71,8 @@
             entity.setRequiringAuthentication(rs.getBoolean("auth_required"));
             entity.setUsername(rs.getString("auth_username"));
             
entity.setPassword(DbFacadeUtils.decryptPassword(rs.getString("auth_password")));
+            entity.setCustomProperties(SerializationFactory.getDeserializer()
+                    .deserialize(rs.getString("custom_properties"), 
HashMap.class));
             return entity;
         }
     }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I546c9e6a98cb83fd95a37d4799afab9359cc4900
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Mike Kolesnik <mkole...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to