Introduced renderer yang API 31/37431/17
authorMartin Sunal <msunal@cisco.com>
Mon, 11 Apr 2016 11:07:14 +0000 (13:07 +0200)
committerMartin Sunal <msunal@cisco.com>
Fri, 6 May 2016 14:40:32 +0000 (16:40 +0200)
renderer.yang

Change-Id: I5ff655a9e0b5d9b98fcbcbbed34614672b8302d6
Signed-off-by: Martin Sunal <msunal@cisco.com>
groupbasedpolicy/src/main/yang/model/base-endpoint.yang
groupbasedpolicy/src/main/yang/model/endpoint-location-provider.yang
groupbasedpolicy/src/main/yang/model/forwarding.yang
groupbasedpolicy/src/main/yang/model/l2-l3-forwarding.yang
groupbasedpolicy/src/main/yang/model/renderer.yang
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperProviderImpl.java
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImplTest.java

index 6936a2978f69126ba13fd860260bec923ea05ce0..b297b0e97414f4961d27eb09839aae16d6c7468b 100644 (file)
@@ -9,7 +9,7 @@
 module base-endpoint {
     yang-version 1;
 
-    namespace "urn:opendaylight:groupbasedpolicy:endpoints";
+    namespace "urn:opendaylight:groupbasedpolicy:base_endpoint";
     prefix "base-endpoint";
 
     import gbp-common { prefix gbp-common; revision-date 2014-04-21; }
@@ -21,6 +21,7 @@ module base-endpoint {
     }
 
     grouping address-endpoint-key {
+        uses forwarding:context-key;
         uses forwarding:has-address-type;
         leaf address {
             type string;
@@ -28,15 +29,10 @@ module base-endpoint {
         }
     }
 
-    grouping endpoint-key {
-        uses forwarding:context-key;
-        uses address-endpoint-key;
-    }
-
     grouping has-child-endpoints {
         list child-endpoint {
             key "context-type context-id address-type address";
-            uses endpoint-key;
+            uses address-endpoint-key;
         }
     }
 
@@ -51,7 +47,7 @@ module base-endpoint {
             case parent-endpoint-case {
                 list parent-endpoint {
                     key "context-type context-id address-type address";
-                    uses endpoint-key;
+                    uses address-endpoint-key;
                 }
             }
         }
@@ -91,6 +87,18 @@ module base-endpoint {
         }
     }
 
+    grouping address-endpoint-fields {
+        uses address-endpoint-key;
+        uses parent-child-endpoints;
+        uses common-endpoint-fields;
+    }
+
+    grouping containment-endpoint-fields {
+        uses forwarding:context-key;
+        uses has-child-endpoints;
+        uses common-endpoint-fields;
+    }
+
     grouping has-endpoint-group-conditions {
         description
                 "Base type for object with endpoint group to condition mappings.";
@@ -162,33 +170,25 @@ module base-endpoint {
                 for policy resolution.";
         config false;
 
-        list address-endpoints-by-containment {
-            key "context-type context-id";
-            uses forwarding:context-key;
-
+        container address-endpoints {
             list address-endpoint {
-                key "address-type address";
-                uses address-endpoint-key;
-
-                uses parent-child-endpoints;
-                uses common-endpoint-fields;
-                min-elements 1;
+                key "context-type context-id address-type address";
+                uses address-endpoint-fields;
             }
         }
 
-        list containment-endpoint {
-            key "context-type context-id";
-            uses forwarding:context-key;
-
-            uses has-child-endpoints;
-            uses common-endpoint-fields;
+        container containment-endpoints {
+            list containment-endpoint {
+                key "context-type context-id";
+                uses containment-endpoint-fields;
+            }
         }
     }
 
     container endpoint-locations {
         list address-endpoint-location {
             key "context-type context-id address-type address";
-            uses endpoint-key;
+            uses address-endpoint-key;
             uses has-location;
         }
 
@@ -208,18 +208,12 @@ module base-endpoint {
         input {
             list address-endpoint-reg {
                 key "context-type context-id address-type address";
-                uses endpoint-key;
-
-                uses parent-child-endpoints;
-                uses common-endpoint-fields;
+                uses address-endpoint-fields;
                 uses has-location;
             }
             list containment-endpoint-reg {
                 key "context-type context-id";
-                uses forwarding:context-key;
-
-                uses has-child-endpoints;
-                uses common-endpoint-fields;
+                uses containment-endpoint-fields;
                 uses has-location;
             }
         }
@@ -231,7 +225,7 @@ module base-endpoint {
         input {
             list address-endpoint-unreg {
                 key "context-type context-id address-type address";
-                uses endpoint-key;
+                uses address-endpoint-key;
             }
             list containment-endpoint-unreg {
                 key "context-type context-id";
index 0eeacff2f2a83e34aa1f4ac600e433b0b5bd99a3..9e1f19b39a825aa0c2fd5f883093934995aeb7b2 100644 (file)
@@ -6,11 +6,11 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
  */\r
 \r
-module endpoint-locations {\r
+module endpoint-location-provider {\r
     yang-version 1;\r
 \r
-    namespace "urn:opendaylight:groupbasedpolicy:endpoint:location";\r
-    prefix "endpoints-location";\r
+    namespace "urn:opendaylight:groupbasedpolicy:endpoint_location_provider";\r
+    prefix "ep-loc-provider";\r
 \r
     import base-endpoint { prefix base-endpoint; revision-date 2016-04-27; }\r
     import forwarding { prefix forwarding; revision-date 2016-04-27; }\r
@@ -27,18 +27,18 @@ module endpoint-locations {
         type string;\r
     }\r
 \r
-    container endpoint-locations {\r
+    container location-providers {\r
         list location-provider {\r
             key "provider";\r
             leaf provider {\r
                 type provider-name;\r
             }\r
-            list endpoint-location {\r
+            list provider-address-endpoint-location {\r
                 key "context-type context-id address-type address";\r
-                uses base-endpoint:endpoint-key;\r
+                uses base-endpoint:address-endpoint-key;\r
                 uses base-endpoint:has-location;\r
             }\r
-            list containment-endpoint-location {\r
+            list provider-containment-endpoint-location {\r
                 key "context-type context-id";\r
                 uses forwarding:context-key;\r
                 uses base-endpoint:has-location;\r
index a191cc11d6ed37a735e067d5ed6b1643ea8d4f0c..d39e0e4a4d985189fb83fc50c341e08390f4baed 100644 (file)
@@ -82,35 +82,39 @@ module forwarding {
         }
     }
 
-    container forwarding {
-        list forwarding-by-tenant {
-            key tenant-id;
-            leaf tenant-id {
-                type gbp-common:tenant-id;
-                description
-                            "The tenant with which forwarding-context is associated";
-            }
+    grouping forwarding-with-tenant-fields {
+        leaf tenant-id {
+            type gbp-common:tenant-id;
+            description
+                        "The tenant with which forwarding-context is associated";
+        }
 
-            list forwarding-context {
-                key "context-type context-id";
-                uses context-key;
+        list forwarding-context {
+            key "context-type context-id";
+            uses context-key;
 
-                uses has-address-type;
-                container parent {
-                    uses context-key;
-                }
+            uses has-address-type;
+            container parent {
+                uses context-key;
             }
+        }
 
-            list network-domain {
-                key "network-domain-type network-domain-id";
-                uses network-domain-key;
-
-                container parent {
-                    uses context-key;
-                }
+        list network-domain {
+            key "network-domain-type network-domain-id";
+            uses network-domain-key;
 
-                description "Network domain can be augmented with further information.";
+            container parent {
+                uses context-key;
             }
+
+            description "Network domain can be augmented with further information.";
+        }
+    }
+
+    container forwarding {
+        list forwarding-by-tenant {
+            key tenant-id;
+            uses forwarding-with-tenant-fields;
         }
     }
 
index 9f2537686fce54e411635751f96a36169304169b..8be4874cf369d579a833b291e16c5ff8b5734f2c 100644 (file)
@@ -44,7 +44,7 @@ module l2-l3-forwarding {
     }
 
     identity ip-prefix-type {
-        description "Values by IP prefix type MUST be compatible with type ietf-inet-types:ipv-prefix.
+        description "Values by IP prefix type MUST be compatible with type ietf-inet-types:ip-prefix.
             This address type can be used only if forwarding:context-type is l3-context.";
         base forwarding:address-type;
     }
index 7acec21494ec2f0f3ec93d1279461d4f5c11d697..e66fc1f37222a1f967b0f2b17127ba9c7afa7190 100755 (executable)
@@ -12,18 +12,12 @@ module renderer {
     namespace "urn:opendaylight:groupbasedpolicy:renderer";
     prefix "gbp-renderer";
 
-    import gbp-common {
-        prefix gbp-common;
-        revision-date 2014-04-21;
-    }
-    import policy {
-        prefix policy;
-        revision-date 2014-04-21;
-    }
-    import ietf-inet-types {
-        prefix inet;
-        revision-date 2010-09-24;
-    }
+    import gbp-common { prefix gbp-common; revision-date 2014-04-21; }
+    import policy { prefix policy; revision-date 2014-04-21; }
+    import resolved-policy { prefix resolved-policy; revision-date 2015-08-28; }
+    import base-endpoint { prefix base-endpoint; revision-date 2016-04-27; }
+    import forwarding { prefix forwarding; revision-date 2016-04-27; }
+    import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
 
     description
         "This module defines renderer capabilities.";
@@ -38,6 +32,17 @@ module renderer {
         description "A name for a renderer";
     }
 
+    typedef policy-name {
+        type string;
+    }
+
+    typedef endpoint-policy-participation {
+        type enumeration {
+            enum PROVIDER;
+            enum CONSUMER;
+        }
+    }
+
     grouping supported-string-value-fields {
         list supported-string-value {
             description "String value has to be identical.";
@@ -95,25 +100,190 @@ module renderer {
         }
     }
 
+    grouping has-peer-endpoints {
+        list peer-endpoint {
+            key "context-type context-id address-type address";
+            uses base-endpoint:address-endpoint-key;
+        }
+    }
+
+    grouping has-peer-containment-endpoints {
+        list peer-containment-endpoint {
+            key "context-type context-id";
+            uses forwarding:context-key;
+        }
+    }
+
+    grouping has-peer-external-endpoints {
+        list peer-external-endpoint {
+            key "context-type context-id address-type address";
+            uses base-endpoint:address-endpoint-key;
+        }
+    }
+
+    grouping has-peer-external-containment-endpoints {
+        list peer-external-containment-endpoint {
+            key "context-type context-id";
+            uses forwarding:context-key;
+        }
+    }
+
+    grouping has-renderer-name {
+        leaf renderer-name {
+            type renderer-name;
+            mandatory true;
+        }
+    }
+
     container renderers {
         description
             "Leaf containing all renderers' description.";
 
-        config false;
-
         list renderer {
             description
-                "A renderer provides a list of capabilities.";
+                "A renderer provides a list of capabilities and status about configured policy.
+                The renderer must store data only to OPER!";
 
             key name;
-
             leaf name {
                 description
                     "A user-visible name for the renderer.";
                 type renderer-name;
             }
 
+            container renderer-nodes {
+                description "Contains location of nodes (network elements) which are configured by the renderer.";
+
+                config false;
+
+                list renderer-node {
+                    key "node-path";
+                    leaf node-path {
+                        description "Path to the node where policy needs to be enforced.";
+                        type instance-identifier;
+                    }
+                }
+            }
+
+            container renderer-policy {
+                description "Policy is named by version and describes desired vs real state.
+                    Desired state of policy described by /renderers/renderer/renderer-policy/configuration and version are stored in CONF.
+                    The real state of policy described by /renderers/renderer/renderer-policy/status and version are stored in OPER.";
+
+                leaf version {
+                    description
+                        "Version in CONF represents desired state of policy while version in OPER means real state.";
+                    type uint32;
+                    mandatory true;
+                }
+
+                container configuration {
+                    description "Renderer tries to apply given policy on devices.";
+                    container endpoint-resolved-policies {
+                        list endpoint-resolved-policy {
+                            description "Policy between renderer-endpoints and peer-endpoints.";
+                            key policy-name;
+                            leaf policy-name {
+                                description "Key is here only as workaround for bugs around unkeyed list. It can be removed anytime.";
+                                type policy-name;
+                            }
+
+                            container resolved-policy {
+                                list rule-group-with-renderer-endpoint-participation {
+                                    description "A specific policy rule group that apply to pair of endpoints.
+                                        Entire rule-group is located on /renderers/renderer/renderer-policy/configuration/rule-groups/rule-group";
+                                    key "tenant-id contract-id subject-name renderer-endpoint-participation";
+                                    uses resolved-policy:has-subject-key;
+                                    leaf renderer-endpoint-participation {
+                                        type endpoint-policy-participation;
+                                    }
+                                }
+                            }
+
+                            container renderer-endpoints-and-peers {
+                                description "Every renderer-endpoint has the same set of peer-endpoints.
+                                    A renderer should not configure a policy when renderer-endpoint is peer-endpoint.";
+                                list renderer-endpoint {
+                                    key "context-type context-id address-type address";
+                                    uses base-endpoint:address-endpoint-key;
+                                }
+                                uses has-peer-endpoints;
+                                uses has-peer-external-endpoints;
+                                uses has-peer-external-containment-endpoints;
+                            }
+                        }
+                    }
+
+                    container rule-groups {
+                        list rule-group {
+                            description "A specific policy rule group that apply to pair of endpoints.
+                                The policy rule group represents the subject with resolved rules.";
+                            key "tenant-id contract-id subject-name";
+                            uses resolved-policy:has-subject-key;
+
+                            uses policy:has-order;
+                            uses resolved-policy:has-resolved-rules;
+                        }
+                    }
+
+                    container endpoints {
+                        list address-endpoint-with-location {
+                            key "context-type context-id address-type address";
+                            uses base-endpoint:address-endpoint-fields;
+                            uses base-endpoint:has-location;
+                            uses has-renderer-name;
+                        }
+
+                        list containment-endpoint-with-location {
+                            key "context-type context-id";
+                            uses base-endpoint:address-endpoint-fields;
+                            uses base-endpoint:has-location;
+                        }
+                    }
+
+                    container forwarding-contexts {
+                        list forwarding-context-by-tenant {
+                            key tenant-id;
+                            uses forwarding:forwarding-with-tenant-fields;
+                        }
+                    }
+                }
+
+                container status {
+                    description "The renderer exposes status of policy here.";
+                    config false;
+
+                    list unconfigured-rule {
+                        key "tenant-id contract-id subject-name renderer-endpoint-participation rule-name";
+                        uses resolved-policy:has-subject-key;
+                        leaf renderer-endpoint-participation {
+                            type endpoint-policy-participation;
+                        }
+                        leaf rule-name {
+                            type gbp-common:rule-name;
+                        }
+
+                        container renderer-endpoints-with-peers {
+                            list renderer-endpoint-with-peers {
+                                key "context-type context-id address-type address";
+                                uses base-endpoint:address-endpoint-key;
+
+                                uses has-peer-endpoints;
+                                uses has-peer-external-endpoints;
+                                uses has-peer-external-containment-endpoints;
+                            }
+                        }
+                    }
+                }
+            }
+
+            // TODO remove - does not make sense anymore
             container interests {
+
+                status deprecated;
+
+                config false;
+
                 description "Represents interests of the renderer.";
 
                 container followed-tenants {
@@ -141,8 +311,10 @@ module renderer {
                 }
             }
 
-
             container capabilities {
+
+                config false;
+
                 description "Capabilities this renderer provides.";
 
                 list supported-classifier-definition {
index 0a2fa3830c7ea76708aac19f1d244cfd993ffe49..8cd816c87f50d1cc55b6991f48841060a8583368 100644 (file)
@@ -23,7 +23,7 @@ import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen.EPForwardingTemp
 import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen.EPPolicyTemplateListenerImpl;
 import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen.MasterDatabaseBindingListenerImpl;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.BaseEndpointService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
index 1aa20ed4f126d4fa0d920e55902441650d5e6b18..89bc8f48cab0dea1e27dc461a479e214d608bd39 100644 (file)
@@ -8,14 +8,8 @@
 
 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.JdkFutureAdapters;
-import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Collections;
+
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -23,19 +17,18 @@ import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
 import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.Endpoints;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.AddressEndpoints;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointReg;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointRegBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.BaseEndpointService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.Endpoints;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.RegisterEndpointInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.RegisterEndpointInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.common.endpoint.fields.NetworkContainment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.common.endpoint.fields.NetworkContainmentBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.endpoints.AddressEndpointsByContainment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.endpoints.AddressEndpointsByContainmentKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.endpoints.address.endpoints.by.containment.AddressEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.endpoints.address.endpoints.by.containment.AddressEndpointKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.register.endpoint.input.AddressEndpointReg;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.register.endpoint.input.AddressEndpointRegBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev160427.IpPrefixType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev160427.L3Context;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
@@ -47,6 +40,14 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.util.concurrent.AsyncFunction;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.JdkFutureAdapters;
+import com.google.common.util.concurrent.ListenableFuture;
+
 /**
  * Purpose: exclusively processes sxp master database changes and EGP templates changes
  */
@@ -95,9 +96,8 @@ public class SxpMapperReactorImpl implements SxpMapperReactor {
     private CheckedFuture<Optional<AddressEndpoint>, ReadFailedException> findExistingEndPoint(final ContextId containment,
                                                                                           final String address) {
         KeyedInstanceIdentifier<AddressEndpoint, AddressEndpointKey> addressEndpointPath =
-                InstanceIdentifier.create(Endpoints.class)
-                .child(AddressEndpointsByContainment.class, new AddressEndpointsByContainmentKey(containment, L3Context.class))
-                .child(AddressEndpoint.class, new AddressEndpointKey(address, IpPrefixType.class));
+                InstanceIdentifier.create(Endpoints.class).child(AddressEndpoints.class).child(AddressEndpoint.class,
+                        new AddressEndpointKey(address, IpPrefixType.class, containment, L3Context.class));
         final ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction();
         final CheckedFuture<Optional<AddressEndpoint>, ReadFailedException> read = rTx.read(
                 LogicalDatastoreType.OPERATIONAL, addressEndpointPath);
index 87188df3fa24eb4b8e12ef17dcf4882bdeb91bb0..738883cd846f392432879fa4831990c3afe0f82d 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.Futures;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -22,9 +20,9 @@ import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.BaseEndpointService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.RegisterEndpointInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoints.rev160427.endpoints.address.endpoints.by.containment.AddressEndpoint;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.endpoint.forwarding.template.by.subnet.NetworkContainment;
@@ -32,6 +30,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.mast
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.Futures;
+
 /**
  * Test for {@link SxpMapperReactorImpl}.
  */