1 package org.opendaylight.groupbasedpolicy.neutron.mapper.infrastructure;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
10 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
11 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
12 import org.opendaylight.groupbasedpolicy.neutron.mapper.test.NeutronMapperDataBrokerTest;
13 import org.opendaylight.groupbasedpolicy.neutron.mapper.test.PolicyAssert;
14 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstance;
22 public class NetworkServiceTest extends NeutronMapperDataBrokerTest {
25 private static final SubjectName DHCP_SUBJECT_NAME = new SubjectName("ALLOW_DHCP");
26 private static final String DHCP_IPV4_CLIENT_SERVER_NAME = "DHCP_IPv4_FROM_CLIENT_TO_SERVER";
27 private static final String DHCP_IPV4_SERVER_CLIENT_NAME = "DHCP_IPv4_FROM_SERVER_TO_CLIENT";
28 private static final String DHCP_IPV6_CLIENT_SERVER_NAME = "DHCP_IPv6_FROM_CLIENT_TO_SERVER";
29 private static final String DHCP_IPV6_SERVER_CLIENT_NAME = "DHCP_IPv6_FROM_SERVER_TO_CLIENT";
32 private static final SubjectName DNS_SUBJECT_NAME = new SubjectName("ALLOW_DNS");
33 private static final String DNS_UDP_IPV4_CLIENT_SERVER_NAME = "DNS_UDP_IPv4_FROM_CLIENT_TO_SERVER";
34 private static final String DNS_UDP_IPV4_SERVER_CLIENT_NAME = "DNS_UDP_IPv4_FROM_SERVER_TO_CLIENT";
35 private static final String DNS_UDP_IPV6_CLIENT_SERVER_NAME = "DNS_UDP_IPv6_FROM_CLIENT_TO_SERVER";
36 private static final String DNS_UDP_IPV6_SERVER_CLIENT_NAME = "DNS_UDP_IPv6_FROM_SERVER_TO_CLIENT";
37 private static final String DNS_TCP_IPV4_CLIENT_SERVER_NAME = "DNS_TCP_IPv4_FROM_CLIENT_TO_SERVER";
38 private static final String DNS_TCP_IPV4_SERVER_CLIENT_NAME = "DNS_TCP_IPv4_FROM_SERVER_TO_CLIENT";
39 private static final String DNS_TCP_IPV6_CLIENT_SERVER_NAME = "DNS_TCP_IPv6_FROM_CLIENT_TO_SERVER";
40 private static final String DNS_TCP_IPV6_SERVER_CLIENT_NAME = "DNS_TCP_IPv6_FROM_SERVER_TO_CLIENT";
43 private static final SubjectName MGMT_SUBJECT_NAME = new SubjectName("ALLOW_MGMT");
44 private static final String SSH_IPV4_SERVER_TO_CLIENT_NAME = "SSH_IPV4_FROM_SERVER_TO_CLIENT";
45 private static final String SSH_IPV6_SERVER_TO_CLIENT_NAME = "SSH_IPV6_FROM_SERVER_TO_CLIENT";
46 private static final String SSH_IPV4_CLIENT_TO_SERVER_NAME = "SSH_IPV4_FROM_CLIENT_TO_SERVER";
47 private static final String SSH_IPV6_CLIENT_TO_SERVER_NAME = "SSH_IPV6_FROM_CLIENT_TO_SERVER";
48 private static final String ICMP_IPV4_BETWEEN_SERVER_CLIENT_NAME = "ICMP_IPV4_BETWEEN_SERVER_CLIENT";
49 private static final String ICMP_IPV6_BETWEEN_SERVER_CLIENT_NAME = "ICMP_IPV6_BETWEEN_SERVER_CLIENT";
51 private final String tenantId = "00000000-0000-0000-0000-000000000001";
52 private final IpPrefix ipv4Prefix = new IpPrefix(new Ipv4Prefix("170.0.0.1/8"));
53 private final IpPrefix ipv6Prefix = new IpPrefix(new Ipv6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7334/128"));
56 public void instantiate() {
57 NetworkService service = new NetworkService();
58 assertNotNull(service);
62 public void testWriteDhcpClauseWithConsProvEicIpv4() throws Exception {
63 DataBroker dataBroker = getDataBroker();
64 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
65 NetworkService.writeDhcpClauseWithConsProvEic(new TenantId(tenantId), ipv4Prefix, rwTx);
68 // expected clause name
69 String clauseNameIpV4 = DHCP_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER
70 + ipv4Prefix.getIpv4Prefix().getValue();
71 clauseNameIpV4 = clauseNameIpV4.replace('/', '_');
73 PolicyAssert.assertClauseExists(dataBroker, tenantId, NetworkService.DHCP_CONTRACT_ID.getValue(),
78 public void testWriteDhcpClauseWithConsProvEicIpv6() throws Exception {
79 DataBroker dataBroker = getDataBroker();
80 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
81 NetworkService.writeDhcpClauseWithConsProvEic(new TenantId(tenantId), ipv6Prefix, rwTx);
84 // expected clause name
85 String clauseNameIpV6 = DHCP_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER
86 + ipv6Prefix.getIpv6Prefix().getValue();
87 clauseNameIpV6 = clauseNameIpV6.replace('/', '_').replace(':', '.');
89 PolicyAssert.assertClauseExists(dataBroker, tenantId, NetworkService.DHCP_CONTRACT_ID.getValue(),
94 public void testWriteDnsClauseWithConsProvEicIpv4() throws Exception {
96 DataBroker dataBroker = getDataBroker();
97 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
98 NetworkService.writeDnsClauseWithConsProvEic(new TenantId(tenantId), ipv4Prefix, rwTx);
101 // expected clause name
102 String clauseNameIpV4 = DNS_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER
103 + ipv4Prefix.getIpv4Prefix().getValue();
104 clauseNameIpV4 = clauseNameIpV4.replace('/', '_');
106 PolicyAssert.assertClauseExists(dataBroker, tenantId, NetworkService.DNS_CONTRACT_ID.getValue(),
111 public void testWriteDnsClauseWithConsProvEicIpv6() throws Exception {
113 DataBroker dataBroker = getDataBroker();
114 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
115 NetworkService.writeDnsClauseWithConsProvEic(new TenantId(tenantId), ipv6Prefix, rwTx);
118 // expected clause name
119 String clauseNameIpV6 = DNS_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER
120 + ipv6Prefix.getIpv6Prefix().getValue();
121 clauseNameIpV6 = clauseNameIpV6.replace('/', '_').replace(':', '.');
123 PolicyAssert.assertClauseExists(dataBroker, tenantId, NetworkService.DNS_CONTRACT_ID.getValue(),
128 public void testWriteNetworkServiceEntitiesToTenant() throws Exception {
130 DataBroker dataBroker = getDataBroker();
131 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
132 NetworkService.writeNetworkServiceEntitiesToTenant(new TenantId(tenantId), rwTx);
135 // read classifier instances
136 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DHCP_IPV4_CLIENT_SERVER_NAME);
137 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DHCP_IPV4_SERVER_CLIENT_NAME);
138 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DHCP_IPV6_CLIENT_SERVER_NAME);
139 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DHCP_IPV6_SERVER_CLIENT_NAME);
140 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_UDP_IPV4_CLIENT_SERVER_NAME);
141 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_UDP_IPV4_SERVER_CLIENT_NAME);
142 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_UDP_IPV6_CLIENT_SERVER_NAME);
143 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_UDP_IPV6_SERVER_CLIENT_NAME);
144 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_TCP_IPV4_CLIENT_SERVER_NAME);
145 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_TCP_IPV4_SERVER_CLIENT_NAME);
146 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_TCP_IPV6_CLIENT_SERVER_NAME);
147 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, DNS_TCP_IPV6_SERVER_CLIENT_NAME);
148 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, SSH_IPV4_SERVER_TO_CLIENT_NAME);
149 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, SSH_IPV6_SERVER_TO_CLIENT_NAME);
150 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, SSH_IPV4_CLIENT_TO_SERVER_NAME);
151 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, SSH_IPV6_CLIENT_TO_SERVER_NAME);
152 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, ICMP_IPV4_BETWEEN_SERVER_CLIENT_NAME);
153 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, ICMP_IPV6_BETWEEN_SERVER_CLIENT_NAME);
156 PolicyAssert.assertContractExists(dataBroker, tenantId, NetworkService.DHCP_CONTRACT_ID.getValue());
157 PolicyAssert.assertContractExists(dataBroker, tenantId, NetworkService.DNS_CONTRACT_ID.getValue());
158 PolicyAssert.assertContractExists(dataBroker, tenantId, NetworkService.MGMT_CONTRACT_ID.getValue());
161 PolicyAssert.assertEndpointGroupExists(dataBroker, tenantId, NetworkService.EPG_ID.getValue());
165 public void testGetAllClassifierInstances() {
166 Set<ClassifierInstance> classifierInstances = NetworkService.getAllClassifierInstances();
167 assertNotNull(classifierInstances);
168 assertFalse(classifierInstances.isEmpty());
169 assertEquals(classifierInstances.size(), 18);