Alona Kaplan has uploaded a new change for review. Change subject: webadmin- Bond with unmanaged network(#840825) ......................................................................
webadmin- Bond with unmanaged network(#840825) https://bugzilla.redhat.com/840825 when creating a bond- 1. nic + bond - 1.1 nic contains unmanaged networks- action blocked 1.2 bond contains unmanaged networks- action permitted 2. nic1 + nic2- nic1 or nic2 contains unmanaged networks- action blocked Change-Id: I95995e21e2c6b2ad5c8a1b224ecdd6ee2cebf084 Signed-off-by: Alona Kaplan <alkap...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.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/section/main/view/popup/host/panels/ItemInfoPopup.java 6 files changed, 82 insertions(+), 75 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/7166/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java index 89e69ca..7dd980c 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java @@ -466,11 +466,13 @@ getNetworksChangedEvent().raise(this, EventArgs.Empty); } - private LogicalNetworkModel createErrorNetworkModel(String networkName, Integer vlanId) { - Network errorNetwork = new Network(); - errorNetwork.setname(networkName); - errorNetwork.setvlan_id(vlanId); - LogicalNetworkModel networkModel = new LogicalNetworkModel(errorNetwork, this); + private LogicalNetworkModel createUnmanagedNetworkModel(String networkName, VdsNetworkInterface nic) { + Network unmanagedNetwork = new Network(); + unmanagedNetwork.setname(networkName); + unmanagedNetwork.setvlan_id(nic.getVlanId()); + unmanagedNetwork.setMtu(nic.getMtu()); + unmanagedNetwork.setVmNetwork(nic.isBridged()); + LogicalNetworkModel networkModel = new LogicalNetworkModel(unmanagedNetwork, this); networkModel.setError(ConstantsManager.getInstance().getConstants().thisNetworkDoesNotExistInTheClusterErr()); networkMap.put(networkName, networkModel); return networkModel; @@ -519,7 +521,6 @@ Map<String, VdsNetworkInterface> physicalNics = new HashMap<String, VdsNetworkInterface>(); Map<String, List<String>> bondToNic = new HashMap<String, List<String>>(); Map<String, List<String>> nicToNetwork = new HashMap<String, List<String>>(); - Map<String, Integer> networkToVlanId = new HashMap<String, Integer>(); // map all nics for (VdsNetworkInterface nic : allNics) { @@ -559,12 +560,13 @@ LogicalNetworkModel networkModel = networkMap.get(networkName); if (networkModel == null) { - networkModel = createErrorNetworkModel(networkName, nic.getVlanId()); + networkModel = createUnmanagedNetworkModel(networkName, nic); }else{ - // The real vlanId and mtu configured on the host can be not synced with the values configured in the networks table (dc networks). + // The real vlanId, isBridged and mtu configured on the host can be not synced with the values configured in the networks table (dc networks). // The real values configured on the host should be displayed. networkModel.getEntity().setvlan_id(nic.getVlanId()); networkModel.getEntity().setMtu(nic.getMtu()); + networkModel.getEntity().setVmNetwork(nic.isBridged()); } // is this a management network (from backend)? @@ -572,7 +574,6 @@ networkModel.setManagement(true); } - networkToVlanId.put(networkName, vlanId); // bridge name is either <nic>, <nic.vlanid> or <bond.vlanid> String ifName; if (dotpos > 0) { @@ -608,13 +609,8 @@ List<String> networkNames = nicToNetwork.get(nicName); if (networkNames != null) { for (String networkName : networkNames) { - Integer vlanId = networkToVlanId.get(networkName); LogicalNetworkModel networkModel; networkModel = networkMap.get(networkName); - if (networkModel == null) { - // the network does not exist in this cluster - networkModel = createErrorNetworkModel(networkName, vlanId); - } nicNetworks.add(networkModel); } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java index e4bb049..f028ac7 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java @@ -178,12 +178,12 @@ BondNetworkInterfaceModel bond = (BondNetworkInterfaceModel) op2; assert nic.getItems().size() == 0 || bond.getItems().size() == 0; - List<LogicalNetworkModel> networks = nic.getItems().size() != 0 ? new ArrayList<LogicalNetworkModel>(nic.getItems()) : new ArrayList<LogicalNetworkModel>(bond.getItems()); // detach possible networks from the nic clearNetworks(nic, allNics); // Attach previous networks to bond + List<LogicalNetworkModel> networks = new ArrayList<LogicalNetworkModel>(nic.getItems()); attachNetworks(bond, networks, allNics); nic.getEntity().setBondName(bond.getEntity().getName()); @@ -237,21 +237,6 @@ return true; } - @Override - protected NetworkOperationCommandTarget getTarget() { - return new NetworkOperationCommandTarget() { - - @Override - protected void ExecuteNetworkCommand(NetworkItemModel<?> op1, - NetworkItemModel<?> op2, - List<VdsNetworkInterface> allNics, - Object... params) { - // NOOP - - } - }; - } - }, NULL_OPERATION_BOND { @@ -268,21 +253,6 @@ @Override public boolean isNullOperation() { return true; - } - - @Override - protected NetworkOperationCommandTarget getTarget() { - return new NetworkOperationCommandTarget() { - - @Override - protected void ExecuteNetworkCommand(NetworkItemModel<?> op1, - NetworkItemModel<?> op2, - List<VdsNetworkInterface> allNics, - Object... params) { - // NOOP - - } - }; } }, @@ -302,19 +272,38 @@ return true; } + }, + NULL_OPERATION_ADD_TO_BOND_UNMANAGED { + @Override - protected NetworkOperationCommandTarget getTarget() { - return new NetworkOperationCommandTarget() { + public String getVerb(NetworkItemModel<?> op1) { + return ConstantsManager.getInstance().getConstants().cannotAddNicWithUnmanagedNetworkToBond(); + } + @Override + public String getMessage(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + return getVerb(op1); + } - @Override - protected void ExecuteNetworkCommand(NetworkItemModel<?> op1, - NetworkItemModel<?> op2, - List<VdsNetworkInterface> allNics, - Object... params) { - // NOOP + @Override + public boolean isNullOperation() { + return true; + } - } - }; + }, + NULL_OPERATION_BOND_WITH_UNMANAGED { + + @Override + public String getVerb(NetworkItemModel<?> op1) { + return ConstantsManager.getInstance().getConstants().cannotCreateBondIfNicsContainsUnmanagedNetwork(); + } + @Override + public String getMessage(NetworkItemModel<?> op1, NetworkItemModel<?> op2) { + return getVerb(op1); + } + + @Override + public boolean isNullOperation() { + return true; } }; @@ -405,7 +394,19 @@ /** * Implement to provide a Command Target for this Operation */ - protected abstract NetworkOperationCommandTarget getTarget(); + protected NetworkOperationCommandTarget getTarget(){ + return new NetworkOperationCommandTarget() { + + @Override + protected void ExecuteNetworkCommand(NetworkItemModel<?> op1, + NetworkItemModel<?> op2, + List<VdsNetworkInterface> allNics, + Object... params) { + // NOOP + + } + }; + } public boolean isNullOperation(){ return false; diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java index 6b8b01d..e372a5b 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java @@ -62,9 +62,9 @@ BondNetworkInterfaceModel bond = (BondNetworkInterfaceModel) op2; if (!nic1.isBonded()) { - boolean containsUnmanaged = containsUnmanaged(nic1) || containsUnmanaged(bond); + boolean containsUnmanaged = containsUnmanaged(nic1); if (containsUnmanaged){ - return NetworkOperation.NULL_OPERATION_UNMANAGED; + return NetworkOperation.NULL_OPERATION_ADD_TO_BOND_UNMANAGED; } if (canBond(nic1, bond)) { @@ -81,7 +81,7 @@ boolean containsUnmanaged = containsUnmanaged(nic1) || containsUnmanaged(nic2); if (containsUnmanaged){ - return NetworkOperation.NULL_OPERATION_UNMANAGED; + return NetworkOperation.NULL_OPERATION_BOND_WITH_UNMANAGED; } if (canBond(nic1, nic2)) { @@ -106,7 +106,7 @@ NetworkInterfaceModel nic = (NetworkInterfaceModel) op2; // not managed - if (!network.isManaged() || containsUnmanaged(nic)) { + if (!network.isManaged()) { return NetworkOperation.NULL_OPERATION_UNMANAGED; } diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java index b6112cc..ecec63a 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java @@ -1468,6 +1468,12 @@ @DefaultStringValue("Invalid operation with unmanaged network: unmanaged network can only be detached") String invalidOperationWithUnmanagedNetwork(); + @DefaultStringValue("Cannot add nic with unmanaged network/s to a bond") + String cannotAddNicWithUnmanagedNetworkToBond(); + + @DefaultStringValue("Cannot create a bond if one of the nics contains unmanaged network/s") + String cannotCreateBondIfNicsContainsUnmanagedNetwork(); + @DefaultStringValue("Unassigned Logical Networks panel") String unassignedLogicalNetworksPanel(); } 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 44b801c..16bdd53 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 @@ -1901,6 +1901,9 @@ @DefaultStringValue("Unmanaged Network") String unmanagedNetworkItemInfo(); + @DefaultStringValue("Doesn't exist in the Cluster") + String unmanagedNetworkDescriptionItemInfo(); + @DefaultStringValue("Management") String managementItemInfo(); 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 72e47d7..fcd5801 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 @@ -71,30 +71,31 @@ // Not managed if (!networkModel.isManaged()) { - addRow(templates.imageTextSetupNetworkUsage(unknownImage, constants.unmanagedNetworkItemInfo())); - return; + addRow(templates.imageTextSetupNetwork(unknownImage, constants.unmanagedNetworkItemInfo())); + addRow(SafeHtmlUtils.fromString(constants.unmanagedNetworkDescriptionItemInfo())); + } + else { + // Description + if (entity.getdescription() != null && !entity.getdescription().trim().equals("")) { //$NON-NLS-1$ + addRow(SafeHtmlUtils.fromString(entity.getdescription())); + } + // Not in sync + if (!networkModel.isInSync()) + { + addRow(templates.imageTextSetupNetwork(notInSyncImage, constants.networkNotInSync())); + } } - // Description - if (entity.getdescription() != null && !entity.getdescription().trim().equals("")) { //$NON-NLS-1$ - addRow(SafeHtmlUtils.fromString(entity.getdescription())); - } - - // Not in sync - if (!networkModel.isInSync()) - { - addRow(templates.imageTextSetupNetwork(notInSyncImage, constants.networkNotInSync())); - } - + boolean isDisplay = entity.getCluster() != null ? entity.getCluster().getis_display() : false; // Usages - if (networkModel.isManagement() || entity.getCluster().getis_display() || entity.isVmNetwork()) { + if (networkModel.isManagement() || isDisplay || entity.isVmNetwork()) { addRow(SafeHtmlUtils.fromString(constants.usageItemInfo() + ":")); //$NON-NLS-1$ if (networkModel.isManagement()) { addRow(templates.imageTextSetupNetworkUsage(mgmtNetworkImage, constants.managementItemInfo())); } - if (entity.getCluster().getis_display()) { + if (isDisplay) { addRow(templates.imageTextSetupNetworkUsage(monitorImage, constants.displayItemInfo())); } -- To view, visit http://gerrit.ovirt.org/7166 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I95995e21e2c6b2ad5c8a1b224ecdd6ee2cebf084 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alona Kaplan <alkap...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches