Integrating FAAS renderer with the faas fabric mapping services. Also,
[groupbasedpolicy.git] / renderers / faas / src / main / java / org / opendaylight / groupbasedpolicy / renderer / faas / FaasIidFactory.java
1 /*
2  * Copyright (c) 2015 Huawei Technologies 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.groupbasedpolicy.renderer.faas;
9
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubnetId;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.LogicalNetworks;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.MappedTenantsEntities;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.logical.networks.LogicalNetwork;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.logical.networks.LogicalNetworkKey;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedEntity;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedEntityKey;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedTenant;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedTenantKey;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedContract;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedContractKey;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedEndpoint;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedEndpointKey;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedSubnet;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedSubnetKey;
28 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
29
30 public class FaasIidFactory {
31
32     public static InstanceIdentifier<LogicalNetworks> logicalNetworksIid() {
33         return InstanceIdentifier.builder(LogicalNetworks.class).build();
34     }
35
36     public static InstanceIdentifier<LogicalNetwork> logicalNetworkIid(EndpointGroupId consumerEpgId,
37             TenantId consumerTenantId, ContractId contractId, EndpointGroupId providerEpgId, TenantId providerTenantId) {
38         return InstanceIdentifier.builder(LogicalNetworks.class)
39             .child(LogicalNetwork.class,
40                     new LogicalNetworkKey(consumerEpgId, consumerTenantId, contractId, providerEpgId, providerTenantId))
41             .build();
42     }
43
44     public static InstanceIdentifier<MappedTenantsEntities> mappedTenantsEntitiesIid() {
45         return InstanceIdentifier.builder(MappedTenantsEntities.class).build();
46     }
47
48     public static InstanceIdentifier<MappedSubnet> mappedSubnetIid(TenantId gbpTenantId, SubnetId subnetId) {
49         return InstanceIdentifier.builder(MappedTenantsEntities.class)
50             .child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
51             .child(MappedSubnet.class, new MappedSubnetKey(subnetId))
52             .build();
53     }
54
55     public static InstanceIdentifier<MappedTenant> mappedTenantIid(TenantId gbpTenantId) {
56         return InstanceIdentifier.builder(MappedTenantsEntities.class)
57             .child(MappedTenant.class, new MappedTenantKey(gbpTenantId))
58             .build();
59     }
60
61     public static InstanceIdentifier<MappedEntity> mappedEntityIid(TenantId gbpTenantId) {
62         return InstanceIdentifier.builder(MappedTenantsEntities.class)
63             .child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
64             .build();
65     }
66
67     public static InstanceIdentifier<MappedContract> mappedContractIid(TenantId gbpTenantId, ContractId contractId) {
68         return InstanceIdentifier.builder(MappedTenantsEntities.class)
69             .child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
70             .child(MappedContract.class, new MappedContractKey(contractId))
71             .build();
72     }
73
74     public static InstanceIdentifier<MappedEndpoint> mappedEndpointIid(TenantId gbpTenantId,
75             MappedEndpointKey mappedEndpointKey) {
76         return InstanceIdentifier.builder(MappedTenantsEntities.class)
77             .child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
78             .child(MappedEndpoint.class, mappedEndpointKey)
79             .build();
80     }
81 }