Neutron YANG model revision: Fix compilation issues 84/40784/5
authorRitu Sood <ritu.sood@intel.com>
Tue, 14 Jun 2016 00:14:52 +0000 (17:14 -0700)
committerSridhar Gaddam <sgaddam@redhat.com>
Mon, 27 Jun 2016 08:37:02 +0000 (14:07 +0530)
1. This patch implements the necessary changes required
   in the routermanager branch for the updated neutron yang
   model and removes the dependency on neutron.spi
2. We now use non lithium openflowplugin dependencies
   (without "-li" version)
3. It also includes the following cherry-pics:

neutron: unbreak of neutron northbound yang model revise

This patch provides the corresponding change needed to fix
compilation issues after the Yang model revise
Neutron changes:
https://git.opendaylight.org/gerrit/#/q/project:neutron+branch:master+topic:yang-model-revise

Conflicts:
netvirt/renderers/neutron/src/test/java/org/opendaylight/netvirt/netvirt/renderers/neutron/NeutronPortDataProcessorTest.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronSecurityGroupInterface.java
utils/neutron-utils/src/main/java/org/opendaylight/netvirt/utils/neutron/utils/NeutronUtils.java
vpnservice/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/netvirt/dhcpservice/DhcpExternalTunnelManager.java
vpnservice/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/netvirt/dhcpservice/DhcpInterfaceEventListener.java
vpnservice/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/netvirt/dhcpservice/DhcpNeutronPortListener.java
vpnservice/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/netvirt/dhcpservice/DhcpPktHandler.java
vpnservice/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/netvirt/dhcpservice/DhcpServiceUtils.java
vpnservice/features/pom.xml
vpnservice/features/src/main/features/features.xml
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronNetworkChangeListener.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronRouterChangeListener.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronSubnetChangeListener.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnProvider.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java
vpnservice/neutronvpn/neutronvpn-impl/src/test/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListenerTest.java

Change-Id: I15850089233d72038a70e1edcb4db1e69445fe57
Signed-off-by: Ritu Sood <ritu.sood@intel.com>
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
(cherry picked from commit 974c63817c6999aa29de9756d677f9356cbfc363)

translator: remove dependency of neutron.spi

netvirt still had a dependency on netutron.spi. which seems accidentally
remained when netvirt migrated from I*Aware AD-SAL to MD-SAL.
This patch removes its dependency and finish its migration with the only
dependency is neutron yang model.
In order to avoid circular dependency, NeutronModelsDataStoreHelper was
moved from neutron.util to net-virt.

Conflicts:
features/pom.xml
features/src/main/features/features.xml
netvirt/it/src/test/java/org/opendaylight/netvirt/netvirt/it/NetvirtIT.java
openstack/net-virt-it/src/test/java/org/opendaylight/netvirt/openstack/netvirt/it/NetvirtIT.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/ConfigActivator.java
utils/it-utils/pom.xml
utils/netvirt-it-utils/src/main/java/org/opendaylight/netvirt/utils/netvirt/it/utils/NeutronNetItUtil.java
utils/neutron-utils/src/main/java/org/opendaylight/netvirt/utils/neutron/utils/NeutronUtils.java

Change-Id: I09628c39a2df85bc18d930639965d5a466134658
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
(cherry picked from commit 073819fa1c920e2e759737de60175a08c7faa3aa)

Change-Id: Ia189e0c0e9c934815ef019840fa948a7f971c3b6
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
43 files changed:
features/pom.xml
features/src/main/features/features.xml
netvirt/it/pom.xml
netvirt/it/src/test/java/org/opendaylight/netvirt/netvirt/it/NetvirtIT.java
openstack/net-virt-it/src/test/java/org/opendaylight/netvirt/openstack/netvirt/it/NetvirtIT.java
openstack/net-virt-it/src/test/java/org/opendaylight/netvirt/openstack/netvirt/it/NeutronUtils.java
openstack/net-virt-providers/src/main/java/org/opendaylight/netvirt/openstack/netvirt/providers/openflow13/services/EgressAclService.java
openstack/net-virt-providers/src/main/java/org/opendaylight/netvirt/openstack/netvirt/providers/openflow13/services/IngressAclService.java
openstack/net-virt-providers/src/test/java/org/opendaylight/netvirt/openstack/netvirt/providers/openflow13/services/EgressAclServiceTest.java
openstack/net-virt-providers/src/test/java/org/opendaylight/netvirt/openstack/netvirt/providers/openflow13/services/IngressAclServiceTest.java
openstack/net-virt/pom.xml
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/ConfigActivator.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/NeutronModelsDataStoreHelper.java [moved from utils/neutron-utils/src/main/java/org/opendaylight/netvirt/utils/neutron/utils/NeutronModelsDataStoreHelper.java with 98% similarity]
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/impl/NeutronL3Adapter.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/impl/SecurityGroupCacheManagerImpl.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/NeutronPort.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/NeutronRouter.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/NeutronSecurityGroup.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronLoadBalancerInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronLoadBalancerPoolInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronPortInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronRouterInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronSecurityGroupInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronSecurityRuleInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronSubnetInterface.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/iaware/impl/NeutronLoadBalancerPoolChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/iaware/impl/NeutronPortChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/iaware/impl/NeutronRouterChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/iaware/impl/NeutronSecurityGroupDataChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/iaware/impl/NeutronSecurityRuleDataChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/iaware/impl/NeutronSubnetChangeListener.java
openstack/net-virt/src/test/java/org/opendaylight/netvirt/openstack/netvirt/impl/SecurityGroupCacheManagerImplTest.java
openstack/net-virt/src/test/java/org/opendaylight/netvirt/openstack/netvirt/impl/SecurityServicesImplTest.java
routemgr/routemgr-features/pom.xml
routemgr/routemgr-features/src/main/features/features.xml
routemgr/routemgr-impl/src/main/java/org/opendaylight/netvirt/routemgr/net/IfMgr.java
routemgr/routemgr-impl/src/main/java/org/opendaylight/netvirt/routemgr/net/NetDataListener.java
routemgr/routemgr-impl/src/main/java/org/opendaylight/netvirt/routemgr/net/PktHandler.java
routemgr/routemgr-impl/src/main/java/org/opendaylight/netvirt/routemgr/net/VirtualSubnet.java
routemgr/routemgr-impl/src/test/java/org/opendaylight/netvirt/routemgr/net/PktHandlerTest.java
utils/it-utils/pom.xml
utils/neutron-utils/pom.xml
utils/neutron-utils/src/main/java/org/opendaylight/netvirt/utils/neutron/utils/NeutronUtils.java

index 513e00f9e0a8d4813e0b9ab31694205b9468a4a8..dac9dc1de93001072d8bf2c6e26e9b9c418b90c6 100644 (file)
@@ -171,20 +171,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <classifier>features</classifier>
       <type>xml</type>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.openflowplugin</groupId>
