SFC Agent Fixes 11/16511/1
authorReinaldo Penno <[email protected]>
Sat, 14 Mar 2015 07:03:55 +0000 (00:03 -0700)
committerReinaldo Penno <[email protected]>
Sat, 14 Mar 2015 07:03:55 +0000 (00:03 -0700)
- Prevent Agent from crashing on MAcos due to the lack
  of Netfiler
- Catch exception when SFF does not hava data plane locators
  configured

Change-Id: I3c001c94262960f37f21ce8bae9a053004219763
Signed-off-by: Reinaldo Penno <[email protected]>
sfc-py/common/classifier.py
sfc-py/sfc_agent.py

index d2909a241546aa0dde10bb5b7a795e3a7ed9b8dd..0c10700775208d14d20d37a081b83844bc3f948c 100644 (file)
@@ -14,7 +14,10 @@ import ipaddress
 import threading
 import subprocess
 
-from netfilterqueue import NetfilterQueue
+try:
+    from netfilterqueue import NetfilterQueue
+except ImportError:
+    print("Netfilter not supported or installed")
 
 from nsh.encode import build_packet
 from common.sfc_globals import ODLIP, USERNAME, PASSWORD
index 1323968cbad8151ce66f1b0f5ba8f35a81e706ac..2331cdcddcc5a000ca3cf6bdb0e4266bdd21944a 100644 (file)
@@ -190,13 +190,16 @@ def find_sff_locator_by_ip(addr):
     local_sff_topo = sfc_globals.get_sff_topo()
 
     for sff_name, sff_value in local_sff_topo.items():
-        for locator_value in sff_value['sff-data-plane-locator']:
-            if locator_value['data-plane-locator']['ip'] != addr:
-                continue
+        try:
+            for locator_value in sff_value['sff-data-plane-locator']:
+                if locator_value['data-plane-locator']['ip'] == addr:
+                    return sff_name
+                else:
+                    continue
+        except KeyError:
+            continue
 
-            return sff_name
-    else:
-        return None
+    return None
 
 
 def build_data_plane_service_path(service_path):