Lior Vernia has uploaded a new change for review.

Change subject: core: Add custom properties to VdsNetworkInterface
......................................................................

core: Add custom properties to VdsNetworkInterface

Add a custom properties member to the VdsNetworkInterface business
entity, and to its representation in the database.

Change-Id: I6cae4dcbe6a6681a63dcb9727d3a233dd27b51b6
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
M packaging/dbscripts/create_views.sql
M packaging/dbscripts/network_sp.sql
A packaging/dbscripts/upgrade/03_05_0230_add_vds_interface_custom_properties.sql
5 files changed, 32 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/26643/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
index f3bbcd6..e0ff540 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.common.businessentities.network;
 
 import java.io.Serializable;
+import java.util.Map;
 import java.util.Set;
 
 import javax.validation.constraints.NotNull;
@@ -45,6 +46,7 @@
     private NetworkImplementationDetails networkImplementationDetails;
     private NetworkQoS qos;
     private boolean qosOverridden;
+    private Map<String, String> customProperties;
 
     @ValidNetworkLabelFormat(message = "NETWORK_LABEL_FORMAT_INVALID")
     private Set<String> labels;
@@ -364,6 +366,14 @@
         this.labels = labels;
     }
 
+    public Map<String, String> getCustomProperties() {
+        return customProperties;
+    }
+
+    public void setCustomProperties (Map<String, String> customProperties) {
+        this.customProperties = customProperties;
+    }
+
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
@@ -408,6 +418,8 @@
                 .append(isQosOverridden())
                 .append(", labels=")
                 .append(getLabels())
+                .append(", customProperties=")
+                .append(getCustomProperties())
                 .append("}");
         return builder.toString();
     }
@@ -432,6 +444,7 @@
         result = prime * result + ((qos == null) ? 0 : qos.hashCode());
         result = prime * result + (qosOverridden ? 1231 : 1237);
         result = prime * result + ((labels == null) ? 0 : labels.hashCode());
+        result = prime * result + ((customProperties == null) ? 0 : 
customProperties.hashCode());
         return result;
     }
 
@@ -531,6 +544,9 @@
         if (!ObjectUtils.objectsEqual(labels, other.labels)) {
             return false;
         }
+        if (!ObjectUtils.objectsEqual(customProperties, 
other.customProperties)) {
+            return false;
+        }
 
         return true;
     }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
index 9376bb5..b0acb36 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
@@ -6,6 +6,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -126,7 +127,9 @@
                 .addValue("mtu", nic.getMtu())
                 .addValue("bridged", nic.isBridged())
                 .addValue("qos_overridden", nic.isQosOverridden())
-                .addValue("labels", 
SerializationFactory.getSerializer().serialize(nic.getLabels()));
+                .addValue("labels", 
SerializationFactory.getSerializer().serialize(nic.getLabels()))
+                .addValue("custom_properties",
+                        
SerializationFactory.getSerializer().serialize(nic.getCustomProperties()));
     }
 
     private void persistQosChanges(VdsNetworkInterface entity) {
@@ -308,6 +311,8 @@
                     entity.setQosOverridden(rs.getBoolean("qos_overridden"));
                     
entity.setLabels(SerializationFactory.getDeserializer().deserialize(rs.getString("labels"),
                             HashSet.class));
+                    
entity.setCustomProperties(SerializationFactory.getDeserializer()
+                            .deserialize(rs.getString("custom_properties"), 
LinkedHashMap.class));
                     return entity;
                 }
 
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index f29a9dd..b8cee2f 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -902,7 +902,7 @@
       vds_interface.bond_name, vds_interface.is_bond, vds_interface.bond_opts, 
vds_interface.mac_addr,
       vds_interface.network_name, vds_interface.name, vds_static.vds_id, 
vds_static.vds_name,  vds_interface.id,
       vds_interface.boot_protocol, vds_interface.mtu as mtu, 
