X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=elanmanager%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Felan%2Fl2gw%2Fha%2FHwvtepHAUtil.java;h=df4b325621b907201fbe443da065ce7cf64bd06c;hb=refs%2Fchanges%2F77%2F92077%2F4;hp=ab86ae74fe690c0db02c612c473c5324b50aa004;hpb=adc20d2995274c44f3ad44bb0858e009ed1bf129;p=netvirt.git diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java index ab86ae74fe..df4b325621 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java @@ -7,9 +7,7 @@ */ package org.opendaylight.netvirt.elan.l2gw.ha; -import static org.opendaylight.controller.md.sal.binding.api.WriteTransaction.CREATE_MISSING_PARENTS; -import com.google.common.base.Optional; import com.google.common.base.Strings; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -17,16 +15,18 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import javax.annotation.Nullable; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.genius.infra.Datastore; -import org.opendaylight.genius.infra.Datastore.Configuration; -import org.opendaylight.genius.infra.TypedReadWriteTransaction; -import org.opendaylight.genius.infra.TypedWriteTransaction; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.util.Datastore; +import org.opendaylight.mdsal.binding.util.Datastore.Configuration; +import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction; +import org.opendaylight.mdsal.binding.util.TypedWriteTransaction; import org.opendaylight.netvirt.elan.l2gw.ha.commands.SwitchesCmd; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; @@ -43,6 +43,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ManagersBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ManagersKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Switches; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.SwitchesKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.managers.ManagerOtherConfigs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.managers.ManagerOtherConfigsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.managers.ManagerOtherConfigsKey; @@ -78,7 +79,9 @@ public final class HwvtepHAUtil { public static final String MANAGER_KEY = "managerKey"; public static final String L2GW_JOB_KEY = ":l2gw"; - private HwvtepHAUtil() { } + private HwvtepHAUtil() { + + } public static HwvtepPhysicalLocatorRef buildLocatorRef(InstanceIdentifier nodeIid, String tepIp) { InstanceIdentifier tepId = buildTpId(nodeIid, tepIp); @@ -249,6 +252,14 @@ public final class HwvtepHAUtil { return null; } + @Nullable + public static String getPsName(String psNodeId) { + if (psNodeId.contains(PHYSICALSWITCH)) { + return psNodeId.substring(psNodeId.indexOf(PHYSICALSWITCH) + PHYSICALSWITCH.length()); + } + return null; + } + public static InstanceIdentifier getGlobalNodePathFromPSNode(Node psNode) { String psNodeId = psNode.getNodeId().getValue(); if (psNodeId.contains(PHYSICALSWITCH)) { @@ -284,9 +295,9 @@ public final class HwvtepHAUtil { } HwvtepGlobalAugmentation globalAugmentation = node.augmentation(HwvtepGlobalAugmentation.class); if (globalAugmentation != null) { - List managers = globalAugmentation.getManagers(); + List managers = new ArrayList(globalAugmentation.nonnullManagers().values()); if (managers != null && !managers.isEmpty() && managers.get(0).getManagerOtherConfigs() != null) { - for (ManagerOtherConfigs configs : managers.get(0).getManagerOtherConfigs()) { + for (ManagerOtherConfigs configs : managers.get(0).nonnullManagerOtherConfigs().values()) { if (HA_ID.equals(configs.getOtherConfigKey())) { return configs.getOtherConfigValue(); } @@ -311,11 +322,11 @@ public final class HwvtepHAUtil { haGlobalConfigNodeOptional.get().augmentation(HwvtepGlobalAugmentation.class); if (augmentation != null && augmentation.getManagers() != null && augmentation.getManagers().size() > 0) { - Managers managers = augmentation.getManagers().get(0); + Managers managers = new ArrayList(augmentation.nonnullManagers().values()).get(0); if (null == managers.getManagerOtherConfigs()) { return childNodeIds; } - for (ManagerOtherConfigs otherConfigs : managers.getManagerOtherConfigs()) { + for (ManagerOtherConfigs otherConfigs : managers.nonnullManagerOtherConfigs().values()) { if (HA_CHILDREN.equals(otherConfigs.getOtherConfigKey())) { String nodeIdsVal = otherConfigs.getOtherConfigValue(); if (nodeIdsVal != null) { @@ -406,7 +417,7 @@ public final class HwvtepHAUtil { if (!switchesAlreadyPresent) { HwvtepGlobalAugmentation augmentation = childNode.augmentation(HwvtepGlobalAugmentation.class); if (augmentation != null && augmentation.getSwitches() != null) { - List src = augmentation.getSwitches(); + List src = new ArrayList(augmentation.nonnullSwitches().values()); if (src != null && src.size() > 0) { psList.add(new SwitchesCmd().transform(haNodePath, src.get(0))); } @@ -436,7 +447,7 @@ public final class HwvtepHAUtil { nodeBuilder.setNodeId(haNodePath.firstKeyOf(Node.class).getNodeId()); nodeBuilder.addAugmentation(HwvtepGlobalAugmentation.class, hwvtepGlobalBuilder.build()); Node configHANode = nodeBuilder.build(); - tx.merge(haNodePath, configHANode, CREATE_MISSING_PARENTS); + tx.mergeParentStructureMerge(haNodePath, configHANode); } public static void deleteNodeIfPresent(TypedReadWriteTransaction tx, @@ -462,9 +473,9 @@ public final class HwvtepHAUtil { return; } HashMap,Boolean> deleted = new HashMap<>(); - List switches = globalAugmentation.getSwitches(); + Map switches = globalAugmentation.nonnullSwitches(); if (switches != null) { - for (Switches switche : switches) { + for (Switches switche : switches.values()) { InstanceIdentifier psId = (InstanceIdentifier)switche.getSwitchRef().getValue(); deleteNodeIfPresent(tx, psId); deleted.put(psId, Boolean.TRUE); @@ -476,7 +487,7 @@ public final class HwvtepHAUtil { if (topologyOptional.isPresent()) { Topology topology = topologyOptional.get(); if (topology.getNode() != null) { - for (Node psNode : topology.getNode()) { + for (Node psNode : topology.nonnullNode().values()) { PhysicalSwitchAugmentation ps = psNode.augmentation(PhysicalSwitchAugmentation.class); if (ps != null) { InstanceIdentifier iid = (InstanceIdentifier)ps.getManagedBy().getValue();