Alona Kaplan has uploaded a new change for review. Change subject: engine: adding migration property to NetworCluster ......................................................................
engine: adding migration property to NetworCluster Updating the business entity and the related db scripts. This property will be used to indicate whether the network is the cluster's migration network. Change-Id: I199b1f48b6d6096db2425c594e88455640dc626c Signed-off-by: Alona Kaplan <[email protected]> --- M backend/manager/dbscripts/create_views.sql M backend/manager/dbscripts/network_sp.sql A backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java M backend/manager/modules/dal/src/test/resources/fixtures.xml 13 files changed, 103 insertions(+), 15 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/12962/1 diff --git a/backend/manager/dbscripts/create_views.sql b/backend/manager/dbscripts/create_views.sql index 53f7a38..5946d26 100644 --- a/backend/manager/dbscripts/create_views.sql +++ b/backend/manager/dbscripts/create_views.sql @@ -1075,7 +1075,7 @@ AS SELECT network_cluster.cluster_id AS cluster_id, network_cluster.network_id AS network_id, network.name as network_name, network_cluster.status as status, network_cluster.required as required, network_cluster.is_display as is_display, - vds_groups.name as cluster_name + network_cluster.migration as migration, vds_groups.name as cluster_name FROM network_cluster INNER JOIN network ON network_cluster.network_id = network.id INNER JOIN vds_groups ON network_cluster.cluster_id = vds_groups.vds_group_id; diff --git a/backend/manager/dbscripts/network_sp.sql b/backend/manager/dbscripts/network_sp.sql index 6f0ac8d..619dbb7 100644 --- a/backend/manager/dbscripts/network_sp.sql +++ b/backend/manager/dbscripts/network_sp.sql @@ -177,7 +177,7 @@ CREATE TYPE networkViewClusterType AS(id uuid,name VARCHAR(50),description VARCHAR(4000),type INTEGER, addr VARCHAR(50),subnet VARCHAR(20),gateway VARCHAR(20),vlan_id INTEGER,stp BOOLEAN,storage_pool_id UUID, mtu INTEGER, vm_network BOOLEAN, network_id UUID,cluster_id UUID, status INTEGER, is_display BOOLEAN, - required BOOLEAN); + required BOOLEAN, migration BOOLEAN); Create or replace FUNCTION GetAllNetworkByClusterId(v_id UUID, v_user_id uuid, v_is_filtered boolean) RETURNS SETOF networkViewClusterType AS $procedure$ @@ -200,7 +200,8 @@ network_cluster.cluster_id, network_cluster.status, network_cluster.is_display, - network_cluster.required + network_cluster.required, + network_cluster.migration FROM network INNER JOIN network_cluster ON network.id = network_cluster.network_id @@ -719,12 +720,13 @@ v_network_id UUID, v_status INTEGER, v_is_display BOOLEAN, - v_required BOOLEAN) + v_required BOOLEAN, + v_migration BOOLEAN) RETURNS VOID AS $procedure$ BEGIN -INSERT INTO network_cluster(cluster_id, network_id, status, is_display, required) - VALUES(v_cluster_id, v_network_id, v_status, v_is_display, v_required); +INSERT INTO network_cluster(cluster_id, network_id, status, is_display, required, migration) + VALUES(v_cluster_id, v_network_id, v_status, v_is_display, v_required, v_migration); END; $procedure$ LANGUAGE plpgsql; @@ -735,12 +737,13 @@ v_network_id UUID, v_status INTEGER, v_is_display BOOLEAN, - v_required BOOLEAN) + v_required BOOLEAN, + v_migration BOOLEAN) RETURNS VOID AS $procedure$ BEGIN UPDATE network_cluster - SET status = v_status,is_display = v_is_display, required = v_required + SET status = v_status,is_display = v_is_display, required = v_required, migration = v_migration WHERE cluster_id = v_cluster_id AND network_id = v_network_id; END; $procedure$ LANGUAGE plpgsql; @@ -940,3 +943,23 @@ END; $procedure$ LANGUAGE plpgsql; + + +Create or replace FUNCTION set_network_exclusively_as_migration(v_cluster_id UUID, v_network_id UUID) +RETURNS VOID + AS $procedure$ +BEGIN + + UPDATE network_cluster + SET migration = true + WHERE cluster_id = v_cluster_id AND network_id = v_network_id; + + IF FOUND THEN + UPDATE network_cluster + SET migration = false + WHERE cluster_id = v_cluster_id AND network_id != v_network_id; + END IF; + +END; $procedure$ +LANGUAGE plpgsql; + diff --git a/backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql b/backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql new file mode 100644 index 0000000..7290b90 --- /dev/null +++ b/backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql @@ -0,0 +1 @@ +select fn_db_add_column('network_cluster', 'migration', 'boolean NOT NULL DEFAULT false'); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java index 51dc3af..827bead 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java @@ -85,7 +85,7 @@ if (net != null) { DbFacade.getInstance().getNetworkClusterDao().save( new NetworkCluster(getParameters().getVdsGroup().getId(), net.getId(), - NetworkStatus.OPERATIONAL, false, true)); + NetworkStatus.OPERATIONAL, false, true, false)); } } setActionReturnValue(getVdsGroup().getId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java index 5ef561e..2fd2605 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java @@ -98,7 +98,7 @@ for (Network net : storagePoolNets) { if (StringUtils.equals(net.getName(), managementNetwork)) { getNetworkClusterDAO().save(new NetworkCluster(getVdsGroup().getId(), net.getId(), - NetworkStatus.OPERATIONAL, true, true)); + NetworkStatus.OPERATIONAL, true, true, true)); } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java index 12c879b..c2793a2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java @@ -49,7 +49,10 @@ getNetworkClusterDAO().update(getNetworkCluster()); } else { getNetworkClusterDAO().save(new NetworkCluster(getVdsGroupId(), getNetwork().getId(), - NetworkStatus.OPERATIONAL, false, getNetworkCluster().isRequired())); + NetworkStatus.OPERATIONAL, + false, + getNetworkCluster().isRequired(), + getNetworkCluster().isMigration())); } if (getNetwork().getCluster().isDisplay()) { getNetworkClusterDAO().setNetworkExclusivelyAsDisplay(getVdsGroupId(), getNetwork().getId()); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java index 127309b..57b8dce 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java @@ -20,7 +20,8 @@ // Cluster attachment data can sometimes be missing, so use defaults in that case. net.getCluster() == null ? false : net.getCluster().isDisplay(), - net.getCluster() == null ? true : net.getCluster().isRequired())); + net.getCluster() == null ? true : net.getCluster().isRequired(), + net.getCluster() == null ? false : net.getCluster().isMigration())); _network = net; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java index b3a1988..fbe4611 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java @@ -16,16 +16,23 @@ * host during monitoring. */ private boolean required = true; + private boolean migration; public NetworkCluster() { } - public NetworkCluster(Guid clusterId, Guid networkId, NetworkStatus status, boolean display, boolean required) { + public NetworkCluster(Guid clusterId, + Guid networkId, + NetworkStatus status, + boolean display, + boolean required, + boolean migration) { id.setClusterId(clusterId); id.setNetworkId(networkId); this.status = status; this.display = display; this.required = required; + this.migration = migration; } @Override @@ -78,6 +85,14 @@ this.required = required; } + public boolean isMigration() { + return migration; + } + + public void setMigration(boolean migration) { + this.migration = migration; + } + @Override public Object getQueryableId() { return getId(); @@ -94,6 +109,8 @@ .append(isDisplay()) .append(", required=") .append(isRequired()) + .append(", migration=") + .append(isMigration()) .append("}"); return builder.toString(); } @@ -106,6 +123,7 @@ result = prime * result + ((status == null) ? 0 : status.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + (required ? 11 : 13); + result = prime * result + (migration ? 1231 : 1237); return result; } @@ -133,6 +151,9 @@ if (required != other.required) { return false; } + if (migration != other.migration) { + return false; + } return true; } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java index 4bccdb6..9dd9c4b 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java @@ -83,4 +83,12 @@ * @param networkId */ void setNetworkExclusivelyAsDisplay(Guid clusterId, Guid networkId); + + /** + * Sets this cluster network as the only migration network on the cluster. + * + * @param clusterId + * @param networkId + */ + void setNetworkExclusivelyAsMigration(Guid clusterId, Guid networkId); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java index 1ca3a5b..c392c4f 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java @@ -25,6 +25,7 @@ entity.setStatus(NetworkStatus.forValue(rs.getInt("status"))); entity.setDisplay(rs.getBoolean("is_display")); entity.setRequired(rs.getBoolean("required")); + entity.setMigration(rs.getBoolean("migration")); return entity; } }; @@ -73,7 +74,8 @@ .addValue("network_id", cluster.getNetworkId()) .addValue("status", cluster.getStatus()) .addValue("is_display", cluster.isDisplay()) - .addValue("required", cluster.isRequired()); + .addValue("required", cluster.isRequired()) + .addValue("migration", cluster.isMigration()); getCallsHandler().executeModification("Insertnetwork_cluster", parameterSource); } @@ -85,7 +87,8 @@ .addValue("network_id", cluster.getNetworkId()) .addValue("status", cluster.getStatus()) .addValue("is_display", cluster.isDisplay()) - .addValue("required", cluster.isRequired()); + .addValue("required", cluster.isRequired()) + .addValue("migration", cluster.isMigration()); getCallsHandler().executeModification("Updatenetwork_cluster", parameterSource); } @@ -116,4 +119,12 @@ getCallsHandler().executeModification("set_network_exclusively_as_display", parameterSource); } + + @Override + public void setNetworkExclusivelyAsMigration(Guid clusterId, Guid networkId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("cluster_id", clusterId).addValue("network_id", networkId); + + getCallsHandler().executeModification("set_network_exclusively_as_migration", parameterSource); + } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java index 0e61ccd..04148bc 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java @@ -122,6 +122,7 @@ entity.getCluster().setDisplay((Boolean) rs.getObject("is_display")); entity.getCluster().setRequired(rs.getBoolean("required")); entity.getCluster().setStatus(NetworkStatus.forValue(rs.getInt("status"))); + entity.getCluster().setMigration((Boolean) rs.getObject("migration")); return entity; } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java index ec9bb31..2383144 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java @@ -207,4 +207,19 @@ } } } + + @Test + public void testSetMigration() { + dao.setNetworkExclusivelyAsMigration(existingNetworkCluster.getClusterId(), + existingNetworkCluster.getNetworkId()); + List<NetworkCluster> allForCluster = dao.getAllForCluster(existingNetworkCluster.getClusterId()); + for (NetworkCluster net : allForCluster) { + if (net.getClusterId().equals(existingNetworkCluster.getClusterId()) + && net.getNetworkId().equals(existingNetworkCluster.getNetworkId())) { + assertTrue(net.isMigration()); + } else { + assertFalse(net.isMigration()); + } + } + } } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 97ace3a..a507d37 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -721,12 +721,14 @@ <column>status</column> <column>is_display</column> <column>required</column> + <column>migration</column> <row> <value>58d5c1c6-cb15-4832-b2a4-023770607188</value> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d1</value> <value>1</value> <value>0</value> <value>0</value> + <value>0</value> </row> <row> <value>58d5c1c6-cb15-4832-b2a4-023770607189</value> @@ -734,6 +736,7 @@ <value>1</value> <value>0</value> <value>0</value> + <value>1</value> </row> <row> <value>58d5c1c6-cb15-4832-b2a4-023770607189</value> @@ -741,6 +744,7 @@ <value>1</value> <value>0</value> <value>0</value> + <value>0</value> </row> </table> -- To view, visit http://gerrit.ovirt.org/12962 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I199b1f48b6d6096db2425c594e88455640dc626c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alona Kaplan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
