Moti Asayag has uploaded a new change for review. Change subject: engine,webadmin: Remove network name from NetworkInterface ......................................................................
engine,webadmin: Remove network name from NetworkInterface The purpose of the patch is to lay the ground for a wider refactor in which the VmNetworkInterface will be relying on a new engine entity and will be referred as a viewable entity by the clients so the network name field will not be used anymore for setting the network the vnic should be attached to. Change-Id: Id51ac8bc1588be227a5c9c40b9e49e3a1a0b1af4 Signed-off-by: Moti Asayag <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterface.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java 11 files changed, 81 insertions(+), 83 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/12/17112/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java index d5d0a87..77fcc55 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java @@ -917,7 +917,7 @@ * @return true if all VM network interfaces are valid */ protected boolean validateNetworkInterfaces() { - Map<String, VmNetworkInterface> interfaceNetworkMap = Entities.interfacesByNetworkName(getVm().getInterfaces()); + Map<String, VmNetworkInterface> interfaceNetworkMap = Entities.vmInterfacesByNetworkName(getVm().getInterfaces()); Set<String> interfaceNetworkNames = interfaceNetworkMap.keySet(); List<Network> clusterNetworks = getNetworkDAO().getAllForCluster(getVm().getVdsGroupId()); Set<String> clusterNetworksNames = Entities.objectNames(clusterNetworks); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java index 2feb526..3d86d52 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java @@ -147,7 +147,7 @@ } // check that the required not attached to other interface - iface = Entities.interfacesByNetworkName(interfaces).get(logicalNetwork.getName()); + iface = Entities.hostInterfacesByNetworkName(interfaces).get(logicalNetwork.getName()); if (iface != null) { addCanDoActionMessage(VdcBllMessages.NETWORK_ALREADY_ATTACHED_TO_INTERFACE); return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java index dcfd07f..4d49dd9 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java @@ -106,7 +106,7 @@ */ private void validateMTU() { Map<String, VdsNetworkInterface> ifacesByNetworkName = - Entities.interfacesByNetworkName(params.getInterfaces()); + Entities.hostInterfacesByNetworkName(params.getInterfaces()); Set<String> checkedNetworks = new HashSet<String>(getNetworks().size()); for (Network network : getNetworks()) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java index 987cf0d..998d43e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java @@ -48,7 +48,7 @@ validateRequiredNetworksAvailable(host, vm, vmNICs, clusterNetworks, networksByName); if (VdcBllMessages.ACTION_TYPE_FAILED_VDS_VM_NETWORKS == returnValue) { StringBuilder sbBuilder = new StringBuilder(); - sbBuilder.append(Entities.interfacesByNetworkName(vmNICs).keySet()); + sbBuilder.append(Entities.vmInterfacesByNetworkName(vmNICs).keySet()); log.debugFormat("host {0} is missing networks required by VM nics {1}", host.getName(), sbBuilder.toString()); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java index fa55aa5..a226689 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java @@ -10,7 +10,8 @@ import java.util.Map; import java.util.Set; -import org.ovirt.engine.core.common.businessentities.network.NetworkInterface; +import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; +import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; /** * General utility class for common entities functions @@ -47,7 +48,19 @@ } } - public static <E extends NetworkInterface<?>> Map<String, E> interfacesByNetworkName(List<E> entityList) { + public static <E extends VmNetworkInterface> Map<String, E> vmInterfacesByNetworkName(List<E> entityList) { + if (entityList != null) { + Map<String, E> map = new HashMap<String, E>(); + for (E e : entityList) { + map.put(e.getNetworkName(), e); + } + return map; + } else { + return Collections.emptyMap(); + } + } + + public static <E extends VdsNetworkInterface> Map<String, E> hostInterfacesByNetworkName(List<E> entityList) { if (entityList != null) { Map<String, E> map = new HashMap<String, E>(); for (E e : entityList) { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java index 7af6a74..8657dc1 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java @@ -23,9 +23,6 @@ private String macAddress; - @Size(max = BusinessEntitiesDefinitions.NETWORK_NAME_SIZE) - private String networkName; - private Integer type; private Integer speed; @@ -100,25 +97,6 @@ } /** - * Sets the name of the network. - * - * @param networkName - * the network name - */ - public void setNetworkName(String networkName) { - this.networkName = networkName; - } - - /** - * Returns the name of the network. - * - * @return the network name - */ - public String getNetworkName() { - return networkName; - } - - /** * Sets the speed of the network device in megabits per second. * * @param speed @@ -182,7 +160,6 @@ result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((macAddress == null) ? 0 : macAddress.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((networkName == null) ? 0 : networkName.hashCode()); result = prime * result + ((speed == null) ? 0 : speed.hashCode()); result = prime * result + ((type == null) ? 0 : type.hashCode()); return result; @@ -219,13 +196,6 @@ return false; } } else if (!name.equals(other.name)) { - return false; - } - if (networkName == null) { - if (other.networkName != null) { - return false; - } - } else if (!networkName.equals(other.networkName)) { return false; } if (speed == null) { 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 87956ce..fbb4e01 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 @@ -6,6 +6,7 @@ import javax.validation.constraints.Size; import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; +import org.ovirt.engine.core.common.utils.ObjectUtils; import org.ovirt.engine.core.common.utils.ValidationUtils; import org.ovirt.engine.core.common.validation.annotation.ValidNetworkConfiguration; import org.ovirt.engine.core.compat.Guid; @@ -21,6 +22,9 @@ private Guid vdsId; private String vdsName; private NetworkBootProtocol bootProtocol; + + @Size(max = BusinessEntitiesDefinitions.NETWORK_NAME_SIZE) + private String networkName; @Pattern(regexp = ValidationUtils.IP_PATTERN, message = "NETWORK_ADDR_IN_STATIC_IP_BAD_FORMAT") private String address; @@ -116,6 +120,25 @@ */ public NetworkBootProtocol getBootProtocol() { return bootProtocol; + } + + /** + * Sets the name of the network. + * + * @param networkName + * the network name + */ + public void setNetworkName(String networkName) { + this.networkName = networkName; + } + + /** + * Returns the name of the network. + * + * @return the network name + */ + public String getNetworkName() { + return networkName; } /** @@ -352,6 +375,7 @@ result = prime * result + ((bondType == null) ? 0 : bondType.hashCode()); result = prime * result + ((bonded == null) ? 0 : bonded.hashCode()); result = prime * result + ((bootProtocol == null) ? 0 : bootProtocol.hashCode()); + result = prime * result + ((networkName == null) ? 0 : networkName.hashCode()); result = prime * result + (bridged ? 1231 : 1237); result = prime * result + ((gateway == null) ? 0 : gateway.hashCode()); result = prime * result + mtu; @@ -411,6 +435,9 @@ if (bootProtocol != other.bootProtocol) { return false; } + if (!ObjectUtils.objectsEqual(other.networkName, other.networkName)) { + return false; + } if (bridged != other.bridged) { return false; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterface.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterface.java index a3a0f99..f1b2eb7 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterface.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterface.java @@ -4,7 +4,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; +import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; import org.ovirt.engine.core.common.utils.ObjectUtils; import org.ovirt.engine.core.common.validation.group.CreateEntity; import org.ovirt.engine.core.common.validation.group.UpdateEntity; @@ -12,7 +14,7 @@ import org.ovirt.engine.core.compat.Guid; /** - * <code>VmNetworkInterface</code> defines a type of {@link BaseNetworkInterface} for instances of {@link VM}. + * <code>VmNetworkInterface</code> defines a type of {@link NetworkInterface} for instances of {@link VM}. * */ public class VmNetworkInterface extends NetworkInterface<VmNetworkStatistics> { @@ -30,6 +32,9 @@ private String vmName; private Guid vmTemplateId; private boolean plugged = true; + + @Size(max = BusinessEntitiesDefinitions.NETWORK_NAME_SIZE) + private String networkName; /** * Device custom properties @@ -108,6 +113,14 @@ @Override public Object getQueryableId() { return id; + } + + public void setNetworkName(String networkName) { + this.networkName = networkName; + } + + public String getNetworkName() { + return networkName; } public boolean isPlugged() { @@ -195,6 +208,7 @@ final int prime = 31; int result = super.hashCode(); result = prime * result + (plugged ? 1231 : 1237); + result = prime * result + ((networkName == null) ? 0 : networkName.hashCode()); result = prime * result + (customProperties == null ? 0 : customProperties.hashCode()); result = prime * result + (linked ? 1231 : 1237); result = prime * result + ((vmId == null) ? 0 : vmId.hashCode()); @@ -219,7 +233,9 @@ if (plugged != other.plugged) { return false; } - + if (!ObjectUtils.objectsEqual(other.networkName, other.networkName)) { + return false; + } if (!ObjectUtils.objectsEqual(customProperties, other.customProperties)) { return false; } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java index 5168a43..850a1d3 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java @@ -193,7 +193,8 @@ } private static String getVmNetworksImplementedAsBridgeless(VDS vds, List<Network> clusterNetworks) { - Map<String, VdsNetworkInterface> interfacesByNetworkName = Entities.interfacesByNetworkName(vds.getInterfaces()); + Map<String, VdsNetworkInterface> interfacesByNetworkName = + Entities.hostInterfacesByNetworkName(vds.getInterfaces()); List<String> networkNames = new ArrayList<String>(); for (Network net : clusterNetworks) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java index facd3dc..d9b5b44 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java @@ -33,7 +33,6 @@ import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; -import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.core.compat.Version; @@ -330,7 +329,7 @@ return false; } - public static NetworkInterface findInterfaceByName(ArrayList<NetworkInterface> items, String name) + public static NetworkInterface findInterfaceByName(ArrayList<VdsNetworkInterface> items, String name) { for (NetworkInterface i : items) { @@ -342,31 +341,9 @@ return null; } - public static ArrayList<NetworkInterface> vdsNetworkInterfaceListToBase(ArrayList<VdsNetworkInterface> items) + public static VdsNetworkInterface findInterfaceByNetworkName(ArrayList<VdsNetworkInterface> items, String name) { - ArrayList<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>(); - for (VdsNetworkInterface item : items) - { - networkInterfaces.add(item); - } - - return networkInterfaces; - } - - public static ArrayList<NetworkInterface> vmNetworkInterfaceListToBase(ArrayList<VmNetworkInterface> items) - { - ArrayList<NetworkInterface> networkInterfaces = new ArrayList<NetworkInterface>(); - for (VmNetworkInterface item : items) - { - networkInterfaces.add(item); - } - - return networkInterfaces; - } - - public static NetworkInterface findInterfaceByNetworkName(ArrayList<NetworkInterface> items, String name) - { - for (NetworkInterface i : items) + for (VdsNetworkInterface i : items) { if (StringHelper.stringsEqual(i.getNetworkName(), name)) { @@ -388,9 +365,9 @@ return null; } - public static NetworkInterface findInterfaceNetworkNameNotEmpty(ArrayList<NetworkInterface> items) + public static VdsNetworkInterface findInterfaceNetworkNameNotEmpty(ArrayList<VdsNetworkInterface> items) { - for (NetworkInterface i : items) + for (VdsNetworkInterface i : items) { if (!StringHelper.isNullOrEmpty(i.getNetworkName())) { @@ -400,10 +377,10 @@ return null; } - public static ArrayList<NetworkInterface> findAllInterfaceNetworkNameNotEmpty(ArrayList<NetworkInterface> items) + public static ArrayList<VdsNetworkInterface> findAllInterfaceNetworkNameNotEmpty(ArrayList<VdsNetworkInterface> items) { - ArrayList<NetworkInterface> ret = new ArrayList<NetworkInterface>(); - for (NetworkInterface i : items) + ArrayList<VdsNetworkInterface> ret = new ArrayList<VdsNetworkInterface>(); + for (VdsNetworkInterface i : items) { if (!StringHelper.isNullOrEmpty(i.getNetworkName())) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java index 1f9bb05..9315e85 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java @@ -19,7 +19,6 @@ import org.ovirt.engine.core.common.businessentities.network.Bond; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; -import org.ovirt.engine.core.common.businessentities.network.NetworkInterface; import org.ovirt.engine.core.common.businessentities.network.Nic; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.Vlan; @@ -1041,8 +1040,7 @@ String defaultInterfaceName = tmpDefaultInterfaceName.toString(); managementModel.getInterface().setItems(interfaces); managementModel.getInterface() - .setSelectedItem(Linq.findInterfaceByName(Linq.vdsNetworkInterfaceListToBase(interfaces), - defaultInterfaceName)); + .setSelectedItem(Linq.findInterfaceByName(interfaces, defaultInterfaceName)); if (item.getBonded() != null && item.getBonded().equals(true)) { managementModel.getInterface().setTitle(ConstantsManager.getInstance() @@ -1459,10 +1457,9 @@ ArrayList<Network> networksToAdd, boolean isAnyManagement) { - ArrayList<NetworkInterface> baseSelectedItems = - Linq.vdsNetworkInterfaceListToBase(getSelectedItemsWithVlans()); + VdsNetworkInterface interfaceWithNetwork = - (VdsNetworkInterface) Linq.findInterfaceNetworkNameNotEmpty(baseSelectedItems); + Linq.findInterfaceNetworkNameNotEmpty(getSelectedItemsWithVlans()); innerBondModel.getCheckConnectivity().setIsChangable(interfaceWithNetwork != null); innerBondModel.getCheckConnectivity().setIsAvailable(interfaceWithNetwork != null @@ -1556,8 +1553,7 @@ Network net = (Network) model.getNetwork().getSelectedItem(); // Interface interfaceWithNetwork = items.FirstOrDefault(a => !string.IsNullOrEmpty(a.network_name)); - VdsNetworkInterface interfaceWithNetwork = - (VdsNetworkInterface) Linq.findInterfaceNetworkNameNotEmpty(Linq.vdsNetworkInterfaceListToBase(selectedItems)); + VdsNetworkInterface interfaceWithNetwork = Linq.findInterfaceNetworkNameNotEmpty(selectedItems); // look for lines with vlans ArrayList<HostInterfaceLineModel> itemList = @@ -1837,8 +1833,7 @@ String nicName = (String) model.getEntity(); final VdsNetworkInterface nic = - (VdsNetworkInterface) Linq.findInterfaceByName(Linq.vdsNetworkInterfaceListToBase(getAllItems()), - nicName); + (VdsNetworkInterface) Linq.findInterfaceByName(getAllItems(), nicName); if (nic == null) { @@ -2111,8 +2106,7 @@ String nicName = (String) model.getEntity(); final VdsNetworkInterface nic = - (VdsNetworkInterface) Linq.findInterfaceByName(Linq.<NetworkInterface> cast(getInterfaceItems()), - nicName); + (VdsNetworkInterface) Linq.findInterfaceByName(getInterfaceItems(), nicName); AsyncQuery _asyncQuery = new AsyncQuery(); _asyncQuery.setModel(this); _asyncQuery.asyncCallback = new INewAsyncCallback() { @@ -2206,7 +2200,7 @@ && host.getStatus() != VDSStatus.NonResponsive && selectedItems.size() >= 2 && !isAnyBond(selectedItems) - && Linq.findAllInterfaceNetworkNameNotEmpty(Linq.vdsNetworkInterfaceListToBase(selectedItems)).size() <= 1 + && Linq.findAllInterfaceNetworkNameNotEmpty(selectedItems).size() <= 1 && Linq.findAllInterfaceBondNameIsEmpty(selectedItems).size() == selectedItems.size() && Linq.findAllInterfaceVlanIdIsEmpty(selectedItems).size() == selectedItems.size()); -- To view, visit http://gerrit.ovirt.org/17112 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id51ac8bc1588be227a5c9c40b9e49e3a1a0b1af4 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
