Sergey Gotliv has uploaded a new change for review. Change subject: engine: Create additional network role - storage network ......................................................................
engine: Create additional network role - storage network Change-Id: I248ae86feca5a09737b3e52a9ce69aecd6e40d98 Bug-Url: https://bugzilla.redhat.com/753541 Signed-off-by: Sergey Gotliv <[email protected]> --- 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/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.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/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworksResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworkResourceTest.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkUsage.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkClusterListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkClusterView.java A frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/network/storage_network.png M packaging/dbscripts/network_sp.sql A packaging/dbscripts/upgrade/03_04_0200_add_storage_to_network_cluster.sql M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql 31 files changed, 184 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/22285/1 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 2d1bb1c..81a1225 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 @@ -58,7 +58,7 @@ if (net != null) { DbFacade.getInstance().getNetworkClusterDao().save( new NetworkCluster(getParameters().getVdsGroup().getId(), net.getId(), - NetworkStatus.OPERATIONAL, false, true, false)); + NetworkStatus.OPERATIONAL, false, true, false, 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 8579f4a..060a060 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 @@ -120,7 +120,7 @@ for (Network net : storagePoolNets) { if (StringUtils.equals(net.getName(), managementNetwork)) { getNetworkClusterDAO().save(new NetworkCluster(getVdsGroup().getId(), net.getId(), - NetworkStatus.OPERATIONAL, true, true, false)); + NetworkStatus.OPERATIONAL, true, true, false, false)); } } } 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 5e1e40c..e197aea9 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 @@ -57,7 +57,8 @@ NetworkStatus.OPERATIONAL, false, getNetworkCluster().isRequired(), - getNetworkCluster().isMigration())); + getNetworkCluster().isMigration(), + getNetworkCluster().isStorage())); } 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 57b8dce..8be78bb 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 @@ -21,7 +21,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 ? false : net.getCluster().isMigration())); + net.getCluster() == null ? false : net.getCluster().isMigration(), + net.getCluster() == null ? false : net.getCluster().isStorage())); _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 da42b82..4cba35c 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 @@ -17,9 +17,10 @@ */ private boolean required; private boolean migration; + private boolean storage; public NetworkCluster() { - this (null, null, NetworkStatus.NON_OPERATIONAL, false, true, false); + this (null, null, NetworkStatus.NON_OPERATIONAL, false, true, false, false); } public NetworkCluster(boolean required) { @@ -31,7 +32,8 @@ NetworkStatus status, boolean display, boolean required, - boolean migration) { + boolean migration, + boolean storage) { this(required); id = new NetworkClusterId(); id.setClusterId(clusterId); @@ -39,6 +41,7 @@ this.status = status; this.display = display; this.migration = migration; + this.storage = storage; } @Override @@ -101,6 +104,14 @@ this.migration = migration; } + public boolean isStorage() { + return storage; + } + + public void setStorage(boolean storage) { + this.storage = storage; + } + @Override public Object getQueryableId() { return getId(); @@ -119,6 +130,8 @@ .append(isRequired()) .append(", migration=") .append(isMigration()) + .append(", storage=") + .append(isStorage()) .append("}"); return builder.toString(); } @@ -132,6 +145,7 @@ result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + (required ? 11 : 13); result = prime * result + (migration ? 1231 : 1237); + result = prime * result + (storage ? 1231 : 1237); return result; } @@ -162,6 +176,9 @@ if (migration != other.migration) { return false; } + if (storage != other.storage) { + return false; + } return true; } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java index c292842..b369beb 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java @@ -1361,6 +1361,10 @@ @DefaultValueAttribute("false") MigrationNetworkEnabled, + @TypeConverterAttribute(Boolean.class) + @DefaultValueAttribute("false") + StorageNetworkEnabled, + @Reloadable @TypeConverterAttribute(Double.class) @DefaultValueAttribute("20") diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java index 9be97d1..c11a5b4 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java @@ -85,6 +85,7 @@ CpuPinMigrationEnabled, MigrationSupportForNativeUsb(ConfigAuthType.User), MigrationNetworkEnabled, + StorageNetworkEnabled, VncKeyboardLayout(ConfigAuthType.User), VncKeyboardLayoutValidValues(ConfigAuthType.User), CustomDeviceProperties(ConfigAuthType.User), 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 f3dfaff..bf1992e 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 @@ -26,6 +26,7 @@ entity.setDisplay(rs.getBoolean("is_display")); entity.setRequired(rs.getBoolean("required")); entity.setMigration(rs.getBoolean("migration")); + entity.setStorage(rs.getBoolean("storage")); return entity; } }; @@ -75,7 +76,8 @@ .addValue("status", cluster.getStatus()) .addValue("is_display", cluster.isDisplay()) .addValue("required", cluster.isRequired()) - .addValue("migration", cluster.isMigration()); + .addValue("migration", cluster.isMigration()) + .addValue("storage", cluster.isStorage()); getCallsHandler().executeModification("Insertnetwork_cluster", parameterSource); } @@ -88,7 +90,8 @@ .addValue("status", cluster.getStatus()) .addValue("is_display", cluster.isDisplay()) .addValue("required", cluster.isRequired()) - .addValue("migration", cluster.isMigration()); + .addValue("migration", cluster.isMigration()) + .addValue("storage", cluster.isStorage()); getCallsHandler().executeModification("Updatenetwork_cluster", 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 e6b41b0..2648d6a 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 @@ -136,6 +136,7 @@ entity.getCluster().setRequired(rs.getBoolean("required")); entity.getCluster().setStatus(NetworkStatus.forValue(rs.getInt("status"))); entity.getCluster().setMigration(rs.getBoolean("migration")); + entity.getCluster().setStorage(rs.getBoolean("storage")); return entity; } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkResourceTest.java index 788f2f7..45e483d 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkResourceTest.java @@ -29,31 +29,35 @@ protected org.ovirt.engine.core.common.businessentities.network.Network getEntity(int index, boolean isDisplay, boolean isMigration, + boolean isStorage, boolean isRequired) { return setUpEntityExpectations(control.createMock(org.ovirt.engine.core.common.businessentities.network.Network.class), isDisplay, isMigration, + isStorage, isRequired, index); } protected List<org.ovirt.engine.core.common.businessentities.network.Network> getEntityList() { - return getEntities(false, false, false); + return getEntities(false, false, false, false); } protected List<org.ovirt.engine.core.common.businessentities.network.Network> getEntityList(boolean isDisplay, boolean isMigration, + boolean isStorage, boolean isRequired) { - return getEntities(isDisplay, isMigration, isRequired); + return getEntities(isDisplay, isMigration, isStorage, isRequired); } private List<org.ovirt.engine.core.common.businessentities.network.Network> getEntities(boolean isDisplay, boolean isMigration, + boolean isStorage, boolean isRequired) { List<org.ovirt.engine.core.common.businessentities.network.Network> entities = new ArrayList<org.ovirt.engine.core.common.businessentities.network.Network>(); for (int i = 0; i < NAMES.length; i++) { if (isDisplay) { - entities.add(getEntity(i, isDisplay, isMigration, isRequired)); + entities.add(getEntity(i, isDisplay, isMigration, isStorage, isRequired)); } else { entities.add(getEntity(i)); } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworksResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworksResourceTest.java index 8c5f2fb..96b2113 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworksResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworksResourceTest.java @@ -51,10 +51,12 @@ protected org.ovirt.engine.core.common.businessentities.network.Network getEntity(int index, boolean isDisplay, boolean isMigration, + boolean isStorage, boolean isRequired) { return setUpEntityExpectations(control.createMock(org.ovirt.engine.core.common.businessentities.network.Network.class), isDisplay, isMigration, + isStorage, isRequired, index); } @@ -65,17 +67,20 @@ false, false, false, + false, index); } static org.ovirt.engine.core.common.businessentities.network.Network setUpEntityExpectations(org.ovirt.engine.core.common.businessentities.network.Network entity, boolean isDisplay, boolean isMigration, + boolean isStorage, boolean isRequired, int index) { NetworkCluster networkCluster = new NetworkCluster(); networkCluster.setDisplay(isDisplay); networkCluster.setMigration(isMigration); + networkCluster.setStorage(isStorage); networkCluster.setRequired(isRequired); expect(entity.getCluster()).andReturn(networkCluster).anyTimes(); return setUpEntityExpectations(entity, index); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworkResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworkResourceTest.java index 230cfd3..f7c88f1 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworkResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworkResourceTest.java @@ -56,7 +56,7 @@ @Test public void testGet() throws Exception { setUriInfo(setUpBasicUriExpectations()); - setUpEntityQueryExpectations(1, false, false, false); + setUpEntityQueryExpectations(1, false, false, false, false); control.replay(); verifyModel(resource.get(), 1); @@ -64,8 +64,8 @@ @Test public void testUpdate() throws Exception { - setUpEntityQueryExpectations(1, false, false, false); - setUpEntityQueryExpectations(1, true, true, true); + setUpEntityQueryExpectations(1, false, false, false, false); + setUpEntityQueryExpectations(1, true, true, false, true); setUpVDSGroupExpectations(GUIDS[1]); setUriInfo(setUpActionExpectations(VdcActionType.UpdateNetworkOnCluster, NetworkClusterParameters.class, @@ -107,14 +107,15 @@ } - protected void setUpEntityQueryExpectations(int times, boolean isDisplay, boolean isMigration, boolean isRequired) + protected void setUpEntityQueryExpectations(int times, boolean isDisplay, boolean isMigration, + boolean isStorage, boolean isRequired) throws Exception { while (times-- > 0) { setUpEntityQueryExpectations(VdcQueryType.GetAllNetworksByClusterId, IdQueryParameters.class, new String[] { "Id" }, new Object[] { CLUSTER_ID }, - getEntityList(isDisplay, isMigration, isRequired)); + getEntityList(isDisplay, isMigration, isStorage, isRequired)); } } } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java index cfdaa1a..19028eb 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkMapper.java @@ -58,6 +58,7 @@ } entity.getCluster().setDisplay(networkUsages.contains(NetworkUsage.DISPLAY)); entity.getCluster().setMigration(networkUsages.contains(NetworkUsage.MIGRATION)); + entity.getCluster().setStorage(networkUsages.contains(NetworkUsage.STORAGE)); entity.setVmNetwork(networkUsages.contains(NetworkUsage.VM)); } if (model.isSetMtu()) { @@ -110,6 +111,9 @@ if (entity.getCluster().isMigration()) { model.getUsages().getUsages().add(NetworkUsage.MIGRATION.value()); } + if (entity.getCluster().isStorage()) { + model.getUsages().getUsages().add(NetworkUsage.STORAGE.value()); + } } if (entity.getCluster() != null) { if (entity.getCluster().getStatus() != null) { diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkUsage.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkUsage.java index fcf5170a..0a04157 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkUsage.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkUsage.java @@ -3,7 +3,8 @@ public enum NetworkUsage { DISPLAY, VM, - MIGRATION; + MIGRATION, + STORAGE; public String value() { return name().toLowerCase(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java index 6e1a1e8..1ada578 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java @@ -332,6 +332,7 @@ obj.setDisplay(instance.isDisplay()); obj.setRequired(instance.isRequired()); obj.setMigration(instance.isMigration()); + obj.setStorage(instance.isStorage()); return obj; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkListModel.java index dfd1508..14208ed 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkListModel.java @@ -231,7 +231,8 @@ if ((networkModel.isRequired() != clusterNetwork.getCluster().isRequired()) || (networkModel.isDisplayNetwork() != clusterNetwork.getCluster().isDisplay()) - || (networkModel.isMigrationNetwork() != clusterNetwork.getCluster().isMigration())) { + || (networkModel.isMigrationNetwork() != clusterNetwork.getCluster().isMigration()) + || (networkModel.isStorageNetwork() != clusterNetwork.getCluster().isStorage())) { needsUpdate = true; } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java index 5c3e44d..fadb6c5 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java @@ -57,4 +57,24 @@ model.setMigrationNetwork(value); } + private ClusterNetworkModel getStorageNetwork() { + if (!isMultiCluster()) { + for (ClusterNetworkModel clusterNetworkManageModel : getItems()) { + if (clusterNetworkManageModel.isStorageNetwork()) { + return clusterNetworkManageModel; + } + } + } + return null; + } + + public void setStorageNetwork(ClusterNetworkModel model, boolean value) { + if (!isMultiCluster()) { + // Reset the old migration + if (getStorageNetwork() != null) { + getStorageNetwork().setStorageNetwork(!value); + } + } + model.setStorageNetwork(value); + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkModel.java index 879a5ca..a56dfc8 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkModel.java @@ -70,6 +70,10 @@ return getEntity().getCluster().isMigration(); } + public boolean isStorageNetwork() { + return getEntity().getCluster().isStorage(); + } + public boolean isExternal() { return getEntity().isExternal(); } @@ -98,4 +102,7 @@ getEntity().getCluster().setMigration(migrationNetwork); } + public void setStorageNetwork(boolean storageNetwork) { + getEntity().getCluster().setStorage(storageNetwork); + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkClusterListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkClusterListModel.java index bf794aa..850352e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkClusterListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkClusterListModel.java @@ -126,7 +126,8 @@ if (wasAttached && !needsDetach) { if ((manageModel.isRequired() != item.getSecond().isRequired()) || (manageModel.isDisplayNetwork() != item.getSecond().isDisplay()) - || (manageModel.isMigrationNetwork() != item.getSecond().isMigration())) { + || (manageModel.isMigrationNetwork() != item.getSecond().isMigration()) + || (manageModel.isStorageNetwork() != item.getSecond().isStorage())) { needsUpdate = true; } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index ff539a7..4fe0311 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -1832,6 +1832,9 @@ @DefaultStringValue("Migration Network") String migrationNetwork(); + @DefaultStringValue("Storage Network") + String storageNetwork(); + @DefaultStringValue("Role") String roleNetwork(); @@ -2455,6 +2458,9 @@ @DefaultStringValue("Migration") String migrationItemInfo(); + @DefaultStringValue("Storage") + String storageItemInfo(); + @DefaultStringValue("Unmanaged Network") String unmanagedNetworkItemInfo(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java index ffd5da1..8e88f95 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java @@ -286,6 +286,9 @@ @Source("images/network/migration_network.png") ImageResource migrationNetwork(); + @Source("images/network/storage_network.png") + ImageResource storageNetwork(); + @Source("images/network/empty.png") ImageResource networkEmpty(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java index 5735d44..98253e8 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java @@ -249,6 +249,30 @@ return migrationNetworkEnabled && clusterNetworkModel.isAttached() && !clusterNetworkModel.isExternal(); } }, constants.migrationNetwork(), "105px"); //$NON-NLS-1$ + + networks.addColumn(new CheckboxColumn<EntityModel>(new FieldUpdater<EntityModel, Boolean>() { + @Override + public void update(int index, EntityModel model, Boolean value) { + ClusterNetworkModel clusterNetworkManageModel = (ClusterNetworkModel) model; + + networks.asEditor().flush().setStorageNetwork(clusterNetworkManageModel, value); + refreshNetworksTable(); + } + }) { + @Override + public Boolean getValue(EntityModel model) { + return ((ClusterNetworkModel) model).isStorageNetwork(); + } + + @Override + protected boolean canEdit(EntityModel model) { + ClusterNetworkModel clusterNetworkModel = ((ClusterNetworkModel) model); + Boolean storageNetworkEnabled = + (Boolean) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.StorageNetworkEnabled, + clusterNetworkModel.getCluster().getcompatibility_version().toString()); + return storageNetworkEnabled && clusterNetworkModel.isAttached() && !clusterNetworkModel.isExternal(); + } + }, constants.storageNetwork(), "105px"); //$NON-NLS-1$ } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.ui.xml index 289da78..d64671c 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.ui.xml @@ -16,7 +16,7 @@ } </ui:style> - <d:SimpleDialogPanel width="600px" height="400px"> + <d:SimpleDialogPanel width="690px" height="400px"> <d:content> <g:FlowPanel> <g:ScrollPanel addStyleNames="{style.dock}"> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java index 244df19..c7b6bf9 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java @@ -34,6 +34,9 @@ SafeHtml migrationImage = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.migrationNetwork()) .getHTML()); + SafeHtml storageImage = + SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.storageNetwork()) + .getHTML()); SafeHtml unknownImage = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.questionMarkImage()).getHTML()); SafeHtml notInSyncImage = @@ -91,13 +94,15 @@ boolean isDisplay = false; boolean isMigration = false; + boolean isStorage = false; if (entity.getCluster() != null) { isDisplay = entity.getCluster().isDisplay(); isMigration = entity.getCluster().isMigration(); + isStorage = entity.getCluster().isStorage(); } // Usages - if (networkModel.isManagement() || isDisplay || entity.isVmNetwork() || isMigration) { + if (networkModel.isManagement() || isDisplay || entity.isVmNetwork() || isMigration || isStorage) { addRow(SafeHtmlUtils.fromString(constants.usageItemInfo() + ":")); //$NON-NLS-1$ if (networkModel.isManagement()) { @@ -116,6 +121,9 @@ addRow(templates.imageTextSetupNetworkUsage(migrationImage, constants.migrationItemInfo())); } + if (isStorage) { + addRow(templates.imageTextSetupNetworkUsage(storageImage, constants.storageItemInfo())); + } } // Mtu diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java index 7a50716..1f19bdd 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java @@ -36,6 +36,7 @@ Image vmImage; Image monitorImage; Image migrationImage; + Image storageImage; Image notSyncImage; if (!network.isManaged()) { @@ -43,6 +44,7 @@ mgmtNetworkImage = null; vmImage = null; migrationImage = null; + storageImage = null; notSyncImage = null; } else { monitorImage = network.getEntity().getCluster().isDisplay() ? @@ -51,6 +53,8 @@ vmImage = network.getEntity().isVmNetwork() ? new Image(resources.networkVm()) : null; migrationImage = network.getEntity().getCluster().isMigration() ? new Image(resources.migrationNetwork()) : null; + storageImage = network.getEntity().getCluster().isStorage() ? + new Image(resources.storageNetwork()) : null; notSyncImage = !network.isInSync() ? new Image(resources.networkNotSyncImage()) : null; if (network.isManagement()) { @@ -69,12 +73,16 @@ migrationImage.setStylePrimaryName(style.networkImageBorder()); } + if (network.getEntity().getCluster().isStorage()) { + storageImage.setStylePrimaryName(style.networkImageBorder()); + } + if (!network.isInSync()) { notSyncImage.setStylePrimaryName(style.networkImageBorder()); } } - Grid rowPanel = new Grid(1, 9); + Grid rowPanel = new Grid(1, 10); rowPanel.setCellSpacing(3); rowPanel.setWidth("100%"); //$NON-NLS-1$ rowPanel.setHeight("100%"); //$NON-NLS-1$ @@ -97,7 +105,8 @@ rowPanel.setWidget(0, 5, monitorImage); rowPanel.setWidget(0, 6, vmImage); rowPanel.setWidget(0, 7, migrationImage); - rowPanel.setWidget(0, 8, notSyncImage); + rowPanel.setWidget(0, 8, storageImage); + rowPanel.setWidget(0, 9, notSyncImage); return rowPanel; } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java index 6ae4d48..dfdbdb0 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java @@ -40,6 +40,7 @@ private final SafeHtml displayImage; private final SafeHtml migrationImage; + private final SafeHtml storageImage; private final SafeHtml emptyImage; @Inject @@ -53,6 +54,8 @@ SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkMonitor()).getHTML()); migrationImage = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.migrationNetwork()).getHTML()); + storageImage = + SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.storageNetwork()).getHTML()); emptyImage = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkEmpty()).getHTML()); initTable(constants, templates); initWidget(getTable()); @@ -100,6 +103,12 @@ } else { images.add(emptyImage); } + + if (network.getCluster().isStorage()) { + images.add(storageImage); + } else { + images.add(emptyImage); + } } return NetworkRoleColumnHelper.getValue(images); @@ -118,6 +127,11 @@ imagesToText.put(migrationImage, constants.migrationItemInfo()); } + + if (network.getCluster().isStorage()) { + imagesToText.put(migrationImage, constants.storageItemInfo()); + + } } return NetworkRoleColumnHelper.getTooltip(imagesToText); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkClusterView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkClusterView.java index af343d4..65d8bae 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkClusterView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkClusterView.java @@ -39,6 +39,7 @@ private final SafeHtml displayImage; private final SafeHtml migrationImage; + private final SafeHtml storageImage; private final SafeHtml emptyImage; @Inject @@ -50,6 +51,8 @@ SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkMonitor()).getHTML()); migrationImage = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.migrationNetwork()).getHTML()); + storageImage = + SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.storageNetwork()).getHTML()); emptyImage = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkEmpty()).getHTML()); initTable(); initWidget(getTable()); @@ -123,11 +126,17 @@ images.add(emptyImage); } + if (object.getSecond().isMigration()) { images.add(migrationImage); } else { images.add(emptyImage); + } + if (object.getSecond().isStorage()) { + images.add(storageImage); + } else { + images.add(emptyImage); } } return NetworkRoleColumnHelper.getValue(images); @@ -144,6 +153,10 @@ if (object.getSecond().isMigration()) { imagesToText.put(migrationImage, constants.migrationItemInfo()); } + + if (object.getSecond().isStorage()) { + imagesToText.put(storageImage, constants.storageItemInfo()); + } } return NetworkRoleColumnHelper.getTooltip(imagesToText); diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/network/storage_network.png b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/network/storage_network.png new file mode 100644 index 0000000..340404e --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/network/storage_network.png Binary files differ diff --git a/packaging/dbscripts/network_sp.sql b/packaging/dbscripts/network_sp.sql index aadfc46..910c8cd 100644 --- a/packaging/dbscripts/network_sp.sql +++ b/packaging/dbscripts/network_sp.sql @@ -187,7 +187,7 @@ mtu INTEGER, vm_network BOOLEAN, provider_network_provider_id UUID, provider_network_external_id TEXT, network_id UUID,cluster_id UUID, status INTEGER, is_display BOOLEAN, - required BOOLEAN, migration BOOLEAN); + required BOOLEAN, migration BOOLEAN, storage BOOLEAN); Create or replace FUNCTION GetAllNetworkByClusterId(v_id UUID, v_user_id uuid, v_is_filtered boolean) RETURNS SETOF networkViewClusterType STABLE AS $procedure$ @@ -214,7 +214,8 @@ network_cluster.status, network_cluster.is_display, network_cluster.required, - network_cluster.migration + network_cluster.migration, + network_cluster.storage FROM network INNER JOIN network_cluster ON network.id = network_cluster.network_id @@ -866,12 +867,13 @@ v_status INTEGER, v_is_display BOOLEAN, v_required BOOLEAN, - v_migration BOOLEAN) + v_migration BOOLEAN, + v_storage BOOLEAN) RETURNS VOID AS $procedure$ BEGIN UPDATE network_cluster - SET status = v_status,is_display = v_is_display, required = v_required, migration = v_migration + SET status = v_status,is_display = v_is_display, required = v_required, migration = v_migration, storage = v_storage WHERE cluster_id = v_cluster_id AND network_id = v_network_id; END; $procedure$ LANGUAGE plpgsql; diff --git a/packaging/dbscripts/upgrade/03_04_0200_add_storage_to_network_cluster.sql b/packaging/dbscripts/upgrade/03_04_0200_add_storage_to_network_cluster.sql new file mode 100644 index 0000000..e9fda68 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_04_0200_add_storage_to_network_cluster.sql @@ -0,0 +1 @@ +select fn_db_add_column('network_cluster', 'storage', 'boolean NOT NULL DEFAULT false'); \ No newline at end of file diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql index 6bd9fb3..afd4453 100644 --- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql +++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql @@ -188,6 +188,10 @@ select fn_db_add_config_value('MigrationNetworkEnabled','false','3.1'); select fn_db_add_config_value('MigrationNetworkEnabled','false','3.2'); select fn_db_add_config_value('MigrationNetworkEnabled','true','3.3'); +select fn_db_add_config_value('StorageNetworkEnabled','false','3.0'); +select fn_db_add_config_value('StorageNetworkEnabled','false','3.1'); +select fn_db_add_config_value('StorageNetworkEnabled','false','3.2'); +select fn_db_add_config_value('StorageNetworkEnabled','true','3.3'); select fn_db_add_config_value('MultipleGatewaysSupported','false','3.0'); select fn_db_add_config_value('MultipleGatewaysSupported','false','3.1'); select fn_db_add_config_value('MultipleGatewaysSupported','false','3.2'); -- To view, visit http://gerrit.ovirt.org/22285 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I248ae86feca5a09737b3e52a9ce69aecd6e40d98 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Sergey Gotliv <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
