2 * Copyright (c) 2018 Red Hat, Inc. 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.aclservice.tests;
10 import static java.util.Collections.singletonList;
11 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
15 import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.L2vlan;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceKey;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state._interface.StatisticsBuilder;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress;
26 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
29 * Utility to create interfaces in tests.
31 * @author Michael Vorburger.ch
33 public final class StateInterfaceBuilderHelper {
34 // TODO make this like IdentifiedInterfaceWithAclBuilder
36 private StateInterfaceBuilderHelper() {}
38 public static void putNewStateInterface(DataBroker dataBroker, String interfaceName, String mac)
39 throws TransactionCommitFailedException {
40 InterfaceBuilder stateInterfaceBuilder = new InterfaceBuilder();
41 stateInterfaceBuilder.setName(interfaceName);
42 stateInterfaceBuilder.setPhysAddress(new PhysAddress(mac));
43 stateInterfaceBuilder.setLowerLayerIf(singletonList("openflow:123:456"));
44 stateInterfaceBuilder.setIfIndex(987);
45 stateInterfaceBuilder.setOperStatus(OperStatus.Up);
46 stateInterfaceBuilder.setAdminStatus(AdminStatus.Up);
47 stateInterfaceBuilder.setType(L2vlan.class);
48 stateInterfaceBuilder.setStatistics(new StatisticsBuilder()
49 .setDiscontinuityTime(DateAndTime.getDefaultInstance("8330-42-22T79:08:74Z")).build());
50 Interface stateInterface = stateInterfaceBuilder.build();
51 InstanceIdentifier<Interface> id = InstanceIdentifier.builder(InterfacesState.class)
52 .child(Interface.class, new InterfaceKey(interfaceName)).build();
53 SingleTransactionDataBroker.syncWrite(dataBroker, OPERATIONAL, id, stateInterface);