vds_interface.bridged, 1 AS is_vds, vds_interface.qos_overridden AS 
qos_overridden,
-      vds_interface.labels as labels, vds_static.vds_group_id as vds_group_id
+      vds_interface.labels as labels, vds_interface.custom_properties AS 
custom_properties, vds_static.vds_group_id as vds_group_id
   FROM vds_interface_statistics
   JOIN vds_interface ON vds_interface_statistics.id = vds_interface.id
   JOIN vds_static ON vds_interface.vds_id = vds_static.vds_id;
diff --git a/packaging/dbscripts/network_sp.sql 
b/packaging/dbscripts/network_sp.sql
index 02acfc5..fdd9409 100644
--- a/packaging/dbscripts/network_sp.sql
+++ b/packaging/dbscripts/network_sp.sql
@@ -304,12 +304,13 @@
  v_mtu INTEGER,
  v_bridged BOOLEAN,
  v_qos_overridden BOOLEAN,
- v_labels TEXT)
+ v_labels TEXT,
+ v_custom_properties TEXT)
 RETURNS VOID
    AS $procedure$
 BEGIN
-INSERT INTO vds_interface(addr, bond_name, bond_type, gateway, id, is_bond, 
bond_opts, mac_addr, name, network_name, speed, subnet, boot_protocol, type, 
VDS_ID, vlan_id, mtu, bridged, qos_overridden, labels)
-       VALUES(v_addr, v_bond_name, v_bond_type, v_gateway, v_id, v_is_bond, 
v_bond_opts, v_mac_addr, v_name, v_network_name, v_speed, v_subnet, 
v_boot_protocol, v_type, v_vds_id, v_vlan_id, v_mtu, v_bridged, 
v_qos_overridden, v_labels);
+INSERT INTO vds_interface(addr, bond_name, bond_type, gateway, id, is_bond, 
bond_opts, mac_addr, name, network_name, speed, subnet, boot_protocol, type, 
VDS_ID, vlan_id, mtu, bridged, qos_overridden, labels, custom_properties)
+       VALUES(v_addr, v_bond_name, v_bond_type, v_gateway, v_id, v_is_bond, 
v_bond_opts, v_mac_addr, v_name, v_network_name, v_speed, v_subnet, 
v_boot_protocol, v_type, v_vds_id, v_vlan_id, v_mtu, v_bridged, 
v_qos_overridden, v_labels, v_custom_properties);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -336,7 +337,8 @@
  v_mtu INTEGER,
  v_bridged BOOLEAN,
  v_qos_overridden BOOLEAN,
- v_labels TEXT)
+ v_labels TEXT,
+ v_custom_properties TEXT)
 RETURNS VOID
 
        --The [vds_interface] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -348,7 +350,8 @@
       name = v_name,network_name = v_network_name,speed = v_speed,
       subnet = v_subnet,boot_protocol = v_boot_protocol,
       type = v_type,VDS_ID = v_vds_id,vlan_id = v_vlan_id,_update_date = 
LOCALTIMESTAMP, mtu = v_mtu,
-      bridged = v_bridged, qos_overridden = v_qos_overridden, labels = v_labels
+      bridged = v_bridged, qos_overridden = v_qos_overridden, labels = 
v_labels,
+      custom_properties = v_custom_properties
       WHERE id = v_id;
 END; $procedure$
 LANGUAGE plpgsql;
diff --git 
a/packaging/dbscripts/upgrade/03_05_0230_add_vds_interface_custom_properties.sql
 
b/packaging/dbscripts/upgrade/03_05_0230_add_vds_interface_custom_properties.sql
new file mode 100644
index 0000000..4c45ad9
--- /dev/null
+++ 
b/packaging/dbscripts/upgrade/03_05_0230_add_vds_interface_custom_properties.sql
@@ -0,0 +1 @@
+SELECT fn_db_add_column('vds_interface', 'custom_properties', 'text');


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

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

Reply via email to