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