move vpnservice and cleanup poms
[netvirt.git] / aclservice / impl / src / test / java / org / opendaylight / netvirt / aclservice / tests / IdentifiedInterfaceWithAclBuilder.xtend
1 /*
2  * Copyright (c) 2016 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 java.util.List
11 import javax.annotation.concurrent.NotThreadSafe
12
13 import org.opendaylight.netvirt.aclservice.tests.infra.DataTreeIdentifierDataObjectPairBuilder
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAcl
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAclBuilder
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.interfaces._interface.AllowedAddressPairs
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
24
25 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION
26
27 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
28 import java.util.ArrayList
29
30 @NotThreadSafe
31 class IdentifiedInterfaceWithAclBuilder implements DataTreeIdentifierDataObjectPairBuilder<Interface> {
32
33     var String interfaceName
34     var Boolean portSecurity
35     var List<Uuid> newSecurityGroups = new ArrayList
36     var List<AllowedAddressPairs> ifAllowedAddressPairs = new ArrayList
37
38     override type() {
39         CONFIGURATION
40     }
41
42     override identifier() {
43         InstanceIdentifier.builder(Interfaces)
44                     .child(Interface, new InterfaceKey(interfaceName)).build
45     }
46
47     override dataObject() {
48         new InterfaceBuilder >> [
49             addAugmentation(InterfaceAcl, new InterfaceAclBuilder >> [
50                 portSecurityEnabled = portSecurity
51                 securityGroups = newSecurityGroups
52                 allowedAddressPairs = ifAllowedAddressPairs
53             ])
54             name = interfaceName
55             type = L2vlan
56         ]
57     }
58
59     // see IdentifiedAceBuilder (@Builder)
60
61     def interfaceName(String interfaceName) {
62         this.interfaceName = interfaceName
63         this
64     }
65
66     def portSecurity(Boolean portSecurity) {
67         this.portSecurity = portSecurity
68         this
69     }
70
71     def addAllNewSecurityGroups(List<Uuid> newSecurityGroups) {
72         this.newSecurityGroups.addAll(newSecurityGroups)
73         this
74     }
75
76     def addAllIfAllowedAddressPairs(List<AllowedAddressPairs> ifAllowedAddressPairs) {
77         this.ifAllowedAddressPairs.addAll(ifAllowedAddressPairs)
78         this
79     }
80
81 }