/*
- * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
+ * Copyright © 2016, 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.ovsdb.hwvtepsouthbound;
-import com.google.common.collect.Lists;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepLogicalSwitchRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorAugmentationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacsKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSetBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.util.BindingMap;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-
-public class TestBuilders {
+public final class TestBuilders {
public static final String VXLAN_OVER_IPV4 = "vxlan_over_ipv4";
- public static List<LogicalSwitches> addLogicalSwitches(HwvtepGlobalAugmentationBuilder augmentationBuilder, String[]... data) {
- List<LogicalSwitches> logicalSwitcheses = Lists.newArrayList();
- for (String row[] : data) {
- logicalSwitcheses.add(TestBuilders.buildLogicalSwitch(row));
- }
- augmentationBuilder.setLogicalSwitches(logicalSwitcheses);
- return logicalSwitcheses;
+ private TestBuilders() {
}
- public static List<RemoteMcastMacs> addRemoteMcastMacs(InstanceIdentifier<Node> iid,
- HwvtepGlobalAugmentationBuilder augmentationBuilder, String[]... data) {
- List<RemoteMcastMacs> remoteMcastMacses = Lists.newArrayList();
- for (String row[] : data) {
- String teps[] = Arrays.copyOfRange(row, 2, row.length);
- remoteMcastMacses.add(TestBuilders.buildRemoteMcastMacs(iid, row[0], row[1], teps));
- }
- augmentationBuilder.setRemoteMcastMacs(remoteMcastMacses);
- return remoteMcastMacses;
+ public static Map<LogicalSwitchesKey, LogicalSwitches> logicalSwitches(String[]... data) {
+ return Arrays.stream(data).map(TestBuilders::buildLogicalSwitch).collect(BindingMap.toOrderedMap());
}
- public static List<RemoteUcastMacs> addRemoteUcastMacs(InstanceIdentifier<Node> iid,
- HwvtepGlobalAugmentationBuilder augmentationBuilder,
- String[]... data) {
- List<RemoteUcastMacs> remoteUcastMacses = Lists.newArrayList();
- for (String row[] : data) {
- remoteUcastMacses.add(TestBuilders.buildRemoteUcastMacs(iid, row[0], row[1], row[2], row[3]));
- }
- augmentationBuilder.setRemoteUcastMacs(remoteUcastMacses);
- return remoteUcastMacses;
+ public static Map<RemoteMcastMacsKey, RemoteMcastMacs> remoteMcastMacs(InstanceIdentifier<Node> iid,
+ String[]... data) {
+ return Arrays.stream(data)
+ .map(row -> TestBuilders.buildRemoteMcastMacs(iid, row[0], row[1], Arrays.copyOfRange(row, 2, row.length)))
+ .collect(BindingMap.toOrderedMap());
}
- public static void addGlobalTerminationPoints(NodeBuilder nodeBuilder, InstanceIdentifier<Node> nodeIid,
- String[]... data) {
- List<TerminationPoint> terminationPoints = Lists.newArrayList();
- for (String row[] : data) {
- terminationPoints.add(TestBuilders.buildTerminationPoint(nodeIid, row[0]));
- }
- nodeBuilder.setTerminationPoint(terminationPoints);
+ public static Map<RemoteUcastMacsKey, RemoteUcastMacs> remoteUcastMacs(InstanceIdentifier<Node> iid,
+ String[]... data) {
+ return Arrays.stream(data)
+ .map(row -> TestBuilders.buildRemoteUcastMacs(iid, row[0], row[1], row[2], row[3]))
+ .collect(BindingMap.toOrderedMap());
+ }
+
+ public static Map<TerminationPointKey, TerminationPoint> globalTerminationPoints(InstanceIdentifier<Node> nodeIid,
+ String[]... data) {
+ return Arrays.stream(data)
+ .map(row -> TestBuilders.buildTerminationPoint(nodeIid, row[0]))
+ .collect(BindingMap.toOrderedMap());
}
public static HwvtepLogicalSwitchRef buildLogicalSwitchesRef(InstanceIdentifier<Node> nodeIid,
- String logicalSwitchName ) {
- InstanceIdentifier<LogicalSwitches> lSwitchIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class)
+ String logicalSwitchName) {
+ InstanceIdentifier<LogicalSwitches> switchIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class)
.child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitchName)));
- return new HwvtepLogicalSwitchRef(lSwitchIid);
+ return new HwvtepLogicalSwitchRef(switchIid);
}
public static RemoteUcastMacs buildRemoteUcastMacs(InstanceIdentifier<Node> nodeIid, String vmMac,
String vmip, String tepIp, String logicalSwitchName) {
RemoteUcastMacsBuilder ucmlBuilder = new RemoteUcastMacsBuilder();
- ucmlBuilder.setIpaddr(new IpAddress(vmip.toCharArray()));
+ ucmlBuilder.setIpaddr(TransactUtils.parseIpAddress(vmip));
ucmlBuilder.setMacEntryKey(new MacAddress(vmMac));
ucmlBuilder.setMacEntryUuid(getUUid(vmMac));
ucmlBuilder.setLocatorRef(buildLocatorRef(nodeIid, tepIp));
}
public static TerminationPoint buildTerminationPoint(InstanceIdentifier<Node> nodeIid, String ip) {
- TerminationPointKey tpKey = new TerminationPointKey(new TpId("vxlan_over_ipv4:"+ip));
+ TerminationPointKey tpKey = new TerminationPointKey(new TpId("vxlan_over_ipv4:" + ip));
TerminationPointBuilder tpBuilder = new TerminationPointBuilder();
if (nodeIid != null) {
- tpBuilder.setKey(tpKey);
+ tpBuilder.withKey(tpKey);
tpBuilder.setTpId(tpKey.getTpId());
- HwvtepPhysicalLocatorAugmentationBuilder tpAugmentationBuilder =
- new HwvtepPhysicalLocatorAugmentationBuilder();
- tpAugmentationBuilder.setPhysicalLocatorUuid(getUUid(ip));
- tpAugmentationBuilder.setEncapsulationType(HwvtepSouthboundMapper.createEncapsulationType(VXLAN_OVER_IPV4));
- tpAugmentationBuilder.setDstIp(new IpAddress(ip.toCharArray()));
- tpBuilder.addAugmentation(HwvtepPhysicalLocatorAugmentation.class, tpAugmentationBuilder.build());
+ tpBuilder.addAugmentation(new HwvtepPhysicalLocatorAugmentationBuilder()
+ .setPhysicalLocatorUuid(getUUid(ip))
+ .setEncapsulationType(HwvtepSouthboundMapper.createEncapsulationType(VXLAN_OVER_IPV4))
+ .setDstIp(TransactUtils.parseIpAddress(ip))
+ .build());
}
return tpBuilder.build();
}
String logicalSwitch = keys[0];
String tunnelKey = keys[1];
LogicalSwitchesBuilder logicalSwitchesBuilder = new LogicalSwitchesBuilder();
- logicalSwitchesBuilder.setKey(new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch)));
+ logicalSwitchesBuilder.withKey(new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch)));
logicalSwitchesBuilder.setHwvtepNodeName(new HwvtepNodeName(logicalSwitch));
logicalSwitchesBuilder.setTunnelKey(tunnelKey);
Uuid uuid = getUUid(logicalSwitch);
}
public static RemoteMcastMacs buildRemoteMcastMacs(InstanceIdentifier<Node> iid, String mac,
- String logicalSwitchName,String tepIps[]) {
+ String logicalSwitchName, String[] tepIps) {
- RemoteMcastMacsBuilder mMacLocalBuilder = new RemoteMcastMacsBuilder();
+ RemoteMcastMacsBuilder macLocalBuilder = new RemoteMcastMacsBuilder();
if (mac.equals(HwvtepSouthboundConstants.UNKNOWN_DST_STRING)) {
- mMacLocalBuilder.setMacEntryKey(HwvtepSouthboundConstants.UNKNOWN_DST_MAC);
+ macLocalBuilder.setMacEntryKey(HwvtepSouthboundConstants.UNKNOWN_DST_MAC);
} else {
- mMacLocalBuilder.setMacEntryKey(new MacAddress(mac));
+ macLocalBuilder.setMacEntryKey(new MacAddress(mac));
}
- mMacLocalBuilder.setMacEntryUuid(getUUid(mac));
- mMacLocalBuilder.setLogicalSwitchRef(buildLogicalSwitchesRef(iid, logicalSwitchName));
- List<LocatorSet> locatorSets = Lists.newArrayList();
+ macLocalBuilder.setMacEntryUuid(getUUid(mac));
+ macLocalBuilder.setLogicalSwitchRef(buildLogicalSwitchesRef(iid, logicalSwitchName));
+ List<LocatorSet> locatorSets = new ArrayList<>();
for (String tepIp : tepIps) {
locatorSets.add(new LocatorSetBuilder().setLocatorRef(
buildLocatorRef(iid, tepIp)).build());
}
- mMacLocalBuilder.setLocatorSet(locatorSets);
- return mMacLocalBuilder.build();
+ macLocalBuilder.setLocatorSet(locatorSets);
+ return macLocalBuilder.build();
}
public static HwvtepPhysicalLocatorRef buildLocatorRef(InstanceIdentifier<Node> nodeIid,String tepIp) {
}
public static InstanceIdentifier<TerminationPoint> buildTpId(InstanceIdentifier<Node> nodeIid,String tepIp) {
- String tpKeyStr = VXLAN_OVER_IPV4 +':'+tepIp;
+ String tpKeyStr = VXLAN_OVER_IPV4 + ':' + tepIp;
TerminationPointKey tpKey = new TerminationPointKey(new TpId(tpKeyStr));
return nodeIid.child(TerminationPoint.class, tpKey);
}