931c3335f02d02c4817ac3ab677db24496c4be18
[netvirt.git] / aclservice / impl / src / test / java / org / opendaylight / netvirt / aclservice / tests / StateInterfaceBuilderHelper.java
1 /*
2  * Copyright (c) 2018 Red Hat, Inc. and others. All rights reserved.
3  *
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
7  */
8 package org.opendaylight.netvirt.aclservice.tests;
9
10 import static java.util.Collections.singletonList;
11 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
12
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;
27
28 /**
29  * Utility to create interfaces in tests.
30  *
31  * @author Michael Vorburger.ch
32  */
33 public final class StateInterfaceBuilderHelper {
34     // TODO make this like IdentifiedInterfaceWithAclBuilder
35
36     private StateInterfaceBuilderHelper() {
37
38     }
39
40     public static void putNewStateInterface(DataBroker dataBroker, String interfaceName, String mac)
41             throws TransactionCommitFailedException {
42         InterfaceBuilder stateInterfaceBuilder = new InterfaceBuilder();
43         stateInterfaceBuilder.setName(interfaceName);
44         stateInterfaceBuilder.setPhysAddress(new PhysAddress(mac));
45         stateInterfaceBuilder.setLowerLayerIf(singletonList("openflow:123:456"));
46         stateInterfaceBuilder.setIfIndex(987);
47         stateInterfaceBuilder.setOperStatus(OperStatus.Up);
48         stateInterfaceBuilder.setAdminStatus(AdminStatus.Up);
49         stateInterfaceBuilder.setType(L2vlan.class);
50         stateInterfaceBuilder.setStatistics(new StatisticsBuilder()
51                 .setDiscontinuityTime(DateAndTime.getDefaultInstance("8330-42-22T79:08:74Z")).build());
52         Interface stateInterface = stateInterfaceBuilder.build();
53         InstanceIdentifier<Interface> id = InstanceIdentifier.builder(InterfacesState.class)
54                 .child(Interface.class, new InterfaceKey(interfaceName)).build();
55         SingleTransactionDataBroker.syncWrite(dataBroker, OPERATIONAL, id, stateInterface);
56     }
57
58 }