2f306d3c87cbc7f296d04f43a2f34e4fed39aa40
[groupbasedpolicy.git] / neutron-mapper / src / test / java / org / opendaylight / groupbasedpolicy / neutron / mapper / test / ConfigDataStoreReader.java
1 package org.opendaylight.groupbasedpolicy.neutron.mapper.test;
2
3 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
4 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
5 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
6 import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
7 import org.opendaylight.groupbasedpolicy.util.IidFactory;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClauseName;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SelectorName;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.Contract;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.EndpointGroup;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Clause;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ConsumerNamedSelector;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstance;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstance;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
23
24 import com.google.common.base.Optional;
25
26 public final class ConfigDataStoreReader {
27
28     private ConfigDataStoreReader() {
29         throw new UnsupportedOperationException("Cannot create an instance");
30     }
31
32     public static Optional<Tenant> readTenant(DataBroker dataBroker, String tenantId) throws Exception {
33         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
34             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
35                     IidFactory.tenantIid(new TenantId(tenantId)), rTx);
36         }
37     }
38
39     public static Optional<Contract> readContract(DataBroker dataBroker, String tenantId, String contractId)
40             throws Exception {
41         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
42             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
43                     IidFactory.contractIid(new TenantId(tenantId), new ContractId(contractId)), rTx);
44         }
45     }
46
47     public static Optional<EndpointGroup> readEndpointGroup(DataBroker dataBroker, String tenantId,
48             String endpointGroupId) throws Exception {
49         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
50             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
51                     IidFactory.endpointGroupIid(new TenantId(tenantId), new EndpointGroupId(endpointGroupId)), rTx);
52         }
53     }
54
55     public static Optional<ClassifierInstance> readClassifierInstance(DataBroker dataBroker, String tenantId,
56             ClassifierName classifierName) throws Exception {
57         InstanceIdentifier<ClassifierInstance> clsfInstanceIid = IidFactory.classifierInstanceIid(
58                 new TenantId(tenantId), classifierName);
59         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
60             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION, clsfInstanceIid, rTx);
61         }
62     }
63
64     public static Optional<ActionInstance> readActionInstance(DataBroker dataBroker, String tenantId,
65             ActionName actionName) throws Exception {
66         InstanceIdentifier<ActionInstance> actionIid = IidFactory.actionInstanceIid(new TenantId(tenantId), actionName);
67         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
68             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION, actionIid, rTx);
69         }
70     }
71
72     public static Optional<ConsumerNamedSelector> readConsumerNamedSelector(DataBroker dataBroker, String tenantId, String egId,
73                                                                             String selectorName) {
74         InstanceIdentifier<ConsumerNamedSelector> cnsIid = IidFactory.consumerNamedSelectorIid(new TenantId(tenantId),
75                 new EndpointGroupId(egId), new SelectorName(selectorName));
76         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
77             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION, cnsIid, rTx);
78         }
79     }
80
81     public static Optional<Clause> readClause(DataBroker dataBroker, String tenantId, String contractId, String clauseName) {
82         InstanceIdentifier<Clause> clauseIid = IidFactory.clauseIid(new TenantId(tenantId), new ContractId(contractId),
83                 new ClauseName(clauseName));
84         try (ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction()) {
85             return DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION, clauseIid, rTx);
86         }
87     }
88 }