From dd9467ac4a4dc75b842c0b9061b09f67db8a15ee Mon Sep 17 00:00:00 2001
From: Andy Bavier <acb@cs.princeton.edu>
Date: Mon, 8 Feb 2010 18:49:24 +0000
Subject: [PATCH] Ignore unknown nodes in the RSpec

---
 sfa/plc/network.py | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/sfa/plc/network.py b/sfa/plc/network.py
index c6dad6ec..a7a9b684 100644
--- a/sfa/plc/network.py
+++ b/sfa/plc/network.py
@@ -394,15 +394,25 @@ class Network:
         # Find slivers under node elements
         for sliver in rspec.iterfind("./network/site/node/sliver"):
             elem = sliver.getparent()
-            node = nodedict[elem.get("id")]
-            node.add_sliver()
-            self.__process_attributes(sliver, node)
+            try:
+                node = self.lookupNode(elem.get("id"))
+            except:
+                # Don't worry about nodes from other aggregates
+                pass
+            else:
+                node.add_sliver()
+                self.__process_attributes(sliver, node)
 
         # Find slivers that specify nodeid
         for sliver in rspec.iterfind("./request/sliver[@nodeid]"):
-            node = nodedict[sliver.get("nodeid")]
-            node.add_sliver()
-            self.__process_attributes(sliver, node)
+            try:
+                node = self.lookupNode(sliver.get("nodeid"))
+            except:
+                # Don't worry about nodes from other aggregates
+                pass
+            else:
+                node.add_sliver()
+                self.__process_attributes(sliver, node)
 
         return
 
-- 
2.47.0