2 * Copyright © 2017 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.genius.testutils.interfacemanager;
10 import com.google.common.collect.Lists;
11 import java.math.BigInteger;
13 import java.time.ZonedDateTime;
14 import java.time.format.DateTimeFormatter;
16 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.Other;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceKey;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state._interface.StatisticsBuilder;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
28 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
30 public final class InterfaceStateHelper {
32 private InterfaceStateHelper() {
35 public static InstanceIdentifier<Interface> buildStateInterfaceIid(String interfaceName) {
36 return InstanceIdentifier
37 .builder(InterfacesState.class)
38 .child(Interface.class, new InterfaceKey(interfaceName))
42 public static Interface buildStateFromInterfaceInfo(InterfaceInfo interfaceInfo) {
43 BigInteger dpId = interfaceInfo.getDpId();
44 int portno = interfaceInfo.getPortNo();
45 NodeConnectorId nodeConnectorId = new NodeConnectorId("openflow:" + dpId.toString() + ":" + portno);
46 return new InterfaceBuilder()
48 .setIfIndex(interfaceInfo.getInterfaceTag())
49 .setAdminStatus(AdminStatus.Up)
50 .setOperStatus(OperStatus.Up)
51 .setLowerLayerIf(Lists.newArrayList(nodeConnectorId.getValue()))
52 .setPhysAddress(new PhysAddress(interfaceInfo.getMacAddress()))
53 .withKey(new InterfaceKey(interfaceInfo.getInterfaceName()))
54 .setStatistics(new StatisticsBuilder()
55 .setDiscontinuityTime(new DateAndTime(
56 DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now())))