CORD-2307: Query service graph with missing links

Change-Id: Ie1ffd531783d6e2b83c4064aece04948d6f712f0
(cherry picked from commit ab6525053d632ac7e665433a4b302b20051cc618)
diff --git a/xos/synchronizer/steps/sync_vspgwctenant.py b/xos/synchronizer/steps/sync_vspgwctenant.py
index c81babb..3354690 100644
--- a/xos/synchronizer/steps/sync_vspgwctenant.py
+++ b/xos/synchronizer/steps/sync_vspgwctenant.py
@@ -22,6 +22,8 @@
 parentdir = os.path.join(os.path.dirname(__file__), "..")
 sys.path.insert(0, parentdir)
 
+class ServiceGraphException(Exception):
+    pass
 
 class SyncVSPGWCTenant(SyncInstanceUsingAnsible):
     observes = VSPGWCTenant
@@ -251,7 +253,7 @@
             except StopIteration:
                 self.log.error(
                     'Could not find service type in service graph', service_type=sitype, object=o)
-                raise Exception(
+                raise ServiceGraphException(
                     "Synchronization failed due to incomplete service graph")
 
         return peer_service 
@@ -267,8 +269,9 @@
         return instance_id
 
     def has_instance(self, sitype, o):
-        i = self.get_peer_serviceinstance_of_type(sitype, o)
-        if not i:
+        try:
+            i = self.get_peer_serviceinstance_of_type(sitype, o)
+        except ServiceGraphException:
             self.log.info("Missing in ServiceInstance graph",
                           serviceinstance=sitype)
             return False