-      <artifactId>features-openflowplugin-li</artifactId>
-      <version>${openflowplugin.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.openflowplugin</groupId>
-      <artifactId>features-openflowplugin-extension-li</artifactId>
-      <version>${openflowplugin.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>openstack.net-virt</artifactId>
@@ -240,6 +226,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>utils.neutron-utils</artifactId>
+      <version>${project.version}</version>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>ovsdb-ui-bundle</artifactId>
index b6e0835daa4129a36bbfe832d051c99b0c0f32a4..1dd9ec8eea81c40a03f2647cec2e9ddf39fd635f 100644 (file)
@@ -8,8 +8,6 @@
   <repository>mvn:org.opendaylight.netconf/features-restconf/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin-extension/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin-extension-li/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin-li/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.neutron/features-neutron/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.ovsdb/hwvtepsouthbound-features/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.ovsdb/southbound-features/{{VERSION}}/xml/features</repository>
     <bundle>mvn:org.opendaylight.netvirt/utils.it-utils/{{VERSION}}</bundle>
   </feature>
 
-  <feature name="odl-ovsdb-openstack-clusteraware" description="OpenDaylight :: OVSDB :: OpenStack Network Virtualization - Cluster Aware"
-           version='${project.version}'>
-    <feature version='${controller.mdsal.version}'>odl-mdsal-broker</feature>
-    <feature version="${openflowplugin.version}">odl-openflowplugin-nsf-model-li</feature>
-    <feature version="${neutron.version}">odl-neutron-service</feature>
-    <feature version="${ovsdb.version}">odl-ovsdb-southbound-impl</feature>
-    <feature version="${openflowplugin.version}">odl-openflowplugin-flow-services-li</feature>
-    <feature version="${openflowplugin.version}">odl-openflowplugin-nxm-extensions-li</feature>
-    <bundle>mvn:org.opendaylight.netvirt/utils.servicehelper/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.netvirt/utils.neutron-utils/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.netvirt/utils.mdsal-utils/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.ovsdb/utils.mdsal-utils/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.ovsdb/utils.southbound-utils/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.netvirt/openstack.net-virt/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.netvirt/openstack.net-virt-providers/{{VERSION}}</bundle>
-    <bundle>mvn:commons-net/commons-net/{{VERSION}}</bundle>
-    <bundle>wrap:mvn:com.googlecode.java-ipv6/java-ipv6/{{VERSION}}</bundle>
-    <configfile finalname="etc/opendaylight/karaf/netvirt-impl-default-config.xml">mvn:org.opendaylight.netvirt/openstack.net-virt/{{VERSION}}/xml/config</configfile>
-    <configfile finalname="etc/opendaylight/karaf/netvirt-providers-impl-default-config.xml">mvn:org.opendaylight.netvirt/openstack.net-virt-providers/{{VERSION}}/xml/config</configfile>
-  </feature>
-
   <feature name="odl-ovsdb-ui" description="OpenDaylight :: OVSDB :: DLUX Integration Plugin" version='${project.version}'>
     <feature version="${dlux.version}">odl-dlux-core</feature>
     <bundle>mvn:org.opendaylight.netvirt/ovsdb-ui-bundle/{{VERSION}}</bundle>
     <feature version="${neutron.version}">odl-neutron-service</feature>
     <feature version="${project.version}">odl-netvirt-neutron</feature>
     <feature version="${ovsdb.version}">odl-ovsdb-southbound-api</feature>
-    <bundle>mvn:org.opendaylight.netvirt/utils.it-utils/{{VERSION}}</bundle>
+    <feature version="${openflowplugin.version}">odl-openflowplugin-nsf-model</feature>
+    <feature version="${openflowplugin.version}">odl-openflowplugin-nxm-extensions</feature>
+    <bundle>mvn:org.opendaylight.netvirt/openstack.net-virt/{{VERSION}}</bundle>
+    <bundle>mvn:org.opendaylight.netvirt/utils.servicehelper/{{VERSION}}</bundle>
+    <bundle>mvn:org.opendaylight.netvirt/utils.neutron-utils/{{VERSION}}</bundle>
     <bundle>mvn:org.opendaylight.netvirt/utils.mdsal-utils/{{VERSION}}</bundle>
     <bundle>mvn:org.opendaylight.netvirt/utils.neutron-utils/{{VERSION}}</bundle>
     <bundle>mvn:org.opendaylight.netvirt/utils.servicehelper/{{VERSION}}</bundle>
index 9130f74cc184503cd1057a440516c0c91387c0bb..52974a6bd4eed168f20ce35322e501fbe0eaff88 100644 (file)
@@ -73,6 +73,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <artifactId>utils.neutron-utils</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>openstack.net-virt</artifactId>
+      <version>${project.version}</version>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.ovsdb</groupId>
       <artifactId>utils.mdsal-utils</artifactId>
index 62a132ea90fed4dbc1b11fb6d6912dd7f6e0990b..493cd65d67c3275dba089dfb8907b8d0b898f5b5 100644 (file)
@@ -35,10 +35,10 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.neutron.spi.NeutronNetwork;
-import org.opendaylight.netvirt.utils.it.utils.ItConstants;
-import org.opendaylight.netvirt.utils.it.utils.ItUtils;
-import org.opendaylight.netvirt.utils.neutron.utils.NeutronModelsDataStoreHelper;
+import org.opendaylight.netvirt.openstack.netvirt.NeutronModelsDataStoreHelper;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.NeutronNetwork;
+import org.opendaylight.netvirt.utils.netvirt.it.utils.ItConstants;
+import org.opendaylight.netvirt.utils.netvirt.it.utils.NetvirtItUtils;
 import org.opendaylight.netvirt.utils.neutron.utils.NeutronUtils;
 import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils;
 import org.opendaylight.ovsdb.utils.mdsal.utils.NotifyingDataChangeListener;
index af067bb1f1980f62812899137b57f8f0e8a62262..52298ead4d5d23217d15dc5d7f0d9687bd37716c 100644 (file)
@@ -41,14 +41,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.neutron.spi.INeutronPortCRUD;
-import org.opendaylight.neutron.spi.INeutronSecurityGroupCRUD;
-import org.opendaylight.neutron.spi.INeutronSecurityRuleCRUD;
-import org.opendaylight.neutron.spi.NeutronPort;
-import org.opendaylight.neutron.spi.NeutronSecurityGroup;
-import org.opendaylight.neutron.spi.NeutronSecurityRule;
-import org.opendaylight.neutron.spi.NeutronNetwork;
-import org.opendaylight.neutron.spi.NeutronSubnet;
+import org.opendaylight.netvirt.utils.neutron.utils.NeutronUtils;
 import org.opendaylight.ovsdb.lib.notation.Version;
 import org.opendaylight.netvirt.openstack.netvirt.NetworkHandler;
 import org.opendaylight.netvirt.openstack.netvirt.api.Southbound;
@@ -58,6 +51,14 @@ import org.opendaylight.netvirt.openstack.netvirt.providers.openflow13.Service;
 import org.opendaylight.netvirt.utils.it.utils.ItUtils;
 import org.opendaylight.netvirt.utils.it.utils.NodeInfo;
 import org.opendaylight.netvirt.utils.mdsal.openflow.FlowUtils;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronNetwork;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronPort;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSubnet;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronPortCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityGroupCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils;
 import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
 import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils;
@@ -538,10 +539,9 @@ public class NetvirtIT extends AbstractMdsalTestBase {
         assertNotNull("Could not find ineutronSecurityRuleCRUD Service", ineutronSecurityRuleCRUD);
 
         NeutronSecurityGroup neutronSG = new NeutronSecurityGroup();
-        neutronSG.setSecurityGroupDescription("testig defaultSG-IT");
         neutronSG.setSecurityGroupName("DefaultSG");
-        neutronSG.setSecurityGroupUUID("d3329053-bae5-4bf4-a2d1-7330f11ba5db");
-        neutronSG.setTenantID(tenantId);
+        neutronSG.setID("d3329053-bae5-4bf4-a2d1-7330f11ba5db");
+        neutronSG.setSecurityGroupTenantID(tenantId);
 
         List<NeutronSecurityRule> nsrs = new ArrayList<>();
         NeutronSecurityRule nsrIN = new NeutronSecurityRule();
@@ -551,8 +551,8 @@ public class NetvirtIT extends AbstractMdsalTestBase {
         nsrIN.setSecurityRuleGroupID("d3329053-bae5-4bf4-a2d1-7330f11ba5db");
         nsrIN.setSecurityRuleProtocol("TCP");
         nsrIN.setSecurityRuleRemoteIpPrefix("10.0.0.0/24");
-        nsrIN.setSecurityRuleUUID("823faaf7-175d-4f01-a271-0bf56fb1e7e6");
-        nsrIN.setTenantID(tenantId);
+        nsrIN.setID("823faaf7-175d-4f01-a271-0bf56fb1e7e6");
+        nsrIN.setSecurityRuleTenantID(tenantId);
 
         NeutronSecurityRule nsrEG = new NeutronSecurityRule();
         nsrEG.setSecurityRemoteGroupID(null);
@@ -561,16 +561,15 @@ public class NetvirtIT extends AbstractMdsalTestBase {
         nsrEG.setSecurityRuleGroupID("d3329053-bae5-4bf4-a2d1-7330f11ba5db");
         nsrEG.setSecurityRuleProtocol("TCP");
         nsrEG.setSecurityRuleRemoteIpPrefix("10.0.0.0/24");
-        nsrEG.setSecurityRuleUUID("823faaf7-175d-4f01-a271-0bf56fb1e7e1");
-        nsrEG.setTenantID(tenantId);
+        nsrEG.setID("823faaf7-175d-4f01-a271-0bf56fb1e7e1");
+        nsrEG.setSecurityRuleTenantID(tenantId);
 
         nsrs.add(nsrIN);
         nsrs.add(nsrEG);
 
-        neutronSG.setSecurityRules(nsrs);
         ineutronSecurityRuleCRUD.addNeutronSecurityRule(nsrIN);
         ineutronSecurityRuleCRUD.addNeutronSecurityRule(nsrEG);
-        ineutronSecurityGroupCRUD.add(neutronSG);
+        ineutronSecurityGroupCRUD.addNeutronSecurityGroup(neutronSG);
 
         List<NeutronSecurityGroup> sgs = new ArrayList<>();
         sgs.add(neutronSG);
@@ -578,7 +577,7 @@ public class NetvirtIT extends AbstractMdsalTestBase {
 
         INeutronPortCRUD iNeutronPortCRUD =
                 (INeutronPortCRUD) ServiceHelper.getGlobalInstance(INeutronPortCRUD.class, this);
-        iNeutronPortCRUD.update(portId, nport);
+        iNeutronPortCRUD.updatePort(portId, nport);
 
         LOG.info("Neutron ports have been added");
         Thread.sleep(10000);
index a2b0b4b3768586338cf8080c90f7b99306c6d2aa..3b92b7219a0d9703a303252e5a2c53eec20041ac 100644 (file)
@@ -2,13 +2,13 @@ package org.opendaylight.netvirt.openstack.netvirt.it;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.opendaylight.neutron.spi.INeutronNetworkCRUD;
-import org.opendaylight.neutron.spi.INeutronPortCRUD;
-import org.opendaylight.neutron.spi.INeutronSubnetCRUD;
-import org.opendaylight.neutron.spi.NeutronNetwork;
-import org.opendaylight.neutron.spi.NeutronPort;
-import org.opendaylight.neutron.spi.NeutronSecurityGroup;
-import org.opendaylight.neutron.spi.NeutronSubnet;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronNetworkCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronPortCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronNetwork;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronPort;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSubnet;
 import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
 
 public class NeutronUtils {
@@ -22,16 +22,16 @@ public class NeutronUtils {
         np.setDeviceOwner(owner);
         np.setMacAddress(mac);
         np.setNetworkUUID(networkId);
-        List<org.opendaylight.neutron.spi.Neutron_IPs> srcAddressList =
+        List<org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs> srcAddressList =
                 new ArrayList<>();
-        org.opendaylight.neutron.spi.Neutron_IPs nip = new org.opendaylight.neutron.spi.Neutron_IPs();
+        org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs nip = new org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs();
         nip.setIpAddress(ipaddr);
         nip.setSubnetUUID(subnetId);
         srcAddressList.add(nip);
         np.setFixedIPs(srcAddressList);
         List<NeutronSecurityGroup> nsgs = new ArrayList<>();
         np.setSecurityGroups(nsgs);
-        iNeutronPortCRUD.add(np);
+        iNeutronPortCRUD.addPort(np);
         return np;
     }
 
@@ -45,7 +45,7 @@ public class NeutronUtils {
         ns.initDefaults();
         ns.setNetworkUUID(networkId);
         ns.setTenantID(tenantId);
-        iNeutronSubnetCRUD.add(ns);
+        iNeutronSubnetCRUD.addSubnet(ns);
         return ns;
     }
 
index 47fdc7029db4e62054078920927d4edae899b6b5..ad19d97761ba026233e1d8d995ec80d021d175f0 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.netvirt.openstack.netvirt.providers.openflow13.Service;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.netvirt.utils.mdsal.openflow.ActionUtils;
 import org.opendaylight.netvirt.utils.mdsal.openflow.FlowUtils;
 import org.opendaylight.netvirt.utils.mdsal.openflow.InstructionUtils;
@@ -45,6 +46,7 @@ import java.net.Inet4Address;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -53,6 +55,7 @@ public class EgressAclService extends AbstractServiceInstance implements EgressA
     private static final Logger LOG = LoggerFactory.getLogger(EgressAclService.class);
     private volatile SecurityServicesManager securityServicesManager;
     private volatile SecurityGroupCacheManger securityGroupCacheManger;
+    private volatile INeutronSecurityRuleCRUD neutronSecurityRule;
     private static final int DHCP_SOURCE_PORT = 67;
     private static final int DHCP_DESTINATION_PORT = 68;
     private static final int DHCPV6_SOURCE_PORT = 547;
@@ -75,11 +78,11 @@ public class EgressAclService extends AbstractServiceInstance implements EgressA
                                        NeutronSecurityGroup securityGroup, String portUuid, boolean write) {
 
         LOG.trace("programPortSecurityGroup: neutronSecurityGroup: {} ", securityGroup);
-        if (securityGroup == null || securityGroup.getSecurityRules() == null) {
+        if (securityGroup == null || getSecurityRulesforGroup(securityGroup) == null) {
             return;
         }
 
-        List<NeutronSecurityRule> portSecurityList = securityGroup.getSecurityRules();
+        List<NeutronSecurityRule> portSecurityList = getSecurityRulesforGroup(securityGroup);
         /* Iterate over the Port Security Rules in the Port Security Group bound to the port*/
         for (NeutronSecurityRule portSecurityRule : portSecurityList) {
 
@@ -876,6 +879,16 @@ public class EgressAclService extends AbstractServiceInstance implements EgressA
         }
     }
 
+    private List<NeutronSecurityRule> getSecurityRulesforGroup(NeutronSecurityGroup securityGroup) {
+        List<NeutronSecurityRule> securityRules = new ArrayList<>();
+        List<NeutronSecurityRule> rules = neutronSecurityRule.getAllNeutronSecurityRules();
+        for (NeutronSecurityRule securityRule : rules) {
+            if (securityGroup.getID().equals(securityRule.getSecurityRuleGroupID())) {
+                securityRules.add(securityRule);
+            }
+        }
+        return securityRules;
+    }
 
     @Override
     public void setDependencies(BundleContext bundleContext, ServiceReference serviceReference) {
@@ -884,6 +897,7 @@ public class EgressAclService extends AbstractServiceInstance implements EgressA
                 (SecurityServicesManager) ServiceHelper.getGlobalInstance(SecurityServicesManager.class, this);
         securityGroupCacheManger =
                 (SecurityGroupCacheManger) ServiceHelper.getGlobalInstance(SecurityGroupCacheManger.class, this);
+        neutronSecurityRule = (INeutronSecurityRuleCRUD) ServiceHelper.getGlobalInstance(INeutronSecurityRuleCRUD.class, this);
     }
 
     @Override
index d0d3cf03ef6817c4a79e1c649fd28b6056715a94..9d9d5ddcd2e0859dd5b9a1ed0d722ed429d8e7e4 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.netvirt.openstack.netvirt.providers.ConfigInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.netvirt.utils.mdsal.openflow.ActionUtils;
 import org.opendaylight.netvirt.utils.mdsal.openflow.FlowUtils;
 import org.opendaylight.netvirt.utils.mdsal.openflow.InstructionUtils;
@@ -44,6 +45,7 @@ import java.net.Inet4Address;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -51,6 +53,7 @@ public class IngressAclService extends AbstractServiceInstance implements Ingres
     private static final Logger LOG = LoggerFactory.getLogger(IngressAclService.class);
     private volatile SecurityServicesManager securityServicesManager;
     private volatile SecurityGroupCacheManger securityGroupCacheManger;
+    private volatile INeutronSecurityRuleCRUD neutronSecurityRule;
     private static final int PORT_RANGE_MIN = 1;
     private static final int PORT_RANGE_MAX = 65535;
 
@@ -68,11 +71,11 @@ public class IngressAclService extends AbstractServiceInstance implements Ingres
                                        String portUuid, boolean write) {
 
         LOG.trace("programPortSecurityGroup neutronSecurityGroup: {} ", securityGroup);
-        if (securityGroup == null || securityGroup.getSecurityRules() == null) {
+        if (securityGroup == null || getSecurityRulesforGroup(securityGroup) == null) {
             return;
         }
 
-        List<NeutronSecurityRule> portSecurityList = securityGroup.getSecurityRules();
+        List<NeutronSecurityRule> portSecurityList = getSecurityRulesforGroup(securityGroup);
         /* Iterate over the Port Security Rules in the Port Security Group bound to the port*/
         for (NeutronSecurityRule portSecurityRule : portSecurityList) {
 
@@ -762,6 +765,17 @@ public class IngressAclService extends AbstractServiceInstance implements Ingres
         }
     }
 
+    private List<NeutronSecurityRule> getSecurityRulesforGroup(NeutronSecurityGroup securityGroup) {
+        List<NeutronSecurityRule> securityRules = new ArrayList<>();
+        List<NeutronSecurityRule> rules = neutronSecurityRule.getAllNeutronSecurityRules();
+        for (NeutronSecurityRule securityRule : rules) {
+            if (securityGroup.getID().equals(securityRule.getSecurityRuleGroupID())) {
+                securityRules.add(securityRule);
+            }
+        }
+        return securityRules;
+    }
+
     @Override
     public void setDependencies(BundleContext bundleContext, ServiceReference serviceReference) {
         super.setDependencies(bundleContext.getServiceReference(IngressAclProvider.class.getName()), this);
@@ -769,6 +783,7 @@ public class IngressAclService extends AbstractServiceInstance implements Ingres
                 (SecurityServicesManager) ServiceHelper.getGlobalInstance(SecurityServicesManager.class, this);
         securityGroupCacheManger =
                 (SecurityGroupCacheManger) ServiceHelper.getGlobalInstance(SecurityGroupCacheManger.class, this);
+        neutronSecurityRule = (INeutronSecurityRuleCRUD) ServiceHelper.getGlobalInstance(INeutronSecurityRuleCRUD.class, this);
     }
 
     @Override
index 48f6717168288aeb861b21f21608005c20341cab..f36a00ca6f13f4d28a097da49460b73caaaae50b 100644 (file)
@@ -39,6 +39,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.netvirt.openstack.netvirt.api.SecurityGroupCacheManger;
 import org.opendaylight.netvirt.openstack.netvirt.api.SecurityServicesManager;
 import org.opendaylight.netvirt.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
@@ -74,6 +75,7 @@ public class EgressAclServiceTest {
     @Mock private NeutronSecurityRule portSecurityRule;
     @Mock private NeutronSecurityGroup securityGroupIpv6;
     @Mock private NeutronSecurityRule portSecurityIpv6Rule;
+    @Mock private INeutronSecurityRuleCRUD neutronSecurityRuleCache;
 
     @Mock private SecurityServicesManager securityServices;
     @Mock private SecurityGroupCacheManger securityGroupCacheManger;
@@ -150,7 +152,7 @@ public class EgressAclServiceTest {
 
         List<NeutronSecurityRule> portSecurityIpv6List = new ArrayList<>();
         portSecurityIpv6List.add(portSecurityIpv6Rule);
-        when(securityGroupIpv6.getSecurityRules()).thenReturn(portSecurityIpv6List);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(portSecurityIpv6List);
 
         neutron_ipv6_dest_1 = new Neutron_IPs();
         neutron_ipv6_dest_1.setIpAddress(IPV6_DEST_IP_1);
@@ -160,7 +162,7 @@ public class EgressAclServiceTest {
         neutron_ipv6_dest_2.setIpAddress(IPV6_DEST_IP_2);
         neutronDestIpList.add(neutron_ipv6_dest_2);
 
-        when(securityGroup.getSecurityRules()).thenReturn(portSecurityList);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(portSecurityList);
         when(securityServices.getVmListForSecurityGroup(PORT_UUID, SECURITY_GROUP_UUID)).thenReturn(neutronDestIpList);
 
         NetvirtProvidersProvider netvirtProvider = mock(NetvirtProvidersProvider.class);
@@ -199,7 +201,7 @@ public class EgressAclServiceTest {
         portSecurityList.add(portSecurityRule4);
 
         NeutronSecurityGroup localSecurityGroup = mock(NeutronSecurityGroup.class);
-        when(localSecurityGroup.getSecurityRules()).thenReturn(portSecurityList);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(portSecurityList);
 
         egressAclServiceSpy.programPortSecurityGroup(DP_ID_LONG, SEGMENT_ID, MAC_ADDRESS, LOCAL_PORT,
                 localSecurityGroup, PORT_UUID, true);
index 5d2e75d7d04b035efb59fbdb90977b7e8add0ee3..535251177abe94afccc07c473535435f877da222 100644 (file)
@@ -39,6 +39,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGrou
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.netvirt.openstack.netvirt.api.SecurityGroupCacheManger;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
@@ -77,6 +78,7 @@ public class IngressAclServiceTest {
     @Mock private NeutronSecurityRule portSecurityIpv6Rule;
     @Mock private SecurityServicesManager securityServices;
     @Mock private SecurityGroupCacheManger securityGroupCacheManger;
+    @Mock private INeutronSecurityRuleCRUD neutronSecurityRuleCache;
 
     private List<Neutron_IPs> neutronSrcIpList = new ArrayList<>();
     private List<Neutron_IPs> neutronDestIpList = new ArrayList<>();
@@ -152,7 +154,7 @@ public class IngressAclServiceTest {
 
         List<NeutronSecurityRule> portSecurityIpv6List = new ArrayList<>();
         portSecurityIpv6List.add(portSecurityIpv6Rule);
-        when(securityGroupIpv6.getSecurityRules()).thenReturn(portSecurityIpv6List);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(portSecurityIpv6List);
 
         neutron_ipv6_dest_1 = new Neutron_IPs();
         neutron_ipv6_dest_1.setIpAddress(IPV6_DEST_IP_1);
@@ -162,7 +164,7 @@ public class IngressAclServiceTest {
         neutron_ipv6_dest_2.setIpAddress(IPV6_DEST_IP_2);
         neutronDestIpList.add(neutron_ipv6_dest_2);
 
-        when(securityGroup.getSecurityRules()).thenReturn(portSecurityList);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(portSecurityList);
         when(securityServices.getVmListForSecurityGroup
              (PORT_UUID, SECURITY_GROUP_UUID)).thenReturn(neutronDestIpList);
         NetvirtProvidersProvider netvirtProvider = mock(NetvirtProvidersProvider.class);
@@ -200,7 +202,7 @@ public class IngressAclServiceTest {
         portSecurityList.add(portSecurityRule4);
 
         NeutronSecurityGroup localSecurityGroup = mock(NeutronSecurityGroup.class);
-        when(localSecurityGroup.getSecurityRules()).thenReturn(portSecurityList);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(portSecurityList);
 
         ingressAclServiceSpy.programPortSecurityGroup(
                 Long.valueOf(1554), "2", MAC_ADDRESS, 124, localSecurityGroup, PORT_UUID, false);
index ee78bc9fec745d635e9d37c492d2f09acb27c988..ff96d08607c2a45289fb617549f404e65eca1875 100644 (file)
@@ -71,11 +71,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <artifactId>utils.mdsal-utils</artifactId>
       <version>${project.version}</version>
     </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>utils.neutron-utils</artifactId>
-      <version>${project.version}</version>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.neutron</groupId>
       <artifactId>model</artifactId>
@@ -171,6 +166,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
             <Embed-Transitive>true</Embed-Transitive>
             <Export-Package>
               org.opendaylight.netvirt.openstack.netvirt.translator,
+              org.opendaylight.netvirt.openstack.netvirt.translator.crud,
               org.opendaylight.netvirt.openstack.netvirt.api,
               org.opendaylight.netvirt.openstack.netvirt
             </Export-Package>
index 91e77d7430b7c1b911af7f397bfc2922f9c23936..e0e5cd2edc3165db33f612dc0b814a38cd446b91 100644 (file)
@@ -19,11 +19,13 @@ import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderCo
 import org.opendaylight.netvirt.openstack.netvirt.api.ArpProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.BridgeConfigurationManager;
 import org.opendaylight.netvirt.openstack.netvirt.api.ConfigurationService;
+import org.opendaylight.netvirt.openstack.netvirt.api.Constants;
 import org.opendaylight.netvirt.openstack.netvirt.api.EgressAclProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.EventDispatcher;
 import org.opendaylight.netvirt.openstack.netvirt.api.GatewayMacResolver;
 import org.opendaylight.netvirt.openstack.netvirt.api.GatewayMacResolverListener;
 import org.opendaylight.netvirt.openstack.netvirt.api.IcmpEchoProvider;
+import org.opendaylight.netvirt.openstack.netvirt.api.InboundNatProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.IngressAclProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.L3ForwardingProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.LoadBalancerProvider;
@@ -35,13 +37,16 @@ import org.opendaylight.netvirt.openstack.netvirt.api.OutboundNatProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.OvsdbInventoryListener;
 import org.opendaylight.netvirt.openstack.netvirt.api.OvsdbInventoryService;
 import org.opendaylight.netvirt.openstack.netvirt.api.RoutingProvider;
+import org.opendaylight.netvirt.openstack.netvirt.api.SecurityGroupCacheManger;
 import org.opendaylight.netvirt.openstack.netvirt.api.SecurityServicesManager;
+import org.opendaylight.netvirt.openstack.netvirt.api.Southbound;
 import org.opendaylight.netvirt.openstack.netvirt.api.TenantNetworkManager;
 import org.opendaylight.netvirt.openstack.netvirt.api.VlanConfigurationCache;
 import org.opendaylight.netvirt.openstack.netvirt.impl.BridgeConfigurationManagerImpl;
 import org.opendaylight.netvirt.openstack.netvirt.impl.ConfigurationServiceImpl;
 import org.opendaylight.netvirt.openstack.netvirt.impl.DistributedArpService;
 import org.opendaylight.netvirt.openstack.netvirt.impl.EventDispatcherImpl;
+import org.opendaylight.netvirt.openstack.netvirt.impl.NeutronL3Adapter;
 import org.opendaylight.netvirt.openstack.netvirt.impl.NodeCacheManagerImpl;
 import org.opendaylight.netvirt.openstack.netvirt.impl.OpenstackRouter;
 import org.opendaylight.netvirt.openstack.netvirt.impl.OvsdbInventoryServiceImpl;
@@ -49,15 +54,19 @@ import org.opendaylight.netvirt.openstack.netvirt.impl.ProviderNetworkManagerImp
 import org.opendaylight.netvirt.openstack.netvirt.impl.SecurityGroupCacheManagerImpl;
 import org.opendaylight.netvirt.openstack.netvirt.impl.SecurityServicesImpl;
 import org.opendaylight.netvirt.openstack.netvirt.impl.SouthboundImpl;
+import org.opendaylight.netvirt.openstack.netvirt.impl.TenantNetworkManagerImpl;
 import org.opendaylight.netvirt.openstack.netvirt.impl.VlanConfigurationCacheImpl;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronFloatingIPCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronLoadBalancerCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronLoadBalancerPoolCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronNetworkCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronPortCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronFirewallInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronFirewallPolicyInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronFirewallRuleInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronFloatingIPInterface;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronLoadBalancerHealthMonitorInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronLoadBalancerInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronLoadBalancerListenerInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronLoadBalancerPoolInterface;
@@ -69,28 +78,18 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronSe
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronSecurityRuleInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronSubnetInterface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronFirewallAware;
+import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronFirewallRuleAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronFirewallPolicyAware;
+import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronFloatingIPAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronLoadBalancerAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronLoadBalancerPoolAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronLoadBalancerPoolMemberAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronNetworkAware;
+import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronPortAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronRouterAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronSecurityGroupAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronSecurityRuleAware;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronSubnetAware;
-import org.opendaylight.netvirt.openstack.netvirt.api.Constants;
-import org.opendaylight.netvirt.openstack.netvirt.api.InboundNatProvider;
-import org.opendaylight.netvirt.openstack.netvirt.api.SecurityGroupCacheManger;
-import org.opendaylight.netvirt.openstack.netvirt.api.Southbound;
-import org.opendaylight.netvirt.openstack.netvirt.impl.NeutronL3Adapter;
-import org.opendaylight.netvirt.openstack.netvirt.impl.TenantNetworkManagerImpl;
-import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronFloatingIPCRUD;
-import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
-import org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronLoadBalancerHealthMonitorInterface;
-import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronFirewallRuleAware;
-import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronFloatingIPAware;
-import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronPortAware;
-import org.opendaylight.netvirt.utils.neutron.utils.NeutronModelsDataStoreHelper;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
similarity index 98%
rename from utils/neutron-utils/src/main/java/org/opendaylight/netvirt/utils/neutron/utils/NeutronModelsDataStoreHelper.java
rename to openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/NeutronModelsDataStoreHelper.java
index fa78525ac3cf9e0f36350a40796b33426f5156d0..a4fda550eca52d78ec4c54a6ce0b9e7eba8315bd 100644 (file)
@@ -5,7 +5,7 @@
  * 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.netvirt.utils.neutron.utils;
+package org.opendaylight.netvirt.openstack.netvirt;
 
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
index d9a601338b3e9b7236873d53b27cf6b3b37b3dfc..d2bf9733f815a0807f5d46c0dbe4930b27d2368c 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.netvirt.openstack.netvirt.AbstractEvent;
 import org.opendaylight.netvirt.openstack.netvirt.AbstractHandler;
 import org.opendaylight.netvirt.openstack.netvirt.ConfigInterface;
 import org.opendaylight.netvirt.openstack.netvirt.NeutronL3AdapterEvent;
+import org.opendaylight.netvirt.openstack.netvirt.NeutronModelsDataStoreHelper;
 import org.opendaylight.netvirt.openstack.netvirt.api.Action;
 import org.opendaylight.netvirt.openstack.netvirt.api.ArpProvider;
 import org.opendaylight.netvirt.openstack.netvirt.api.ConfigurationService;
@@ -50,7 +51,6 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronPort;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSubnet;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.impl.NeutronIAwareUtil;
-import org.opendaylight.netvirt.utils.neutron.utils.NeutronModelsDataStoreHelper;
 import org.opendaylight.netvirt.utils.servicehelper.ServiceHelper;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
@@ -257,7 +257,7 @@ public class NeutronL3Adapter extends AbstractHandler implements GatewayMacResol
                                 port.getDeviceOwner().equals(OWNER_ROUTER_INTERFACE)) {
                             LOG.debug("L3 Cache Population : Router interface {} found.",port);
                             networkIdToRouterMacCache.put(port.getNetworkId().getValue()
-                                    , port.getMacAddress());
+                                    , port.getMacAddress().getValue());
 
                             networkIdToRouterIpListCache.put(port.getNetworkId().getValue(),
                                     NeutronIAwareUtil.convertMDSalIpToNeutronIp(port.getFixedIps()));
index 11bb2a501bed88e56de357010be91a7c036cc357..06b610f3987edd5819402373323112171270646b 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronPort;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.netvirt.utils.servicehelper.ServiceHelper;
 import org.osgi.framework.ServiceReference;
 import org.slf4j.Logger;
@@ -41,6 +42,7 @@ public class SecurityGroupCacheManagerImpl implements ConfigInterface, SecurityG
     private volatile SecurityServicesManager securityServicesManager;
     private volatile INeutronPortCRUD neutronPortCache;
     private volatile NeutronL3Adapter neutronL3Adapter;
+    private volatile INeutronSecurityRuleCRUD neutronSecurityRule;
 
     @Override
     public void portAdded(String securityGroupUuid, String portUuid) {
@@ -188,7 +190,7 @@ public class SecurityGroupCacheManagerImpl implements ConfigInterface, SecurityG
         List<NeutronSecurityRule> remoteSecurityRules = new ArrayList<>();
         List<NeutronSecurityGroup> securityGroups = port.getSecurityGroups();
         for (NeutronSecurityGroup securityGroup : securityGroups) {
-            List<NeutronSecurityRule> securityRules = securityGroup.getSecurityRules();
+            List<NeutronSecurityRule> securityRules = getSecurityRulesforGroup(securityGroup);
             for (NeutronSecurityRule securityRule : securityRules) {
                 if (securityGroupUuid.equals(securityRule.getSecurityRemoteGroupID())) {
                     remoteSecurityRules.add(securityRule);
@@ -207,7 +209,7 @@ public class SecurityGroupCacheManagerImpl implements ConfigInterface, SecurityG
             List<NeutronSecurityGroup> securityGroupList = port.getSecurityGroups();
             if ( null != securityGroupList) {
                 for (NeutronSecurityGroup securityGroup : securityGroupList) {
-                    List<NeutronSecurityRule> securityRuleList = securityGroup.getSecurityRules();
+                    List<NeutronSecurityRule> securityRuleList = getSecurityRulesforGroup(securityGroup);
                     if ( null != securityRuleList) {
                         for (NeutronSecurityRule securityRule : securityRuleList) {
                             if (null != securityRule.getSecurityRemoteGroupID()) {
@@ -220,6 +222,17 @@ public class SecurityGroupCacheManagerImpl implements ConfigInterface, SecurityG
         }
     }
 
+    private List<NeutronSecurityRule> getSecurityRulesforGroup(NeutronSecurityGroup securityGroup) {
+        List<NeutronSecurityRule> securityRules = new ArrayList<>();
+        List<NeutronSecurityRule> rules = neutronSecurityRule.getAllNeutronSecurityRules();
+        for (NeutronSecurityRule securityRule : rules) {
+            if (securityGroup.getID().equals(securityRule.getSecurityRuleGroupID())) {
+                securityRules.add(securityRule);
+            }
+        }
+        return securityRules;
+    }
+
     @Override
     public void setDependencies(ServiceReference serviceReference) {
         neutronL3Adapter =
@@ -227,6 +240,7 @@ public class SecurityGroupCacheManagerImpl implements ConfigInterface, SecurityG
         securityServicesManager =
                 (SecurityServicesManager) ServiceHelper.getGlobalInstance(SecurityServicesManager.class, this);
         neutronPortCache = (INeutronPortCRUD) ServiceHelper.getGlobalInstance(INeutronPortCRUD.class, this);
+        neutronSecurityRule = (INeutronSecurityRuleCRUD) ServiceHelper.getGlobalInstance(INeutronSecurityRuleCRUD.class, this);
         init();
     }
 
index 903c388d27419ebeb9ae1e07b912b5e1ba562ced..72a5ff551e3553b20b92588b6af84c49d5fd9d99 100644 (file)
@@ -12,6 +12,7 @@ package org.opendaylight.netvirt.openstack.netvirt.translator;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -78,7 +79,7 @@ public class NeutronPort implements Serializable, INeutronObject {
 
     //@XmlElement (name = "binding:vif_details")
     @XmlElement (namespace = "binding", name = "vif_details")
-    List<NeutronPort_VIFDetail> vifDetails;
+    Map<String, String> vifDetails;
 
     @XmlElement (name = "extra_dhcp_opts")
     List<NeutronPort_ExtraDHCPOption> extraDHCPOptions;
@@ -126,7 +127,7 @@ public class NeutronPort implements Serializable, INeutronObject {
     public Boolean getAdminStateUp() { return adminStateUp; }
 
     public void setAdminStateUp(Boolean newValue) {
-            adminStateUp = newValue;
+        adminStateUp = newValue;
     }
 
     public String getStatus() {
@@ -201,20 +202,20 @@ public class NeutronPort implements Serializable, INeutronObject {
         this.extraDHCPOptions = extraDHCPOptions;
     }
 
-    public List<NeutronPort_VIFDetail> getVIFDetail() {
+    public Map<String, String> getVIFDetails() {
         return vifDetails;
     }
 
-    public void setVIFDetail(List<NeutronPort_VIFDetail> vifDetails) {
+    public void setVIFDetails(Map<String, String> vifDetails) {
         this.vifDetails = vifDetails;
     }
 
     public String getBindinghostID() {
-      return bindinghostID;
+        return bindinghostID;
     }
 
     public void setBindinghostID(String bindinghostID) {
-      this.bindinghostID = bindinghostID;
+        this.bindinghostID = bindinghostID;
     }
 
     public String getBindingvnicType() {
index 050c7849cc3be063bdcf4fcc3ec1288dbeeaf41e..d98da01e5646a4885619dac0441c0fb5485b8ec2 100644 (file)
@@ -55,15 +55,6 @@ public class NeutronRouter implements Serializable, INeutronObject {
     @XmlElement (name = "routes")
     List<Routes> routes;
 
-    /* Holds a map of OpenStackRouterInterfaces by subnet UUID
-     * used for internal mapping to DOVE
-     */
-    Map<String, NeutronRouter_Interface> interfaces;
-
-    public NeutronRouter() {
-        interfaces = new HashMap<>();
-    }
-
     public String getID() { return routerUUID; }
 
     public void setID(String id) { this.routerUUID = id; }
@@ -190,22 +181,6 @@ public class NeutronRouter implements Serializable, INeutronObject {
         return ans;
     }
 
-    public void setInterfaces(Map<String, NeutronRouter_Interface> input) {
-        interfaces = input;
-    }
-
-    public Map<String, NeutronRouter_Interface> getInterfaces() {
-        return interfaces;
-    }
-
-    public void addInterface(String s, NeutronRouter_Interface i) {
-        interfaces.put(s, i);
-    }
-
-    public void removeInterface(String s) {
-        interfaces.remove(s);
-    }
-
     public void initDefaults() {
         adminStateUp = true;
     }
@@ -222,8 +197,6 @@ public class NeutronRouter implements Serializable, INeutronObject {
             ", distributed=" + distributed +
             ", gw_port_id=" + gatewayPortId +
             ", routes=" + routes +
-            ", interfaces=" + interfaces +
             "]";
     }
-
 }
index 78a61dd7abee3fde5ff2eeb1142f1a06e9439afe..e0305b4d811572ca0685dc5edc33f3910c9bae57 100644 (file)
@@ -26,7 +26,6 @@ import javax.xml.bind.annotation.XmlRootElement;
  * name                 String name of the security group.
  * description          String name of the security group.
  * tenant_id            uuid-str Owner of security rule..
- * security_group_rules List&lt;NeutronSecurityRule&gt; nested RO in the sec group.
  */
 
 @XmlRootElement
@@ -47,12 +46,7 @@ public class NeutronSecurityGroup implements Serializable, INeutronObject {
     @XmlElement(name = "tenant_id")
     String securityGroupTenantID;
 
-    @XmlElement(name = "security_group_rules")
-    List<NeutronSecurityRule> neutronSecurityRule;
-
     public NeutronSecurityGroup() {
-        neutronSecurityRule = new ArrayList<>();
-
     }
 
     public String getID() {
@@ -97,15 +91,6 @@ public class NeutronSecurityGroup implements Serializable, INeutronObject {
         this.securityGroupTenantID = securityGroupTenantID;
     }
 
-    // Rules In Group
-    public List<NeutronSecurityRule> getSecurityRules() {
-        return neutronSecurityRule;
-    }
-
-    public void setSecurityRules(List<NeutronSecurityRule> neutronSecurityRule) {
-        this.neutronSecurityRule = neutronSecurityRule;
-    }
-
     public NeutronSecurityGroup extractFields(List<String> fields) {
         NeutronSecurityGroup ans = new NeutronSecurityGroup ();
         for (String s : fields) {
@@ -122,9 +107,6 @@ public class NeutronSecurityGroup implements Serializable, INeutronObject {
                 case "tenant_id":
                     ans.setSecurityGroupTenantID(this.getSecurityGroupTenantID());
                     break;
-                case "security_group_rules":
-                    ans.setSecurityRules(this.getSecurityRules());
-                    break;
             }
         }
         return ans;
@@ -137,7 +119,7 @@ public class NeutronSecurityGroup implements Serializable, INeutronObject {
                 ", securityGroupName='" + securityGroupName + '\'' +
                 ", securityGroupDescription='" + securityGroupDescription + '\'' +
                 ", securityGroupTenantID='" + securityGroupTenantID + '\'' +
-                ", securityRules=" + neutronSecurityRule + "]";
+                "]";
     }
 
     public void initDefaults() {
index a0b1f410e2344f2c4d6a07458827b0c281d4cc39..3820afa65cd2a8d239f0d5f8eb2f9182c6544d89 100644 (file)
@@ -124,9 +124,6 @@ public class NeutronLoadBalancerInterface extends AbstractNeutronInterface<Loadb
     protected Loadbalancer toMd(NeutronLoadBalancer loadBalancer) {
         LoadbalancerBuilder loadBalancersBuilder = new LoadbalancerBuilder();
         loadBalancersBuilder.setAdminStateUp(loadBalancer.getLoadBalancerAdminStateUp());
-        if (loadBalancer.getLoadBalancerDescription() != null) {
-            loadBalancersBuilder.setDescr(loadBalancer.getLoadBalancerDescription());
-        }
         if (loadBalancer.getLoadBalancerName() != null) {
             loadBalancersBuilder.setName(loadBalancer.getLoadBalancerName());
         }
index 48d43ac66da230b7dc684c15ee0ae7e7d0ff2fe6..fa4d56d5738319ebf9fdc4a868b0bf1ea94ea4c3 100644 (file)
@@ -139,9 +139,6 @@ public class NeutronLoadBalancerPoolInterface extends AbstractNeutronInterface<P
     protected Pool toMd(NeutronLoadBalancerPool pool) {
         PoolBuilder poolBuilder = new PoolBuilder();
         poolBuilder.setAdminStateUp(pool.getLoadBalancerPoolAdminIsStateIsUp());
-        if (pool.getLoadBalancerPoolDescription() != null) {
-            poolBuilder.setDescr(pool.getLoadBalancerPoolDescription());
-        }
         if (pool.getNeutronLoadBalancerPoolHealthMonitorID() != null) {
             poolBuilder.setHealthmonitorId(toUuid(pool.getNeutronLoadBalancerPoolHealthMonitorID()));
         }
index 8814fb39736d5b8a47bef747dcc91b7e08425823..7ac484dcc0fed65590163a47fe1642d85048c118 100644 (file)
@@ -9,8 +9,10 @@
 package org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
@@ -24,6 +26,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronPort;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtension;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtensionBuilder;
@@ -39,6 +42,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.por
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.types.rev160517.IpPrefixOrAddress;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
@@ -138,14 +142,11 @@ public class NeutronPortInterface extends AbstractNeutronInterface<Port, Neutron
         PortBindingExtension binding = port.getAugmentation(PortBindingExtension.class);
         result.setBindinghostID(binding.getHostId());
         if (binding.getVifDetails() != null) {
-            List<NeutronPort_VIFDetail> details = new ArrayList<>();
-            for (VifDetails vifDetail : binding.getVifDetails()) {
-                NeutronPort_VIFDetail detail = new NeutronPort_VIFDetail();
-                detail.setPortFilter(vifDetail.isPortFilter());
-                detail.setOvsHybridPlug(vifDetail.isOvsHybridPlug());
-                details.add(detail);
+            final Map<String, String> details = new HashMap<String, String>(binding.getVifDetails().size());
+            for (final VifDetails vifDetail : binding.getVifDetails()) {
+                details.put(vifDetail.getDetailsKey(), vifDetail.getValue());
             }
-            result.setVIFDetail(details);
+            result.setVIFDetails(details);
         }
         result.setBindingvifType(binding.getVifType());
         result.setBindingvnicType(binding.getVnicType());
@@ -158,8 +159,8 @@ public class NeutronPortInterface extends AbstractNeutronInterface<Port, Neutron
             List<NeutronPort_AllowedAddressPairs> pairs = new ArrayList<>();
             for (AllowedAddressPairs mdPair : port.getAllowedAddressPairs()) {
                 NeutronPort_AllowedAddressPairs pair = new NeutronPort_AllowedAddressPairs();
-                pair.setIpAddress(mdPair.getIpAddress());
-                pair.setMacAddress(mdPair.getMacAddress());
+                pair.setIpAddress(String.valueOf(mdPair.getIpAddress().getValue()));
+                pair.setMacAddress(mdPair.getMacAddress().getValue());
                 pairs.add(pair);
             }
             result.setAllowedAddressPairs(pairs);
@@ -186,7 +187,7 @@ public class NeutronPortInterface extends AbstractNeutronInterface<Port, Neutron
             }
             result.setFixedIPs(ips);
         }
-        result.setMacAddress(port.getMacAddress());
+        result.setMacAddress(port.getMacAddress().getValue());
         result.setName(port.getName());
         result.setNetworkUUID(String.valueOf(port.getNetworkId().getValue()));
         if (port.getSecurityGroups() != null) {
@@ -218,15 +219,16 @@ public class NeutronPortInterface extends AbstractNeutronInterface<Port, Neutron
         if (neutronPort.getBindinghostID() != null) {
             bindingBuilder.setHostId(neutronPort.getBindinghostID());
         }
-        if (neutronPort.getVIFDetail() != null) {
-            List<VifDetails> listVifDetail = new ArrayList<>();
-            for (NeutronPort_VIFDetail detail: neutronPort.getVIFDetail()) {
-                VifDetailsBuilder vifDetailsBuilder = new VifDetailsBuilder();
-                if (detail.getPortFilter() != null) {
-                    vifDetailsBuilder.setPortFilter(detail.getPortFilter());
+        if (neutronPort.getVIFDetails() != null) {
+            final Map<String, String> vifDetails = neutronPort.getVIFDetails();
+            final List<VifDetails> listVifDetail = new ArrayList<VifDetails>(vifDetails.size());
+            for (final Map.Entry<String, String> vifDetail : vifDetails.entrySet()) {
+                final VifDetailsBuilder vifDetailsBuilder = new VifDetailsBuilder();
+                if (vifDetail.getKey() != null) {
+                    vifDetailsBuilder.setDetailsKey(vifDetail.getKey());
                 }
-                if (detail.getOvsHybridPlug() != null) {
-                    vifDetailsBuilder.setOvsHybridPlug(detail.getOvsHybridPlug());
+                if (vifDetail.getValue() != null) {
+                    vifDetailsBuilder.setValue(vifDetail.getValue());
                 }
                 listVifDetail.add(vifDetailsBuilder.build());
             }
@@ -247,8 +249,8 @@ public class NeutronPortInterface extends AbstractNeutronInterface<Port, Neutron
             List<AllowedAddressPairs> listAllowedAddressPairs = new ArrayList<>();
             for (NeutronPort_AllowedAddressPairs allowedAddressPairs : neutronPort.getAllowedAddressPairs()) {
                     AllowedAddressPairsBuilder allowedAddressPairsBuilder = new AllowedAddressPairsBuilder();
-                    allowedAddressPairsBuilder.setIpAddress(allowedAddressPairs.getIpAddress());
-                    allowedAddressPairsBuilder.setMacAddress(allowedAddressPairs.getMacAddress());
+                    allowedAddressPairsBuilder.setIpAddress(new IpPrefixOrAddress(allowedAddressPairs.getIpAddress().toCharArray()));
+                    allowedAddressPairsBuilder.setMacAddress(new MacAddress(allowedAddressPairs.getMacAddress()));
                     listAllowedAddressPairs.add(allowedAddressPairsBuilder.build());
             }
             portBuilder.setAllowedAddressPairs(listAllowedAddressPairs);
@@ -280,7 +282,7 @@ public class NeutronPortInterface extends AbstractNeutronInterface<Port, Neutron
             portBuilder.setFixedIps(listNeutronIPs);
         }
         if (neutronPort.getMacAddress() != null) {
-            portBuilder.setMacAddress(neutronPort.getMacAddress());
+            portBuilder.setMacAddress(new MacAddress(neutronPort.getMacAddress()));
         }
         if (neutronPort.getName() != null) {
         portBuilder.setName(neutronPort.getName());
index cf4ddd7b9c2e39edc870b2df1e4fcb964b6a71ae..12c53647a48ce96878586828d1200443736bb105 100644 (file)
@@ -17,7 +17,6 @@ import java.util.Map.Entry;
 import java.util.Set;
 
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronRouter_Interface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronRouterCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronRouter;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronRouter_NetworkReference;
@@ -29,7 +28,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.router
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.RouterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.ExternalGatewayInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.ExternalGatewayInfoBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.Interfaces;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.external_gateway_info.ExternalFixedIps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.external_gateway_info.ExternalFixedIpsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
@@ -109,11 +107,7 @@ public class NeutronRouterInterface extends  AbstractNeutronInterface<Router, Ne
 
     @Override
     public boolean routerInUse(String routerUUID) {
-        if (!routerExists(routerUUID)) {
-            return true;
-        }
-        NeutronRouter target = getRouter(routerUUID);
-        return (target.getInterfaces().size() > 0);
+        return !routerExists(routerUUID);
     }
 
     @Override
@@ -167,14 +161,6 @@ public class NeutronRouterInterface extends  AbstractNeutronInterface<Router, Ne
             }
             routerBuilder.setExternalGatewayInfo(externalGatewayInfo);
         }
-        if (router.getInterfaces() != null) {
-            Map<String, NeutronRouter_Interface> mapInterfaces = new HashMap<>();
-            List<Interfaces> interfaces = new ArrayList<>();
-            for (Entry<String, NeutronRouter_Interface> entry : mapInterfaces.entrySet()) {
-                interfaces.add((Interfaces) entry.getValue());
-            }
-            routerBuilder.setInterfaces(interfaces);
-        }
         if (router.getID() != null) {
             routerBuilder.setUuid(toUuid(router.getID()));
         } else {
@@ -237,19 +223,6 @@ public class NeutronRouterInterface extends  AbstractNeutronInterface<Router, Ne
             result.setExternalGatewayInfo(extGwInfo);
         }
 
-        if (router.getInterfaces() != null) {
-            Map<String, NeutronRouter_Interface> interfaces = new HashMap<>();
-            for (Interfaces mdInterface : router.getInterfaces()) {
-                NeutronRouter_Interface pojoInterface = new NeutronRouter_Interface();
-                String id = String.valueOf(mdInterface.getUuid().getValue());
-                pojoInterface.setID(id);
-                pojoInterface.setTenantID(String.valueOf(mdInterface.getTenantId().getValue()));
-                pojoInterface.setSubnetUUID(String.valueOf(mdInterface.getSubnetId().getValue()));
-                pojoInterface.setPortUUID(String.valueOf(mdInterface.getPortId().getValue()));
-                interfaces.put(id, pojoInterface);
-            }
-            result.setInterfaces(interfaces);
-        }
         return result;
     }
     
index 3a39ec25d3f5c84c57938fec946de46f0a3752ee..b1a645bb2da90edeea8bc35a46bdf1a3cb7f0e03 100644 (file)
@@ -109,30 +109,9 @@ public class NeutronSecurityGroupInterface extends AbstractNeutronInterface<Secu
         if (group.getName() != null) {
             answer.setSecurityGroupName(group.getName());
         }
-        if (group.getDescription() != null) {
-            answer.setSecurityGroupDescription(group.getDescription());
-        }
         if (group.getTenantId() != null) {
             answer.setSecurityGroupTenantID(group.getTenantId().getValue().replace("-",""));
         }
-
-        // Bug 4550
-        // https://bugs.opendaylight.org/show_bug.cgi?id=4550
-        // Now SecurityGroup::securityGroupRule isn't updated.
-        // always rebuid it from security group rules
-        NeutronCRUDInterfaces interfaces = new NeutronCRUDInterfaces()
-            .fetchINeutronSecurityRuleCRUD(this);
-        INeutronSecurityRuleCRUD srCrud = interfaces.getSecurityRuleInterface();
-
-        List<NeutronSecurityRule> rules = new ArrayList<NeutronSecurityRule>();
-        String sgId = group.getUuid().getValue();
-        for (NeutronSecurityRule rule: srCrud.getAllNeutronSecurityRules()) {
-            if (rule.getSecurityRuleGroupID().equals(sgId)) {
-                rules.add(rule);
-            }
-        }
-        answer.setSecurityRules(rules);
-
         if (group.getUuid() != null) {
             answer.setID(group.getUuid().getValue());
         }
@@ -145,18 +124,9 @@ public class NeutronSecurityGroupInterface extends AbstractNeutronInterface<Secu
         if (securityGroup.getSecurityGroupName() != null) {
             securityGroupBuilder.setName(securityGroup.getSecurityGroupName());
         }
-        if (securityGroup.getSecurityGroupDescription() != null) {
-            securityGroupBuilder.setDescription(securityGroup.getSecurityGroupDescription());
-        }
         if (securityGroup.getSecurityGroupTenantID() != null) {
             securityGroupBuilder.setTenantId(toUuid(securityGroup.getSecurityGroupTenantID()));
         }
-
-        // don't update security group rule, always empty list
-        // Bug 4550
-        // https://bugs.opendaylight.org/show_bug.cgi?id=4550
-        securityGroupBuilder.setSecurityRules(new ArrayList<Uuid>());
-
         if (securityGroup.getID() != null) {
             securityGroupBuilder.setUuid(toUuid(securityGroup.getID()));
         } else {
index 5847059a0384d4023bb627e6322438bd2ecf3aa5..7e968e44250bdaa4331b569df2d5e7dd28928454 100644 (file)
@@ -31,7 +31,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolIcmpV6;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolTcp;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolUdp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.NeutronUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.SecurityRuleAttributes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.SecurityRules;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.security.rules.SecurityRule;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.security.rules.SecurityRuleBuilder;
@@ -64,40 +66,6 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
         super(providerContext);
     }
 
-    private void updateSecGroupRuleInSecurityGroup(NeutronSecurityRule input) {
-        NeutronCRUDInterfaces interfaces = new NeutronCRUDInterfaces()
-            .fetchINeutronSecurityGroupCRUD(this);
-        INeutronSecurityGroupCRUD sgCrud = interfaces.getSecurityGroupInterface();
-        NeutronSecurityGroup sg = sgCrud.getNeutronSecurityGroup(input.getSecurityRuleGroupID());
-        if(sg != null && sg.getSecurityRules() != null) {
-            for(NeutronSecurityRule sgr :sg.getSecurityRules()) {
-                if(sgr != null && sgr.getID() != null && sgr.getID().equals(input.getID())) {
-                    int index = sg.getSecurityRules().indexOf(sgr);
-                    sg.getSecurityRules().set(index, input);
-                }
-            }
-        }
-        if (sg != null) {
-            sg.getSecurityRules().add(input);
-        }
-    }
-
-    private void removeSecGroupRuleFromSecurityGroup(NeutronSecurityRule input) {
-        NeutronCRUDInterfaces interfaces = new NeutronCRUDInterfaces()
-            .fetchINeutronSecurityGroupCRUD(this);
-        INeutronSecurityGroupCRUD sgCrud = interfaces.getSecurityGroupInterface();
-        NeutronSecurityGroup sg = sgCrud.getNeutronSecurityGroup(input.getSecurityRuleGroupID());
-        if(sg != null && sg.getSecurityRules() != null) {
-            List<NeutronSecurityRule> toRemove = new ArrayList<>();
-            for(NeutronSecurityRule sgr :sg.getSecurityRules()) {
-                if(sgr.getID() != null && sgr.getID().equals(input.getID())) {
-                    toRemove.add(sgr);
-                }
-            }
-            sg.getSecurityRules().removeAll(toRemove);
-        }
-    }
-
     @Override
     public boolean neutronSecurityRuleExists(String uuid) {
         SecurityRule rule = readMd(createInstanceIdentifier(toMd(uuid)));
@@ -131,7 +99,6 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
         if (neutronSecurityRuleExists(input.getID())) {
             return false;
         }
-        updateSecGroupRuleInSecurityGroup(input);
         addMd(input);
         return true;
     }
@@ -141,7 +108,6 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
         if (!neutronSecurityRuleExists(uuid)) {
             return false;
         }
-        removeSecGroupRuleFromSecurityGroup(getNeutronSecurityRule(uuid));
         removeMd(toMd(uuid));
         return true;
     }
@@ -151,7 +117,6 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
         if (!neutronSecurityRuleExists(uuid)) {
             return false;
         }
-        updateSecGroupRuleInSecurityGroup(delta);
         updateMd(delta);
         return true;
     }
@@ -180,7 +145,14 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
                     rule.getRemoteIpPrefix().getIpv4Prefix().getValue():rule.getRemoteIpPrefix().getIpv6Prefix().getValue());
         }
         if (rule.getProtocol() != null) {
-            answer.setSecurityRuleProtocol(PROTOCOL_MAP.get(rule.getProtocol()));
+            SecurityRuleAttributes.Protocol protocol = rule.getProtocol();
+            if (protocol.getUint8() != null) {
+                // uint8
+                answer.setSecurityRuleProtocol(protocol.getUint8().toString());
+            } else {
+               // symbolic protocol name
+               answer.setSecurityRuleProtocol(NeutronUtils.ProtocolMapper.getName(protocol.getIdentityref()));
+            }
         }
         if (rule.getEthertype() != null) {
             answer.setSecurityRuleEthertype(ETHERTYPE_MAP.get(rule.getEthertype()));
@@ -191,8 +163,8 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
         if (rule.getPortRangeMax() != null) {
             answer.setSecurityRulePortMax(rule.getPortRangeMax());
         }
-        if (rule.getId() != null) {
-            answer.setID(rule.getId().getValue());
+        if (rule.getUuid() != null) {
+            answer.setID(rule.getUuid().getValue());
         }
         return answer;
     }
@@ -219,9 +191,9 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
             securityRuleBuilder.setRemoteIpPrefix(new IpPrefix(securityRule.getSecurityRuleRemoteIpPrefix().toCharArray()));
         }
         if (securityRule.getSecurityRuleProtocol() != null) {
-            ImmutableBiMap<String, Class<? extends ProtocolBase>> mapper =
-                    PROTOCOL_MAP.inverse();
-            securityRuleBuilder.setProtocol(mapper.get(securityRule.getSecurityRuleProtocol()));
+            String protocolString = securityRule.getSecurityRuleProtocol();
+            SecurityRuleAttributes.Protocol protocol = new SecurityRuleAttributes.Protocol(protocolString.toCharArray());
+            securityRuleBuilder.setProtocol(protocol);
         }
         if (securityRule.getSecurityRuleEthertype() != null) {
             ImmutableBiMap<String, Class<? extends EthertypeBase>> mapper =
@@ -235,7 +207,7 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
             securityRuleBuilder.setPortRangeMax(securityRule.getSecurityRulePortMax());
         }
         if (securityRule.getID() != null) {
-            securityRuleBuilder.setId(toUuid(securityRule.getID()));
+            securityRuleBuilder.setUuid(toUuid(securityRule.getID()));
         } else {
             LOGGER.warn("Attempting to write neutron securityRule without UUID");
         }
@@ -257,7 +229,7 @@ public class NeutronSecurityRuleInterface extends AbstractNeutronInterface<Secur
     @Override
     protected SecurityRule toMd(String uuid) {
         SecurityRuleBuilder securityRuleBuilder = new SecurityRuleBuilder();
-        securityRuleBuilder.setId(toUuid(uuid));
+        securityRuleBuilder.setUuid(toUuid(uuid));
         return securityRuleBuilder.build();
     }
 
index c435869ec2a4afdd45d3356829e4171b1acdadb3..e084b8d516caff827e2dbc56fc5380b457fe4419 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.NeutronCRUDInterfaces;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+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.neutron.constants.rev150712.Dhcpv6Base;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.Dhcpv6Off;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.Dhcpv6Slaac;
@@ -144,7 +145,7 @@ public class NeutronSubnetInterface extends AbstractNeutronInterface<Subnet, Neu
         result.setTenantID(String.valueOf(subnet.getTenantId().getValue()).replace("-",""));
         result.setNetworkUUID(subnet.getNetworkId().getValue());
         result.setIpVersion(IPV_MAP.get(subnet.getIpVersion()));
-        result.setCidr(subnet.getCidr());
+        result.setCidr(String.valueOf(subnet.getCidr().getValue()));
         result.setIpV6RaMode(DHCPV6_MAP.get(subnet.getIpv6RaMode()));
         result.setIpV6AddressMode(DHCPV6_MAP.get(subnet.getIpv6AddressMode()));
         result.setEnableDHCP(subnet.isEnableDhcp());
@@ -152,8 +153,8 @@ public class NeutronSubnetInterface extends AbstractNeutronInterface<Subnet, Neu
             List<NeutronSubnetIPAllocationPool> allocationPools = new ArrayList<>();
             for (AllocationPools allocationPool : subnet.getAllocationPools()) {
                 NeutronSubnetIPAllocationPool pool = new NeutronSubnetIPAllocationPool();
-                pool.setPoolStart(allocationPool.getStart());
-                pool.setPoolEnd(allocationPool.getEnd());
+                pool.setPoolStart(String.valueOf(allocationPool.getStart().getValue()));
+                pool.setPoolEnd(String.valueOf(allocationPool.getEnd().getValue()));
                 allocationPools.add(pool);
             }
             result.setAllocationPools(allocationPools);
@@ -209,7 +210,8 @@ public class NeutronSubnetInterface extends AbstractNeutronInterface<Subnet, Neu
                     .getIpVersion()));
         }
         if (subnet.getCidr() != null) {
-            subnetBuilder.setCidr(subnet.getCidr());
+            IpPrefix ipPrefix = new IpPrefix(subnet.getCidr().toCharArray());
+            subnetBuilder.setCidr(ipPrefix);
         }
         if (subnet.getGatewayIP() != null) {
             IpAddress ipAddress = new IpAddress(subnet.getGatewayIP()
@@ -232,8 +234,8 @@ public class NeutronSubnetInterface extends AbstractNeutronInterface<Subnet, Neu
             for (NeutronSubnetIPAllocationPool allocationPool : subnet
                     .getAllocationPools()) {
                 AllocationPoolsBuilder builder = new AllocationPoolsBuilder();
-                builder.setStart(allocationPool.getPoolStart());
-                builder.setEnd(allocationPool.getPoolEnd());
+                builder.setStart(new IpAddress(allocationPool.getPoolStart().toCharArray()));
+                builder.setEnd(new IpAddress(allocationPool.getPoolEnd().toCharArray()));
                 AllocationPools temp = builder.build();
                 allocationPools.add(temp);
             }
index 98df6b769c4a524177bb87ef7658fe991714b78b..915917868af89932a9c1bd83078ce5bb4c17112d 100644 (file)
@@ -136,9 +136,6 @@ public class NeutronLoadBalancerPoolChangeListener implements ClusteredDataChang
         if (pool.getName() != null) {
             result.setLoadBalancerPoolName(pool.getName());
         }
-        if (pool.getDescr() != null) {
-            result.setLoadBalancerPoolDescription(pool.getDescr());
-        }
         if (pool.getProtocol() != null) {
             result.setLoadBalancerPoolProtocol(PROTOCOL_MAP.get(pool.getProtocol()));
         }
index ea9b98f84b4d627532485ea1e6c947bf5241346e..ab0840c7e21025f61e69923c758e6a708aee5a1c 100644 (file)
@@ -135,8 +135,8 @@ public class NeutronPortChangeListener implements ClusteredDataChangeListener, A
             List<NeutronPort_AllowedAddressPairs> pairs = new ArrayList<>();
             for (AllowedAddressPairs mdPair : port.getAllowedAddressPairs()) {
                 NeutronPort_AllowedAddressPairs pair = new NeutronPort_AllowedAddressPairs();
-                pair.setIpAddress(mdPair.getIpAddress());
-                pair.setMacAddress(mdPair.getMacAddress());
+                pair.setIpAddress(String.valueOf(mdPair.getIpAddress().getValue()));
+                pair.setMacAddress(mdPair.getMacAddress().getValue());
                 pairs.add(pair);
             }
             result.setAllowedAddressPairs(pairs);
@@ -163,7 +163,7 @@ public class NeutronPortChangeListener implements ClusteredDataChangeListener, A
             }
             result.setFixedIPs(ips);
         }
-        result.setMacAddress(port.getMacAddress());
+        result.setMacAddress(port.getMacAddress().getValue());
         result.setName(port.getName());
         result.setNetworkUUID(String.valueOf(port.getNetworkId().getValue()));
         if (port.getSecurityGroups() != null) {
@@ -193,14 +193,11 @@ public class NeutronPortChangeListener implements ClusteredDataChangeListener, A
         PortBindingExtension binding = port.getAugmentation(PortBindingExtension.class);
         result.setBindinghostID(binding.getHostId());
         if (binding.getVifDetails() != null) {
-            List<NeutronPort_VIFDetail> details = new ArrayList<>();
-            for (VifDetails vifDetail : binding.getVifDetails()) {
-                NeutronPort_VIFDetail detail = new NeutronPort_VIFDetail();
-                detail.setPortFilter(vifDetail.isPortFilter());
-                detail.setOvsHybridPlug(vifDetail.isOvsHybridPlug());
-                details.add(detail);
+            final Map<String, String> details = new HashMap<String, String>(binding.getVifDetails().size());
+            for (final VifDetails vifDetail : binding.getVifDetails()) {
+                details.put(vifDetail.getDetailsKey(), vifDetail.getValue());
             }
-            result.setVIFDetail(details);
+            result.setVIFDetails(details);
         }
         result.setBindingvifType(binding.getVifType());
         result.setBindingvnicType(binding.getVnicType());
index 911a203743c6c5d30960ab8f782f87ce60b2050f..9ff45910396814b991401239c2a8f31a29fc04be 100644 (file)
@@ -20,14 +20,12 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataCh
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronRouter;
-import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronRouter_Interface;
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronRouter_NetworkReference;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.netvirt.openstack.netvirt.translator.iaware.INeutronRouterAware;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.l3.attributes.Routes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.Routers;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.Router;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.Interfaces;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.rev150712.routers.attributes.routers.router.external_gateway_info.ExternalFixedIps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -150,21 +148,6 @@ public class NeutronRouterChangeListener implements ClusteredDataChangeListener,
             result.setExternalGatewayInfo(extGwInfo);
         }
 
-        if (router.getInterfaces() != null) {
-            Map<String, NeutronRouter_Interface> interfaces = new HashMap<>();
-            for (Interfaces mdInterface : router.getInterfaces()) {
-                NeutronRouter_Interface pojoInterface = new NeutronRouter_Interface();
-                String id = String.valueOf(mdInterface.getUuid().getValue());
-                pojoInterface.setID(id);
-                if (mdInterface.getTenantId() != null) {
-                     pojoInterface.setTenantID(String.valueOf(mdInterface.getTenantId().getValue()));
-                }
-                pojoInterface.setSubnetUUID(String.valueOf(mdInterface.getSubnetId().getValue()));
-                pojoInterface.setPortUUID(String.valueOf(mdInterface.getPortId().getValue()));
-                interfaces.put(id, pojoInterface);
-            }
-            result.setInterfaces(interfaces);
-        }
         return result;
     }
 
index e21d0d95fdba7c0a25e80b1d9a4ec7a596835361..31b6051d49c255cc1c41d46b2e9a2e7e0afb86e3 100644 (file)
@@ -118,25 +118,10 @@ public class NeutronSecurityGroupDataChangeListener implements ClusteredDataChan
         if (group.getName() != null) {
             answer.setSecurityGroupName(group.getName());
         }
-        if (group.getDescription() != null) {
-            answer.setSecurityGroupDescription(group.getDescription());
-        }
         if (group.getTenantId() != null) {
             answer.setSecurityGroupTenantID(group.getTenantId().getValue()
                     .replace("-", ""));
         }
-        if (group.getSecurityRules() != null) {
-            NeutronCRUDInterfaces interfaces = new NeutronCRUDInterfaces()
-                    .fetchINeutronSecurityRuleCRUD(this);
-            INeutronSecurityRuleCRUD srCrud = interfaces
-                    .getSecurityRuleInterface();
-
-            List<NeutronSecurityRule> rules = new ArrayList<>();
-            for (Uuid uuid : group.getSecurityRules()) {
-                rules.add(srCrud.getNeutronSecurityRule(uuid.getValue()));
-            }
-            answer.setSecurityRules(rules);
-        }
         if (group.getUuid() != null) {
             answer.setID(group.getUuid().getValue());
         }
index 439dfe2a30d8857683851e8ab513b2553e31efe0..db81334f9fa0edb785b59b34499e0f5298831749 100644 (file)
@@ -162,8 +162,8 @@ public class NeutronSecurityRuleDataChangeListener implements ClusteredDataChang
         if (rule.getPortRangeMax() != null) {
             answer.setSecurityRulePortMax(rule.getPortRangeMax());
         }
-        if (rule.getId() != null) {
-            answer.setID(rule.getId().getValue());
+        if (rule.getUuid() != null) {
+            answer.setID(rule.getUuid().getValue());
         }
         return answer;
     }
index d13c21458d665ab89d4c04ede2a7bef7cfba0901..7fa316d2f0c6959ae403238112ebbbbdc89faaa0 100644 (file)
@@ -144,7 +144,7 @@ public class NeutronSubnetChangeListener implements ClusteredDataChangeListener,
         }
         result.setNetworkUUID(subnet.getNetworkId().getValue());
         result.setIpVersion(IPV_MAP.get(subnet.getIpVersion()));
-        result.setCidr(subnet.getCidr());
+        result.setCidr(String.valueOf(subnet.getCidr().getValue()));
         if (subnet.getGatewayIp() != null) {
             result.setGatewayIP(String.valueOf(subnet.getGatewayIp().getValue()));
         }
@@ -159,8 +159,8 @@ public class NeutronSubnetChangeListener implements ClusteredDataChangeListener,
             List<NeutronSubnetIPAllocationPool> allocationPools = new ArrayList<>();
             for (AllocationPools allocationPool : subnet.getAllocationPools()) {
                 NeutronSubnetIPAllocationPool pool = new NeutronSubnetIPAllocationPool();
-                pool.setPoolStart(allocationPool.getStart());
-                pool.setPoolEnd(allocationPool.getEnd());
+                pool.setPoolStart(String.valueOf(allocationPool.getStart().getValue()));
+                pool.setPoolEnd(String.valueOf(allocationPool.getEnd().getValue()));
                 allocationPools.add(pool);
             }
             result.setAllocationPools(allocationPools);
index 5e0b980a886690f451b380b8b2bfa67c4227a008..bc6215358b3bb506853389a957ef51acf060b8af 100644 (file)
@@ -30,6 +30,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronPortCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityGroupCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 
 /**
  * Unit test fort {@link SecurityGroupCacheManagerImpl}
@@ -40,6 +41,7 @@ public class SecurityGroupCacheManagerImplTest {
     @InjectMocks private SecurityGroupCacheManagerImpl securityGroupCacheManagerImpl;
     @Mock private INeutronPortCRUD neutronPortCache;
     @Mock private INeutronSecurityGroupCRUD securityGroupCache;
+    @Mock private INeutronSecurityRuleCRUD neutronSecurityRuleCache;
     @Mock NeutronPort neutronPort_Vm1;
     @Mock NeutronPort neutronPort_Vm2;
     @Mock NeutronPort neutronPort_Vm3;
@@ -81,12 +83,10 @@ public class SecurityGroupCacheManagerImplTest {
         securityGroups_Vm_2.add(neutronSecurityGroup_2);
         List<NeutronSecurityGroup> securityGroups_Vm_3 = new ArrayList<>();
         securityGroups_Vm_3.add(neutronSecurityGroup_3);
-        List<NeutronSecurityRule> securityRule_1 = new ArrayList<>();
-        securityRule_1.add(neutronSecurityRule_1);
-        List<NeutronSecurityRule> securityRule_2 = new ArrayList<>();
-        securityRule_2.add(neutronSecurityRule_2);
-        List<NeutronSecurityRule> securityRule_3 = new ArrayList<>();
-        securityRule_3.add(neutronSecurityRule_3);
+        List<NeutronSecurityRule> securityRule = new ArrayList<>();
+        securityRule.add(neutronSecurityRule_1);
+        securityRule.add(neutronSecurityRule_2);
+        securityRule.add(neutronSecurityRule_3);
 
         neutron_IPs_1.add(neutron_ip_1);
         neutron_IPs_2.add(neutron_ip_2);
@@ -104,12 +104,16 @@ public class SecurityGroupCacheManagerImplTest {
         when(neutronPort_Vm3.getSecurityGroups()).thenReturn(securityGroups_Vm_3);
         when(neutronPort_Vm4.getSecurityGroups()).thenReturn(securityGroups_Vm_1);
         when(neutronPort_Vm5.getSecurityGroups()).thenReturn(securityGroups_Vm_3);
-        when(neutronSecurityGroup_1.getSecurityRules()).thenReturn(securityRule_1);
-        when(neutronSecurityGroup_2.getSecurityRules()).thenReturn(securityRule_2);
-        when(neutronSecurityGroup_3.getSecurityRules()).thenReturn(securityRule_3);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(securityRule);
         when(neutronSecurityGroup_1.getSecurityGroupUUID()).thenReturn(SECURITY_GROUP_ID_1);
         when(neutronSecurityGroup_2.getSecurityGroupUUID()).thenReturn(SECURITY_GROUP_ID_2);
         when(neutronSecurityGroup_3.getSecurityGroupUUID()).thenReturn(SECURITY_GROUP_ID_3);
+        when(neutronSecurityGroup_1.getID()).thenReturn(SECURITY_GROUP_ID_1);
+        when(neutronSecurityGroup_2.getID()).thenReturn(SECURITY_GROUP_ID_2);
+        when(neutronSecurityGroup_3.getID()).thenReturn(SECURITY_GROUP_ID_3);
+        when(neutronSecurityRule_1.getSecurityRuleGroupID()).thenReturn(SECURITY_GROUP_ID_1);
+        when(neutronSecurityRule_2.getSecurityRuleGroupID()).thenReturn(SECURITY_GROUP_ID_2);
+        when(neutronSecurityRule_3.getSecurityRuleGroupID()).thenReturn(SECURITY_GROUP_ID_3);
         when(neutronSecurityRule_1.getSecurityRemoteGroupID()).thenReturn(SECURITY_GROUP_ID_1);
         when(neutronSecurityRule_3.getSecurityRemoteGroupID()).thenReturn(SECURITY_GROUP_ID_2);
         when(neutronPort_Vm1.getFixedIPs()).thenReturn(neutron_IPs_1);
index d4444fbd01bc47a6b658d11ed2e4b691a021ced7..8f43b8406f09ec5fbb6409ccab13506bd5044f73 100644 (file)
@@ -41,6 +41,7 @@ import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule
 import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSubnet;
 import org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronPortCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
 import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
 import org.opendaylight.netvirt.utils.servicehelper.ServiceHelper;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105
@@ -62,6 +63,7 @@ public class SecurityServicesImplTest {
     @Mock private INeutronSubnetCRUD subNetCache;
     @Mock private Southbound southbound;
     @Mock private ConfigurationService configurationService;
+    @Mock private INeutronSecurityRuleCRUD neutronSecurityRuleCache;
     @Mock NeutronNetwork neutronNetwork;
     @Mock NeutronPort neutronPort_Vm1;
     @Mock NeutronPort neutronPort_Vm2;
@@ -105,12 +107,10 @@ public class SecurityServicesImplTest {
         securityGroups_2.add(neutronSecurityGroup_2);
         List<NeutronSecurityGroup> securityGroups_3 = new ArrayList<>();
         securityGroups_3.add(neutronSecurityGroup_3);
-        List<NeutronSecurityRule> securityRule_1 = new ArrayList<>();
-        securityRule_1.add(neutronSecurityRule_1);
-        List<NeutronSecurityRule> securityRule_2 = new ArrayList<>();
-        securityRule_1.add(neutronSecurityRule_2);
-        List<NeutronSecurityRule> securityRule_3 = new ArrayList<>();
-        securityRule_1.add(neutronSecurityRule_3);
+        List<NeutronSecurityRule> securityRule = new ArrayList<>();
+        securityRule.add(neutronSecurityRule_1);
+        securityRule.add(neutronSecurityRule_2);
+        securityRule.add(neutronSecurityRule_3);
 
         neutron_IPs_1.add(neutron_ip_1);
         neutron_IPs_2.add(neutron_ip_2);
@@ -122,12 +122,16 @@ public class SecurityServicesImplTest {
         when(neutronPort_Vm1.getSecurityGroups()).thenReturn(securityGroups_1);
         when(neutronPort_Vm2.getSecurityGroups()).thenReturn(securityGroups_2);
         when(neutronPort_Vm3.getSecurityGroups()).thenReturn(securityGroups_3);
-        when(neutronSecurityGroup_1.getSecurityRules()).thenReturn(securityRule_1);
-        when(neutronSecurityGroup_2.getSecurityRules()).thenReturn(securityRule_2);
-        when(neutronSecurityGroup_3.getSecurityRules()).thenReturn(securityRule_3);
+        when(neutronSecurityRuleCache.getAllNeutronSecurityRules()).thenReturn(securityRule);
         when(neutronSecurityGroup_1.getSecurityGroupUUID()).thenReturn(SECURITY_GROUP_ID_1);
         when(neutronSecurityGroup_2.getSecurityGroupUUID()).thenReturn(SECURITY_GROUP_ID_2);
         when(neutronSecurityGroup_3.getSecurityGroupUUID()).thenReturn(SECURITY_GROUP_ID_3);
+        when(neutronSecurityGroup_1.getID()).thenReturn(SECURITY_GROUP_ID_1);
+        when(neutronSecurityGroup_2.getID()).thenReturn(SECURITY_GROUP_ID_2);
+        when(neutronSecurityGroup_3.getID()).thenReturn(SECURITY_GROUP_ID_3);
+        when(neutronSecurityRule_1.getSecurityRuleGroupID()).thenReturn(SECURITY_GROUP_ID_1);
+        when(neutronSecurityRule_2.getSecurityRuleGroupID()).thenReturn(SECURITY_GROUP_ID_2);
+        when(neutronSecurityRule_3.getSecurityRuleGroupID()).thenReturn(SECURITY_GROUP_ID_3);
         when(neutronPort_Vm1.getDeviceOwner()).thenReturn(DEVICE_OWNER_VM);
         when(neutronPort_Vm2.getDeviceOwner()).thenReturn(DEVICE_OWNER_VM);
         when(neutronPort_Vm3.getDeviceOwner()).thenReturn(DEVICE_OWNER_VM);
index 486a900573482856cdd9160ca371ba014cdfc97d..6e4e343c8fca706fbd8af2f22999ff51bf07438f 100644 (file)
@@ -150,14 +150,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
    <!-- openflowplugin dependencies -->
     <dependency>
       <groupId>org.opendaylight.openflowplugin</groupId>
-      <artifactId>features-openflowplugin-li</artifactId>
+      <artifactId>features-openflowplugin</artifactId>
       <version>${openflowplugin.version}</version>
       <classifier>features</classifier>
       <type>xml</type>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.openflowplugin</groupId>
-      <artifactId>features-openflowplugin-extension-li</artifactId>
+      <artifactId>features-openflowplugin-extension</artifactId>
       <version>${openflowplugin.version}</version>
       <classifier>features</classifier>
       <type>xml</type>
@@ -175,6 +175,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
       <artifactId>routemgr-impl</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.netvirt</groupId>
+      <artifactId>utils.neutron-utils</artifactId>
+      <version>${project.version}</version>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>routemgr-config</artifactId>
@@ -187,6 +192,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
       <artifactId>routemgr-api</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.openflowplugin</groupId>
+      <artifactId>openflowplugin-extension-nicira</artifactId>
+      <version>${openflowplugin.version}</version>
+    </dependency>
 <!--
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
index 47ff039e706545d6838fb8cad3f3999a2eed24cd..bba1d8dc08a7ee954ac6c97ee3e6dff68d32b5ed 100644 (file)
@@ -7,15 +7,15 @@
 -->
   <repository>mvn:org.opendaylight.yangtools/features-yangtools/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.neutron/features-neutron/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin-extension-li/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin-li/{{VERSION}}/xml/features</repository>
+  <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin-extension/{{VERSION}}/xml/features</repository>
+  <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin/{{VERSION}}/xml/features</repository>
   <repository>mvn:org.opendaylight.ovsdb/southbound-features/1.3.0-SNAPSHOT/xml/features</repository>
   <feature name='odl-routemgr-plugin' description="Opendaylight :: Routemgr :: Plugin" version='${project.version}'>
-    <feature version="${openflowplugin.version}">odl-openflowplugin-flow-services-li</feature>
+    <feature version="${openflowplugin.version}">odl-openflowplugin-flow-services</feature>
     <feature version="${neutron.version}">odl-neutron-transcriber</feature>
     <feature version="1.3.0-SNAPSHOT">odl-ovsdb-southbound-impl</feature>
     <feature version='${controller.mdsal.version}'>odl-mdsal-broker</feature>
-    <feature version="${openflowplugin.version}">odl-openflowplugin-nxm-extensions-li</feature>
+    <feature version="${openflowplugin.version}">odl-openflowplugin-nxm-extensions</feature>
 <!--
     <feature version='${mdsal.model.version}'>odl-mdsal-models</feature>
 -->
index 5a90e06ca77f6e106ec302ad9814ba1020bd17c8..a3dba750bd8360076bf411131516a2380ab35d66 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.netvirt.routemgr.net;
 import com.google.common.net.InetAddresses;
 import org.opendaylight.netvirt.routemgr.utils.RoutemgrUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+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.Ipv6Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
@@ -133,8 +134,7 @@ public class IfMgr {
 
     /**
      * Add Subnet
-     *
-     * @param snetId subnet id
+     *  @param snetId subnet id
      * @param name subnet name
      * @param networkId network id
      * @param tenantId tenant id
@@ -147,7 +147,7 @@ public class IfMgr {
      */
     public void addSubnet(Uuid snetId, String name, Uuid networkId, Uuid tenantId,
                           IpAddress gatewayIp, List<AllocationPools> poolsList,
-                          String ipVersion, String subnetCidr,
+                          String ipVersion, IpPrefix subnetCidr,
                           String ipV6AddressMode, String ipV6RaMode) {
 
         // Save the gateway ipv6 address in its fully expanded format. We always store the v6Addresses
index 3accaf1197d458821a3a4c71c69d81a080709116..7fa40658b746fe99f2e1f778783b6eceb78568f8 100644 (file)
@@ -268,7 +268,7 @@ public class NetDataListener implements DataChangeListener {
                         fixedip.getSubnetId(),
                         port.getNetworkId(),
                         fixedip.getIpAddress(),
-                        port.getMacAddress(),
+                        port.getMacAddress().getValue(),
                         port.getDeviceOwner());
             } else {
                 // Add host interface
@@ -276,7 +276,7 @@ public class NetDataListener implements DataChangeListener {
                         fixedip.getSubnetId(),
                         port.getNetworkId(),
                         fixedip.getIpAddress(),
-                        port.getMacAddress(),
+                        port.getMacAddress().getValue(),
                         port.getDeviceOwner());
             }
         }
index b4de213dca857a97c25aeb9178bb40f718e97198..39082bf106b7b6d2db3f2d25772c91b2c29b27b4 100644 (file)
@@ -322,7 +322,7 @@ public class PktHandler implements PacketProcessingListener {
                         && (ifMgr.IPV6_AUTO_ADDRESS_SUBNETS.contains(subnet.getIpv6AddressMode())))
                     || ((!subnet.getIpv6RAMode().isEmpty())
                         && (ifMgr.IPV6_AUTO_ADDRESS_SUBNETS.contains(subnet.getIpv6RAMode())))) {
-                    prefixList.add(subnet.getSubnetCidr());
+                    prefixList.add(String.valueOf(subnet.getSubnetCidr().getValue()));
                 }
 
                 if (subnet.getIpv6RAMode().equalsIgnoreCase(ifMgr.IPV6_DHCPV6_STATELESS)) {
index 79445e63fdab731d1fbab6b2e8ecbfbbb25a45bb..18a216c91099c82d5e53f9bcc5bec0186dff8f6a 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.netvirt.routemgr.net;
 
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+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.yang.types.rev130715.Uuid;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,7 +26,7 @@ public class VirtualSubnet  {
     private IpAddress gatewayIp;
     private Boolean   allocPoolFlag;
     private List<APool> poolList;
-    private String subnetCidr;
+    private IpPrefix subnetCidr;
     private String ipVersion;
     private String ipv6AddressMode;
     private String ipv6RAMode;
@@ -94,12 +95,12 @@ public class VirtualSubnet  {
 
     public String getIpVersion() { return ipVersion;}
 
-    public VirtualSubnet setSubnetCidr(String subnetCidr) {
+    public VirtualSubnet setSubnetCidr(IpPrefix subnetCidr) {
         this.subnetCidr = subnetCidr;
         return this;
     }
 
-    public String getSubnetCidr() { return subnetCidr;}
+    public IpPrefix getSubnetCidr() { return subnetCidr;}
 
     public VirtualSubnet setIpv6AddressMode(String ipv6AddressMode) {
         this.ipv6AddressMode = ipv6AddressMode;
@@ -128,7 +129,7 @@ public class VirtualSubnet  {
         return allocPoolFlag;
     }
 
-    public void addPool(String start, String end) {
+    public void addPool(IpAddress start, IpAddress end) {
         APool pool = new APool();
         pool.setPoolStart(start);
         pool.setPoolEnd(end);
@@ -169,22 +170,22 @@ public class VirtualSubnet  {
     }
 
     private class APool {
-        private String poolStart;
-        private String poolEnd;
+        private IpAddress poolStart;
+        private IpAddress poolEnd;
 
-        public void setPoolStart(String start) {
+        public void setPoolStart(IpAddress start) {
             this.poolStart = start;
         }
 
-        public String getPoolStart() {
+        public IpAddress getPoolStart() {
             return poolStart;
         }
 
-        public void setPoolEnd(String end) {
+        public void setPoolEnd(IpAddress end) {
             this.poolEnd = end;
         }
 
-        public String getPoolEnd() {
+        public IpAddress getPoolEnd() {
             return poolEnd;
         }
     }
index 76f5df02bd9204113855a083be1eda8c112c807a..99a5f19176383cf00ef207332a448b4c9fb7851a 100644 (file)
@@ -12,6 +12,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+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.Ipv6Address;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
@@ -270,7 +271,7 @@ public class PktHandlerTest {
         v6Subnet.setGatewayIp(gwIpAddress);
         v6Subnet.setIpv6AddressMode(ifMgrInstance.IPV6_SLAAC);
         v6Subnet.setIpv6RAMode(ifMgrInstance.IPV6_SLAAC);
-        v6Subnet.setSubnetCidr("2001:db8::/64");
+        v6Subnet.setSubnetCidr(new IpPrefix("2001:db8::/64".toCharArray()));
 
         List<VirtualSubnet> subnetList = new ArrayList<>();
         subnetList.add(v6Subnet);
@@ -354,14 +355,14 @@ public class PktHandlerTest {
         v6Subnet1.setGatewayIp(gwIpAddress);
         v6Subnet1.setIpv6AddressMode(ifMgrInstance.IPV6_SLAAC);
         v6Subnet1.setIpv6RAMode(ifMgrInstance.IPV6_SLAAC);
-        v6Subnet1.setSubnetCidr("2001:db8:1111::/64");
+        v6Subnet1.setSubnetCidr(new IpPrefix("2001:db8:1111::/64".toCharArray()));
 
         VirtualSubnet v6Subnet2 = new VirtualSubnet();
         v6Subnet2.setRouter(vRouter);
         v6Subnet2.setGatewayIp(gwIpAddress);
         v6Subnet2.setIpv6AddressMode(ifMgrInstance.IPV6_DHCPV6_STATELESS);
         v6Subnet2.setIpv6RAMode(ifMgrInstance.IPV6_DHCPV6_STATELESS);
-        v6Subnet2.setSubnetCidr("2001:db8:2222::/64");
+        v6Subnet2.setSubnetCidr(new IpPrefix("2001:db8:2222::/64".toCharArray()));
 
         List<VirtualSubnet> subnetList = new ArrayList<>();
         subnetList.add(v6Subnet1);
index be18d67afce87925c50d77eedabeb4472abef282..a74642cafdbca7e4ff83d71c95779e0c2ef6bf45 100644 (file)
@@ -44,6 +44,16 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
           <artifactId>utils.mdsal-utils</artifactId>
           <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>openstack.net-virt</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+          <groupId>${project.groupId}</groupId>
+          <artifactId>utils.neutron-utils</artifactId>
+          <version>${project.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.ovsdb</groupId>
           <artifactId>utils.mdsal-utils</artifactId>
index c6bd5fa622ddb22ff16b64efeff2ca92a7e1b2da..f4cb9edcefffbcbc4ade4958ee0bc01965bb9886 100644 (file)
@@ -40,16 +40,16 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
             <artifactId>utils.servicehelper</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>openstack.net-virt</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     <!-- neutron dependencies -->
         <dependency>
             <groupId>org.opendaylight.neutron</groupId>
             <artifactId>model</artifactId>
             <version>0.7.0-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.neutron</groupId>
-            <artifactId>neutron-spi</artifactId>
-            <version>${neutron.version}</version>
-        </dependency>
     </dependencies>
 </project>
index c1fd40dc43a4580fc92832a56c98d16686929434..54d38d4e9c46085119be180fc24ffe9481966305 100644 (file)
@@ -10,13 +10,18 @@ package org.opendaylight.netvirt.utils.neutron.utils;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.opendaylight.neutron.spi.INeutronNetworkCRUD;
-import org.opendaylight.neutron.spi.INeutronPortCRUD;
-import org.opendaylight.neutron.spi.INeutronSubnetCRUD;
-import org.opendaylight.neutron.spi.NeutronNetwork;
-import org.opendaylight.neutron.spi.NeutronPort;
-import org.opendaylight.neutron.spi.NeutronSecurityGroup;
-import org.opendaylight.neutron.spi.NeutronSubnet;
+import java.util.UUID;
+
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronNetwork;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronPort;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityGroup;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSecurityRule;
+import org.opendaylight.netvirt.openstack.netvirt.translator.NeutronSubnet;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronNetworkCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronPortCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityGroupCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSecurityRuleCRUD;
+import org.opendaylight.netvirt.openstack.netvirt.translator.crud.INeutronSubnetCRUD;
 import org.opendaylight.netvirt.utils.servicehelper.ServiceHelper;
 
 public class NeutronUtils {
@@ -30,16 +35,16 @@ public class NeutronUtils {
         np.setDeviceOwner(owner);
         np.setMacAddress(mac);
         np.setNetworkUUID(networkId);
-        List<org.opendaylight.neutron.spi.Neutron_IPs> srcAddressList =
+        List<org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs> srcAddressList =
                 new ArrayList<>();
-        org.opendaylight.neutron.spi.Neutron_IPs nip = new org.opendaylight.neutron.spi.Neutron_IPs();
+        org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs nip = new org.opendaylight.netvirt.openstack.netvirt.translator.Neutron_IPs();
         nip.setIpAddress(ipaddr);
         nip.setSubnetUUID(subnetId);
         srcAddressList.add(nip);
         np.setFixedIPs(srcAddressList);
         List<NeutronSecurityGroup> nsgs = new ArrayList<>();
         np.setSecurityGroups(nsgs);
-        iNeutronPortCRUD.add(np);
+        iNeutronPortCRUD.addPort(np);
         return np;
     }
 
@@ -53,7 +58,7 @@ public class NeutronUtils {
         ns.initDefaults();
         ns.setNetworkUUID(networkId);
         ns.setTenantID(tenantId);
-        iNeutronSubnetCRUD.add(ns);
+        iNeutronSubnetCRUD.addSubnet(ns);
         return ns;
     }