X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=itm%2Fitm-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fgenius%2Fitm%2Fconfighelpers%2FOvsdbTepAddConfigHelper.java;h=b9c711b6324db2e6159719475829549d5147e200;hb=3c4ad5fbe103a0ffbd4fb754fb8bde03aa899495;hp=f5abd00e4509ceb486bcf22319d1e439590db291;hpb=ffd67c3748872793984a31e70345dea168ca6be2;p=genius.git diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java index f5abd00e4..b9c711b63 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java @@ -10,7 +10,6 @@ package org.opendaylight.genius.itm.confighelpers; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; - import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; @@ -18,17 +17,19 @@ import org.opendaylight.genius.itm.globals.ITMConstants; import org.opendaylight.genius.itm.impl.ItmUtils; import org.opendaylight.genius.mdsalutil.MDSALUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.NotHostedTransportZones; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVteps; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVtepsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVtepsKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVteps; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVtepsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVtepsKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Subnets; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsKey; @@ -39,12 +40,14 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class OvsdbTepAddConfigHelper { +public final class OvsdbTepAddConfigHelper { private static final Logger LOG = LoggerFactory.getLogger(OvsdbTepAddConfigHelper.class); + private OvsdbTepAddConfigHelper() { } + /** - * Adds the TEP into ITM configuration Datastore in one of the following cases. + * Adds the TEP into ITM configuration/operational Datastore in one of the following cases. * 1) default transport zone * 2) Configured transport zone * 3) Unhosted transport zone @@ -53,7 +56,7 @@ public class OvsdbTepAddConfigHelper { * @param strDpnId bridge datapath ID in string * @param tzName transport zone name in string * @param ofTunnel boolean flag for TEP to enable/disable of-tunnel feature on it - * @param dataBroker data broker handle to perform operations on config datastore + * @param dataBroker data broker handle to perform operations on config/operational datastore * @param wrTx WriteTransaction object */ @@ -66,10 +69,10 @@ public class OvsdbTepAddConfigHelper { } // Get tep IP - IpAddress tepIpAddress = new IpAddress(tepIp.toCharArray()); + IpAddress tepIpAddress = IpAddressBuilder.getDefaultInstance(tepIp); TransportZone tzone = null; - // Case: TZ name is not given with CSS TEP. + // Case: TZ name is not given with OVS TEP. if (tzName == null) { tzName = ITMConstants.DEFAULT_TRANSPORT_ZONE; // add TEP into default-TZ @@ -83,8 +86,8 @@ public class OvsdbTepAddConfigHelper { // Case: Add TEP into corresponding TZ created from Northbound. tzone = ItmUtils.getTransportZoneFromConfigDS(tzName, dataBroker); if (tzone == null) { - // Case: TZ is not configured from Northbound, then add TEP into "teps-not-hosted-in-transport-zone" - LOG.trace("Adding TEP with unknown TZ into teps-not-hosted-in-transport-zone."); + // Case: TZ is not configured from Northbound, then add TEP into "teps-in-not-hosted-transport-zone" + LOG.trace("Adding TEP with unknown TZ into teps-in-not-hosted-transport-zone."); addUnknownTzTepIntoTepsNotHosted(tzName, tepIpAddress, dpnId, ofTunnel, dataBroker, wrTx); return; @@ -101,9 +104,9 @@ public class OvsdbTepAddConfigHelper { if (subnetList == null || subnetList.isEmpty()) { if (subnetList == null) { - subnetList = new ArrayList(); + subnetList = new ArrayList<>(); } - List vtepList = new ArrayList(); + List vtepList = new ArrayList<>(); LOG.trace("Add TEP in transport-zone when no subnet-list."); addVtepInITMConfigDS(subnetList, subnetMaskObj, vtepList, tepIpAddress, tzName, dpnId, portName, ofTunnel, wrTx); @@ -123,7 +126,7 @@ public class OvsdbTepAddConfigHelper { if (vtepList == null || vtepList.isEmpty()) { // case: vtep list does not exist or it has no elements if (vtepList == null) { - vtepList = new ArrayList(); + vtepList = new ArrayList<>(); } LOG.trace("Add TEP in transport-zone when no vtep-list for specific subnet."); addVtepInITMConfigDS(subnetList, subnetMaskObj, vtepList, tepIpAddress, tzName, @@ -189,22 +192,21 @@ public class OvsdbTepAddConfigHelper { // Add vtep obtained from bridge into list updatedVtepList.add(vtepObj); - LOG.trace("Adding TEP (TZ: {} Subnet: {} TEP IP: {} DPID: {}, of-tunnel: {})" - + "in ITM Config DS.", tzName, subnetMaskObj.getValue().toString(), tepIpAddress, - dpid, ofTunnel); + LOG.trace("Adding TEP (TZ: {} Subnet: {} TEP IP: {} DPID: {}, of-tunnel: {}) in ITM Config DS.", tzName, + subnetMaskObj, tepIpAddress, dpid, ofTunnel); } else { // this is case when this function is called while TEPs movement from tepsNotHosted list when // corresponding TZ is configured from northbound. for (Vteps vtep: updatedVtepList) { LOG.trace("Moving TEP (TEP IP: {} DPID: {}, of-tunnel: {})" - + "from tepNotHosted list into transport-zone {} in ITM Config DS.", - vtep.getIpAddress().getValue().toString(), vtep.getDpnId(), ofTunnel, tzName); + + "from not-hosted-transport-zone {} into ITM Config DS.", + vtep.getIpAddress(), vtep.getDpnId(), ofTunnel, tzName); } } // Create subnet object SubnetsKey subKey = new SubnetsKey(subnetMaskObj); - IpAddress gatewayIP = new IpAddress(ITMConstants.DUMMY_GATEWAY_IP.toCharArray()); + IpAddress gatewayIP = IpAddressBuilder.getDefaultInstance(ITMConstants.DUMMY_GATEWAY_IP); int vlanID = ITMConstants.DUMMY_VLANID; Subnets subnet = @@ -226,33 +228,33 @@ public class OvsdbTepAddConfigHelper { /** * Adds the TEP into Vtep list in the subnet list in the transport zone list - * from ITM configuration Datastore by merge operation with write transaction. + * from ITM operational Datastore by merge operation with write transaction. * * @param tzName transport zone name in string * @param tepIpAddress TEP IP address in IpAddress object * @param dpid bridge datapath ID in BigInteger * @param ofTunnel boolean flag for TEP to enable/disable of-tunnel feature on it - * @param dataBroker data broker handle to perform operations on config datastore + * @param dataBroker data broker handle to perform operations on operational datastore * @param wrTx WriteTransaction object */ protected static void addUnknownTzTepIntoTepsNotHosted(String tzName, IpAddress tepIpAddress, BigInteger dpid, boolean ofTunnel, DataBroker dataBroker, WriteTransaction wrTx) { List vtepList = null; - TepsNotHostedInTransportZone unknownTz = - ItmUtils.getUnknownTransportZoneFromITMConfigDS(tzName, dataBroker); - if (unknownTz == null) { - LOG.trace("Unhosted TransportZone does not exist."); - vtepList = new ArrayList(); + TepsInNotHostedTransportZone tepsInNotHostedTransportZone = + ItmUtils.getUnknownTransportZoneFromITMOperDS(tzName, dataBroker); + if (tepsInNotHostedTransportZone == null) { + LOG.trace("Unhosted TransportZone ({}) does not exist in OperDS.", tzName); + vtepList = new ArrayList<>(); addVtepIntoTepsNotHosted(vtepList, tepIpAddress, tzName, dpid, ofTunnel, wrTx); } else { - vtepList = unknownTz.getUnknownVteps(); + vtepList = tepsInNotHostedTransportZone.getUnknownVteps(); if (vtepList == null || vtepList.isEmpty()) { // case: vtep list does not exist or it has no elements if (vtepList == null) { - vtepList = new ArrayList(); + vtepList = new ArrayList<>(); } - LOG.trace("Add TEP in unhosted TZ ({}) when no vtep-list in the TZ.", tzName); + LOG.trace("Add TEP into unhosted TZ ({}) when no vtep-list in the TZ.", tzName); addVtepIntoTepsNotHosted(vtepList, tepIpAddress, tzName, dpid, ofTunnel, wrTx); } else { // case: vtep list has elements @@ -281,7 +283,7 @@ public class OvsdbTepAddConfigHelper { /** * Adds the TEP into Unknown Vtep list under the transport zone in the TepsNotHosted list - * from ITM configuration Datastore by merge operation with write transaction. + * from ITM operational Datastore by merge operation with write transaction. * * @param updatedVtepList updated UnknownVteps list object which will have new TEP for addition * into TepsNotHosted @@ -295,10 +297,10 @@ public class OvsdbTepAddConfigHelper { IpAddress tepIpAddress, String tzName, BigInteger dpid, boolean ofTunnel, WriteTransaction wrTx) { //Create TZ node path - InstanceIdentifier transportZonePath = - InstanceIdentifier.builder(TransportZones.class) - .child(TepsNotHostedInTransportZone.class, - new TepsNotHostedInTransportZoneKey(tzName)).build(); + InstanceIdentifier tepsInNotHostedTransportZoneIid = + InstanceIdentifier.builder(NotHostedTransportZones.class) + .child(TepsInNotHostedTransportZone.class, + new TepsInNotHostedTransportZoneKey(tzName)).build(); // create vtep UnknownVtepsKey vtepkey = new UnknownVtepsKey(dpid); @@ -310,14 +312,14 @@ public class OvsdbTepAddConfigHelper { updatedVtepList.add(vtepObj); // create unknown TZ node with updated vtep list - TepsNotHostedInTransportZone updatedTzone = new TepsNotHostedInTransportZoneBuilder() - .setKey(new TepsNotHostedInTransportZoneKey(tzName)).setZoneName(tzName) + TepsInNotHostedTransportZone updatedTzone = new TepsInNotHostedTransportZoneBuilder() + .setKey(new TepsInNotHostedTransportZoneKey(tzName)).setZoneName(tzName) .setUnknownVteps(updatedVtepList).build(); - LOG.trace("Adding TEP into unhosted (TZ: {}, DPID: {}, TEP IP: {}, of-tunnel: {})" - + "in ITM Config DS.", tzName, dpid, tepIpAddress, ofTunnel); + LOG.trace("Adding TEP (DPID: {}, TEP IP: {}, of-tunnel: {}) into unhosted TZ: {}" + + "inside ITM Oper DS.", dpid, tepIpAddress, ofTunnel, tzName); - // Update TZ in Config DS. - wrTx.merge(LogicalDatastoreType.CONFIGURATION, transportZonePath, updatedTzone, true); + // Update TZ in Oper DS. + wrTx.merge(LogicalDatastoreType.OPERATIONAL, tepsInNotHostedTransportZoneIid, updatedTzone, true); } }