* 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 java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+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;
public final class TestBuilders {
private TestBuilders() {
}
- public static List<LogicalSwitches> addLogicalSwitches(HwvtepGlobalAugmentationBuilder augmentationBuilder,
- String[]... data) {
- List<LogicalSwitches> logicalSwitcheses = new ArrayList<>();
- for (String[] row : data) {
- logicalSwitcheses.add(TestBuilders.buildLogicalSwitch(row));
- }
- augmentationBuilder.setLogicalSwitches(logicalSwitcheses);
- return logicalSwitcheses;
+ public static Map<LogicalSwitchesKey, LogicalSwitches> logicalSwitches(String[]... data) {
+ return Arrays.stream(data).map(TestBuilders::buildLogicalSwitch).collect(BindingMap.toOrderedMap());
}
- public static List<RemoteMcastMacs> addRemoteMcastMacs(InstanceIdentifier<Node> iid,
- HwvtepGlobalAugmentationBuilder augmentationBuilder, String[]... data) {
- List<RemoteMcastMacs> remoteMcastMacses = new ArrayList<>();
- 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<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 List<RemoteUcastMacs> addRemoteUcastMacs(InstanceIdentifier<Node> iid,
- HwvtepGlobalAugmentationBuilder augmentationBuilder,
- String[]... data) {
- List<RemoteUcastMacs> remoteUcastMacses = new ArrayList<>();
- 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<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 void addGlobalTerminationPoints(NodeBuilder nodeBuilder, InstanceIdentifier<Node> nodeIid,
- String[]... data) {
- List<TerminationPoint> terminationPoints = new ArrayList<>();
- for (String[] row : data) {
- terminationPoints.add(TestBuilders.buildTerminationPoint(nodeIid, row[0]));
- }
- nodeBuilder.setTerminationPoint(terminationPoints);
+ 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,
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));
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);