2 * Copyright (c) 2015 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
9 package org.opendaylight.ovsdb.hwvtepsouthbound;
11 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
12 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
13 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
14 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
15 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
16 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
17 import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
21 import com.google.common.base.Optional;
22 import com.google.common.util.concurrent.CheckedFuture;
24 public class HwvtepSouthboundUtil {
26 private static final Logger LOG = LoggerFactory.getLogger(HwvtepSouthboundUtil.class);
28 private static InstanceIdentifierCodec instanceIdentifierCodec;
30 private HwvtepSouthboundUtil() {
31 // Prevent instantiating a utility class
34 public static void setInstanceIdentifierCodec(InstanceIdentifierCodec iidc) {
35 instanceIdentifierCodec = iidc;
38 public static InstanceIdentifierCodec getInstanceIdentifierCodec() {
39 return instanceIdentifierCodec;
42 public static String serializeInstanceIdentifier(InstanceIdentifier<?> iid) {
43 return instanceIdentifierCodec.serialize(iid);
46 public static InstanceIdentifier<?> deserializeInstanceIdentifier(String iidString) {
47 InstanceIdentifier<?> result = null;
49 result = instanceIdentifierCodec.bindingDeserializer(iidString);
50 } catch (DeserializationException e) {
51 LOG.warn("Unable to deserialize iidString", e);
56 public static <D extends org.opendaylight.yangtools.yang.binding.DataObject> Optional<D> readNode(
57 ReadWriteTransaction transaction, final InstanceIdentifier<D> connectionIid) {
58 Optional<D> node = Optional.absent();
60 node = transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid).checkedGet();
61 } catch (final ReadFailedException e) {
62 LOG.warn("Read Operational/DS for Node failed! {}", connectionIid, e);
67 public static <D extends org.opendaylight.yangtools.yang.binding.DataObject> boolean deleteNode(
68 ReadWriteTransaction transaction, final InstanceIdentifier<D> connectionIid) {
69 boolean result = false;
70 transaction.delete(LogicalDatastoreType.OPERATIONAL, connectionIid);
71 CheckedFuture<Void, TransactionCommitFailedException> future = transaction.submit();
75 } catch (TransactionCommitFailedException e) {
76 LOG.warn("Failed to delete {} ", connectionIid, e);