2 * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.netvirt.elan.l2gw.ha.handlers;
10 import org.opendaylight.mdsal.binding.api.DataObjectModification;
11 import org.opendaylight.mdsal.binding.util.Datastore.Operational;
12 import org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction;
13 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
14 import org.opendaylight.netvirt.elan.l2gw.ha.merge.GlobalAugmentationMerger;
15 import org.opendaylight.netvirt.elan.l2gw.ha.merge.GlobalNodeMerger;
16 import org.opendaylight.netvirt.elan.l2gw.ha.merge.PSAugmentationMerger;
17 import org.opendaylight.netvirt.elan.l2gw.ha.merge.PSNodeMerger;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.PhysicalSwitchAugmentation;
20 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
23 public class OpNodeUpdatedHandler {
25 GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
26 PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
27 GlobalNodeMerger globalNodeMerger = GlobalNodeMerger.getInstance();
28 PSNodeMerger psNodeMerger = PSNodeMerger.getInstance();
31 * Copy HA ps node update to HA child ps node of operational data tree.
33 * @param updatedSrcPSNode Updated HA child ps node
34 * @param haPath HA node path
35 * @param mod the data object modification
36 * @param tx Transaction
38 public void copyChildPsOpUpdateToHAParent(Node updatedSrcPSNode,
39 InstanceIdentifier<Node> haPath,
40 DataObjectModification<Node> mod,
41 TypedReadWriteTransaction<Operational> tx) {
43 InstanceIdentifier<Node> haPSPath = HwvtepHAUtil.convertPsPath(updatedSrcPSNode, haPath);
45 psAugmentationMerger.mergeOpUpdate(haPSPath,
46 mod.getModifiedAugmentation(PhysicalSwitchAugmentation.class), tx);
47 psNodeMerger.mergeOpUpdate(haPSPath, mod, tx);
51 * Copy updated data from HA node to child node of operational data tree.
53 * @param haPath HA node path
54 * @param mod the data object modification
55 * @param tx Transaction
57 public void copyChildGlobalOpUpdateToHAParent(InstanceIdentifier<Node> haPath,
58 DataObjectModification<Node> mod,
59 TypedReadWriteTransaction<Operational> tx) {
61 globalAugmentationMerger.mergeOpUpdate(haPath,
62 mod.getModifiedAugmentation(HwvtepGlobalAugmentation.class), tx);
63 globalNodeMerger.mergeOpUpdate(haPath, mod, tx);