Bug 3700 - UT GBP - 11 - neutron/ovsdb
[groupbasedpolicy.git] / neutron-ovsdb / src / main / java / org / opendaylight / groupbasedpolicy / neutron / ovsdb / util / NeutronOvsdbIidFactory.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, 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.groupbasedpolicy.neutron.ovsdb.util;
9
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.UniqueId;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.Mappings;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.FloatingIpAssociationMappings;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.GbpByNeutronMappings;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.NeutronByGbpMappings;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.floating.ip.association.mappings.InternalPortsByFloatingIpPorts;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.floating.ip.association.mappings.internal.ports.by.floating.ip.ports.InternalPortByFloatingIpPort;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.floating.ip.association.mappings.internal.ports.by.floating.ip.ports.InternalPortByFloatingIpPortKey;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.EndpointsByFloatingIpPorts;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.EndpointsByPorts;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.endpoints.by.floating.ip.ports.EndpointByFloatingIpPort;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.endpoints.by.ports.EndpointByPort;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.endpoints.by.ports.EndpointByPortKey;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.ExternalGatewaysAsL3Endpoints;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.external.gateways.as.l3.endpoints.ExternalGatewayAsL3Endpoint;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
26 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
27 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
28 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
29 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
30 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
31 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
32
33 public class NeutronOvsdbIidFactory {
34
35     public static InstanceIdentifier<OvsdbNodeAugmentation> ovsdbNodeAugmentationIid(TopologyId ovsdbTopologyId) {
36         return InstanceIdentifier.create(NetworkTopology.class) .child(Topology.class, new TopologyKey(ovsdbTopologyId))
37         .child(Node.class)
38         .augmentation(OvsdbNodeAugmentation.class);
39     }
40
41     public static InstanceIdentifier<ExternalGatewayAsL3Endpoint> neutronGbpExternalGatewayIidWildcard() {
42         return InstanceIdentifier.builder(Mappings.class)
43                 .child(NeutronByGbpMappings.class)
44                 .child(ExternalGatewaysAsL3Endpoints.class)
45                 .child(ExternalGatewayAsL3Endpoint.class)
46                 .build();
47     }
48
49     public static InstanceIdentifier<EndpointByFloatingIpPort> neutronGbpFloatingIpIidWildcard() {
50         return InstanceIdentifier.builder(Mappings.class)
51                 .child(GbpByNeutronMappings.class)
52                 .child(EndpointsByFloatingIpPorts.class)
53                 .child(EndpointByFloatingIpPort.class)
54                 .build();
55     }
56
57     public static InstanceIdentifier<EndpointByPort> endpointByPortIid(UniqueId portId) {
58         return InstanceIdentifier.builder(Mappings.class)
59                 .child(GbpByNeutronMappings.class)
60                 .child(EndpointsByPorts.class)
61                 .child(EndpointByPort.class, new EndpointByPortKey(portId))
62                 .build();
63     }
64
65     public static InstanceIdentifier<InternalPortByFloatingIpPort> internalPortByFloatingIpIid(UniqueId floatingIpPortId) {
66         return InstanceIdentifier.builder(Mappings.class)
67                 .child(FloatingIpAssociationMappings.class)
68                 .child(InternalPortsByFloatingIpPorts.class)
69                 .child(InternalPortByFloatingIpPort.class, new InternalPortByFloatingIpPortKey(floatingIpPortId))
70                 .build();
71     }
72
73     public static InstanceIdentifier<InternalPortByFloatingIpPort> neutronGbpInternalPortByFloatingIpIidWildcard() {
74         return InstanceIdentifier.builder(Mappings.class)
75                 .child(FloatingIpAssociationMappings.class)
76                 .child(InternalPortsByFloatingIpPorts.class)
77                 .child(InternalPortByFloatingIpPort.class)
78                 .build();
79     }
80
81
82     public static InstanceIdentifier<NeutronByGbpMappings> neutronGbpMappingsIidWildcard() {
83         return InstanceIdentifier.builder(Mappings.class)
84                 .child(NeutronByGbpMappings.class)
85                 .build();
86     }
87 }