aclservice-impl infra sandbox package clean-up; rm things now in mdsal
[netvirt.git] / vpnservice / 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 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAcl
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAclBuilder
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.interfaces._interface.AllowedAddressPairs
19 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
20
21 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION
22
23 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
24 import org.immutables.value.Value.Immutable
25 import org.immutables.value.Value
26 import org.opendaylight.netvirt.aclservice.tests.infra.DataTreeIdentifierDataObjectPairBuilder
27
28 @Immutable
29 @Value.Style(stagedBuilder=true, depluralize = true)
30 abstract class IdentifiedInterfaceWithAclBuilder implements DataTreeIdentifierDataObjectPairBuilder<Interface> {
31
32     def abstract String interfaceName()
33     def abstract Boolean portSecurity()
34     def abstract List<Uuid> newSecurityGroups()
35     def abstract List<AllowedAddressPairs> ifAllowedAddressPairs()
36
37     override type() {
38         CONFIGURATION
39     }
40
41     override identifier() {
42         InstanceIdentifier.builder(Interfaces)
43                     .child(Interface, new InterfaceKey(interfaceName)).build
44     }
45
46     override dataObject() {
47         new InterfaceBuilder >> [
48             addAugmentation(InterfaceAcl, new InterfaceAclBuilder >> [
49                 portSecurityEnabled = portSecurity
50                 securityGroups = newSecurityGroups
51                 allowedAddressPairs = ifAllowedAddressPairs
52             ])
53             name = interfaceName
54         ]
55     }
56
57 }