Merge "Use ${project.version} for internal dependencies"
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / impl / SecurityServicesImpl.java
index fe878c3cc6eb032b46cac74f7de87921649ceb59..11e8943a1d8d04fe0e465d7c5629a47d633649a9 100644 (file)
@@ -397,7 +397,8 @@ public class SecurityServicesImpl implements ConfigInterface, SecurityServicesMa
         /*For every port check whether security grouplist contains the current
          * security group.*/
         try {
-            for (NeutronPort neutronPort:neutronL3Adapter.getPortCleanupCache()) {
+            for (String neutronPortUuid:neutronL3Adapter.getPortCleanupCache().keySet()) {
+                NeutronPort neutronPort = neutronL3Adapter.getPortCleanupCache().get(neutronPortUuid);
                 if (!neutronPort.getDeviceOwner().contains("compute")) {
                     LOG.debug("getVMListForSecurityGroup : the port {} is not "
                             + "compute port belongs to {}", neutronPort.getID(), neutronPort.getDeviceOwner());
@@ -438,6 +439,9 @@ public class SecurityServicesImpl implements ConfigInterface, SecurityServicesMa
                 return;
             }
             NeutronNetwork neutronNetwork = neutronNetworkCache.getNetwork(port.getNetworkUUID());
+            if (null == neutronNetwork) {
+                neutronNetwork = neutronL3Adapter.getNetworkFromCleanupCache(port.getNetworkUUID());
+            }
             if (neutronNetwork == null) {
                 return;
             }
@@ -480,6 +484,9 @@ public class SecurityServicesImpl implements ConfigInterface, SecurityServicesMa
                 return;
             }
             NeutronNetwork neutronNetwork = neutronNetworkCache.getNetwork(port.getNetworkUUID());
+            if (null == neutronNetwork) {
+                neutronNetwork = neutronL3Adapter.getNetworkFromCleanupCache(port.getNetworkUUID());
+            }
             if (neutronNetwork == null) {
                 return;
             }
@@ -498,15 +505,14 @@ public class SecurityServicesImpl implements ConfigInterface, SecurityServicesMa
             if (dpid == 0L) {
                 return;
             }
-            if ("IPv4".equals(securityRule.getSecurityRuleEthertype())
-                    && "ingress".equals(securityRule.getSecurityRuleDirection())) {
-
-                ingressAclProvider.programPortSecurityRule(dpid, segmentationId, attachedMac, localPort,
-                                                           securityRule, vmIp, write);
-            } else if (securityRule.getSecurityRuleEthertype().equals("IPv4")
-                    && securityRule.getSecurityRuleDirection().equals("egress")) {
-                egressAclProvider.programPortSecurityRule(dpid, segmentationId, attachedMac, localPort,
-                                                          securityRule, vmIp, write);
+            if (NeutronSecurityRule.ETHERTYPE_IPV4.equals(securityRule.getSecurityRuleEthertype())) {
+                if (NeutronSecurityRule.DIRECTION_INGRESS.equals(securityRule.getSecurityRuleDirection())) {
+                    ingressAclProvider.programPortSecurityRule(dpid, segmentationId, attachedMac, localPort,
+                            securityRule, vmIp, write);
+                } else if (NeutronSecurityRule.DIRECTION_EGRESS.equals(securityRule.getSecurityRuleDirection())) {
+                    egressAclProvider.programPortSecurityRule(dpid, segmentationId, attachedMac, localPort,
+                            securityRule, vmIp, write);
+                }
             }
         }
     }