Merge "BUG 6396 neutron-ovsdb project migration to blueprint"
authorVladimir Lavor <vlavor@cisco.com>
Mon, 22 Aug 2016 11:52:14 +0000 (11:52 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 22 Aug 2016 11:52:14 +0000 (11:52 +0000)
neutron-ovsdb/src/main/config/default-config.xml
neutron-ovsdb/src/main/java/org/opendaylight/controller/config/yang/config/neutron_ovsdb/impl/NeutronOvsdbInstance.java [new file with mode: 0644]
neutron-ovsdb/src/main/java/org/opendaylight/controller/config/yang/config/neutron_ovsdb/impl/NeutronOvsdbModule.java
neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/NeutronOvsdb.java
neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/OvsdbNodeListener.java
neutron-ovsdb/src/main/resources/org/opendaylight/blueprint/neutron-ovsdb.xml [new file with mode: 0644]
neutron-ovsdb/src/main/yang/module-settings.yang [new file with mode: 0644]
neutron-ovsdb/src/main/yang/neutron-ovsdb-impl.yang
neutron-ovsdb/src/test/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/OvsdbNodeListenerTest.java

index 3953ededc7b66f6f95101fdf6bd310a68fefe9c1..cf74ea68f735abe5eed091a64ca28e4ababdb127 100644 (file)
                         neutron-ovsdb:neutron-ovsdb-impl
                     </type>
                     <name>neutron-ovsdb-impl</name>
-
-                    <rpc-registry>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                        <name>binding-rpc-broker</name>
-                    </rpc-registry>
-
-                    <data-broker>
-                      <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                      <name>binding-data-broker</name>
-                    </data-broker>
-
-                    <!-- Remove the following if integration bridge should not be automatically created on OVSDB node. -->
-                    <integration-bridge-setting>
-                        <name>br-int</name>
-                        <openflow-protocol>tcp</openflow-protocol>
-                        <openflow-port>6653</openflow-port>
-                    </integration-bridge-setting>
-
                 </module>
             </modules>
         </data>
diff --git a/neutron-ovsdb/src/main/java/org/opendaylight/controller/config/yang/config/neutron_ovsdb/impl/NeutronOvsdbInstance.java b/neutron-ovsdb/src/main/java/org/opendaylight/controller/config/yang/config/neutron_ovsdb/impl/NeutronOvsdbInstance.java
new file mode 100644 (file)
index 0000000..ce1a28c
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.groupbasedpolicy.neutron.ovsdb.NeutronOvsdb;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.ovsdb.params.rev160812.IntegrationBridgeSetting;
+
+public class NeutronOvsdbInstance implements AutoCloseable{
+
+    private NeutronOvsdb neutronOvsdb;
+
+    public NeutronOvsdbInstance(DataBroker dataBroker, EndpointService epService,
+            IntegrationBridgeSetting settings) {
+        neutronOvsdb = new NeutronOvsdb(dataBroker, epService, settings);
+    }
+
+    @Override
+    public void close() throws Exception {
+        neutronOvsdb.close();
+    }
+
+}
index d8137644b901cf33f8196597e295f2313a0ccd56..58694c0eaeb746dface96554351d67513917e00f 100644 (file)
@@ -8,7 +8,7 @@
 
 package org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl;
 
-import org.opendaylight.groupbasedpolicy.neutron.ovsdb.NeutronOvsdb;
+import org.opendaylight.controller.sal.common.util.NoopAutoCloseable;
 import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -33,10 +33,7 @@ public class NeutronOvsdbModule extends org.opendaylight.controller.config.yang.
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-        final NeutronOvsdb neutronOvsdb = new NeutronOvsdb(getDataBrokerDependency(), getRpcRegistryDependency(),
-                getIntegrationBridgeSetting());
-        LOG.info("Neutron ovsdb started.");
-        return neutronOvsdb;
+        return NoopAutoCloseable.INSTANCE;
     }
 
     public void setBundleContext(BundleContext bundleContext) {
index f5d389f8fd170de1c90b4368b9dc057055841189..175b5c76922a056bd5f6b6f27cb45708852a10cc 100644 (file)
@@ -10,10 +10,9 @@ package org.opendaylight.groupbasedpolicy.neutron.ovsdb;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
-import org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.IntegrationBridgeSetting;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.ovsdb.params.rev160812.IntegrationBridgeSetting;
 
 public class NeutronOvsdb implements AutoCloseable {
 
@@ -22,12 +21,9 @@ public class NeutronOvsdb implements AutoCloseable {
     private final OvsdbNodeListener ovsdbNodeListener;
     private final ProviderPhysicalNetworkListener provPhysNetListener;
 
-    public NeutronOvsdb(DataBroker dataProvider, RpcProviderRegistry rpcProvider,
+    public NeutronOvsdb(DataBroker dataProvider, EndpointService epService,
             IntegrationBridgeSetting integrationbridgeSettings) {
         checkNotNull(dataProvider);
-        checkNotNull(rpcProvider);
-
-        EndpointService epService = rpcProvider.getRpcService(EndpointService.class);
         tpListener = new TerminationPointDataChangeListener(dataProvider, epService);
         ovsdbNodeListener = new OvsdbNodeListener(dataProvider, integrationbridgeSettings);
         portByEndpointListener = new PortByEndpointListener(dataProvider);
index 9c8f220ecc6f72c62185f8dd1906fdaf425ed039..14f953c5d9b86c17a25734008fad2cfc6a00c5c9 100644 (file)
@@ -15,13 +15,14 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 
+
 import com.google.common.base.Function;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
-import org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.IntegrationBridgeSetting;
+
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
@@ -32,6 +33,7 @@ import org.opendaylight.groupbasedpolicy.neutron.ovsdb.util.NeutronOvsdbIidFacto
 import org.opendaylight.groupbasedpolicy.util.DataTreeChangeHandler;
 import org.opendaylight.ovsdb.southbound.SouthboundConstants;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.ovsdb.params.rev160812.IntegrationBridgeSetting;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem;
diff --git a/neutron-ovsdb/src/main/resources/org/opendaylight/blueprint/neutron-ovsdb.xml b/neutron-ovsdb/src/main/resources/org/opendaylight/blueprint/neutron-ovsdb.xml
new file mode 100644 (file)
index 0000000..aa4fc4e
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+           odl:use-default-for-reference-types="true">
+
+    <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"/>
+    <odl:rpc-service id="epService" interface="org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService"/>
+
+    <odl:clustered-app-config id="moduleConfig"
+        binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.ovsdb.params.rev160812.IntegrationBridgeSetting">
+        <odl:default-config><![CDATA[
+            <integration-bridge-setting xmlns="urn:opendaylight:groupbasedpolicy:neutron:ovsdb:params">
+                <name>br-int</name>
+                <openflow-port>6653</openflow-port>
+                <openflow-protocol>tcp</openflow-protocol>
+            </integration-bridge-setting>
+            ]]>
+        </odl:default-config>
+    </odl:clustered-app-config>
+
+    <bean id="neutronOvsdb" class="org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.NeutronOvsdbInstance"
+        destroy-method="close">
+        <argument ref="dataBroker"/>
+        <argument ref="epService"/>
+        <argument ref="moduleConfig"/>
+    </bean>
+</blueprint>
\ No newline at end of file
diff --git a/neutron-ovsdb/src/main/yang/module-settings.yang b/neutron-ovsdb/src/main/yang/module-settings.yang
new file mode 100644 (file)
index 0000000..6ae12cb
--- /dev/null
@@ -0,0 +1,35 @@
+module neutron-ovsdb-impl {
+
+    yang-version 1;
+    namespace "urn:opendaylight:groupbasedpolicy:neutron:ovsdb:params";
+    prefix "neutron-ovsdb-params";
+
+    import config { prefix config; revision-date 2013-04-05; }
+    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
+
+    description
+        "This module contains the base YANG definitions for
+        neutron-ovsdb mudule params.";
+
+    revision "2016-08-12" {
+        description
+            "Initial revision.";
+    }
+
+    container integration-bridge-setting {
+        leaf name {
+            mandatory true;
+            type string;
+        }
+        leaf openflow-port {
+            mandatory true;
+            type uint16;
+        }
+        leaf openflow-protocol {
+            mandatory true;
+            type string {
+                pattern "^tcp$|^udp$";
+           }
+        }
+    }
+}
\ No newline at end of file
index 5f3e3052cef31f426b15609355365bdeb40e9287..dc747f320bcd56109fd08f7a461c4f0a21603987 100644 (file)
@@ -28,41 +28,6 @@ module neutron-ovsdb-impl {
     augment "/config:modules/config:module/config:configuration" {
         case neutron-ovsdb-impl {
             when "/config:modules/config:module/config:type = 'neutron-ovsdb-impl'";
-
-            container data-broker {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity mdsal:binding-async-data-broker;
-                    }
-                }
-            }
-
-            container rpc-registry {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity mdsal:binding-rpc-registry;
-                    }
-                }
-            }
-
-            container integration-bridge-setting {
-                leaf name {
-                    mandatory true;
-                    type string;
-                }
-                leaf openflow-port {
-                    mandatory true;
-                    type uint16;
-                }
-                leaf openflow-protocol {
-                    mandatory true;
-                    type string {
-                        pattern "^tcp$|^udp$";
-                   }
-                }
-            }
         }
     }
 }
index decb413013c01063a2d201ee14c2101990a79bf9..4c7c27aa64fdbb5952ec91dc304875e70d189631 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.groupbasedpolicy.neutron.ovsdb;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -24,7 +23,6 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.CheckedFuture;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.IntegrationBridgeSetting;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
@@ -36,6 +34,8 @@ import org.opendaylight.groupbasedpolicy.neutron.ovsdb.util.NeutronOvsdbIidFacto
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.ovsdb.params.rev160812.IntegrationBridgeSetting;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.ovsdb.params.rev160812.IntegrationBridgeSettingBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentationBuilder;
@@ -87,10 +87,11 @@ public class OvsdbNodeListenerTest {
     @Before
     public void init() {
         dataBroker = mock(DataBroker.class);
-        integrationBridgeSetting = new IntegrationBridgeSetting();
-        integrationBridgeSetting.setName("bridgeName");
-        integrationBridgeSetting.setOpenflowProtocol("ooofff");
-        integrationBridgeSetting.setOpenflowPort(1234);
+        integrationBridgeSetting = new IntegrationBridgeSettingBuilder()
+                .setName("bridgeName")
+                .setOpenflowProtocol("ooofff")
+                .setOpenflowPort(1234)
+                .build();
 
         rootNode = mock(DataObjectModification.class);
         rootIdentifier = NeutronOvsdbIidFactory.nodeIid(topologyId, nodeId);