2 * Copyright (c) 2016 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
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
21 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION
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
29 @Value.Style(stagedBuilder=true, depluralize = true)
30 abstract class IdentifiedInterfaceWithAclBuilder implements DataTreeIdentifierDataObjectPairBuilder<Interface> {
32 def abstract String interfaceName()
33 def abstract Boolean portSecurity()
34 def abstract List<Uuid> newSecurityGroups()
35 def abstract List<AllowedAddressPairs> ifAllowedAddressPairs()
41 override identifier() {
42 InstanceIdentifier.builder(Interfaces)
43 .child(Interface, new InterfaceKey(interfaceName)).build
46 override dataObject() {
47 new InterfaceBuilder >> [
48 addAugmentation(InterfaceAcl, new InterfaceAclBuilder >> [
49 portSecurityEnabled = portSecurity
50 securityGroups = newSecurityGroups
51 allowedAddressPairs = ifAllowedAddressPairs