Move dependencies on non-core models into try/except blocks

Change-Id: I5a613bd763c5538a93934e18061681d03726f91c
diff --git a/xos/synchronizer/steps/sync_port_addresses.py b/xos/synchronizer/steps/sync_port_addresses.py
index 0ff7d67..37d8dc6 100644
--- a/xos/synchronizer/steps/sync_port_addresses.py
+++ b/xos/synchronizer/steps/sync_port_addresses.py
@@ -8,7 +8,6 @@
 from synchronizers.base.syncstep import SyncStep
 from core.models import Service, Port, Controller, Tag, Tenant
 from core.models.service import COARSE_KIND
-from services.vsg.models import VSGTenant
 from xos.logger import Logger, logging
 from requests.auth import HTTPBasicAuth
 from services.vtn.models import VTNService
@@ -41,49 +40,54 @@
             logger.info("skipping SyncPortAddresses due to VTN API Version")
             return
 
-        logger.info("sync'ing vsg tenant to port addresses")
-
         # build up a dictionary of port-->[wan_addrs] mappings
         port_addrs = {}
-        for vsg in VSGTenant.get_tenant_objects().all():
-            if not vsg.instance:
-                logger.info("skipping vsg %s because it has no instance" % vsg)
+        try:
+            from services.vsg.models import VSGTenant
 
-            wan_ip = vsg.wan_container_ip
-            if not wan_ip:
-                logger.info("skipping vsg %s because it has no wan_container_ip" % vsg)
+            logger.info("sync'ing vsg tenant to port addresses")
 
-            wan_mac = vsg.wan_container_mac
-            if not wan_mac:
-                logger.info("skipping vsg %s because it has no wan_container_mac" % vsg)
+            for vsg in VSGTenant.get_tenant_objects().all():
+                if not vsg.instance:
+                    logger.info("skipping vsg %s because it has no instance" % vsg)
 
-            lan_network = vsg.get_lan_network(vsg.instance)
-            if not lan_network:
-                logger.info("skipping vsg %s because it has no lan_network" % vsg)
+                wan_ip = vsg.wan_container_ip
+                if not wan_ip:
+                    logger.info("skipping vsg %s because it has no wan_container_ip" % vsg)
 
-            lan_port = Port.objects.filter(instance = vsg.instance, network=lan_network)
-            if not lan_port:
-                logger.info("skipping vsg %s because it has no lan_port" % vsg)
-            lan_port = lan_port[0]
+                wan_mac = vsg.wan_container_mac
+                if not wan_mac:
+                    logger.info("skipping vsg %s because it has no wan_container_mac" % vsg)
 
-            if not lan_port.port_id:
-                logger.info("skipping vsg %s because its lan_port has no port_id" % vsg)
+                lan_network = vsg.get_lan_network(vsg.instance)
+                if not lan_network:
+                    logger.info("skipping vsg %s because it has no lan_network" % vsg)
 
-            if not (lan_port.pk in port_addrs):
-                port_addrs[lan_port.pk] = []
-            entry = {"mac_address": wan_mac, "ip_address": wan_ip}
-            addr_pairs = port_addrs[lan_port.pk]
-            if not entry in addr_pairs:
-                 addr_pairs.append(entry)
+                lan_port = Port.objects.filter(instance = vsg.instance, network=lan_network)
+                if not lan_port:
+                    logger.info("skipping vsg %s because it has no lan_port" % vsg)
+                lan_port = lan_port[0]
 
-            # now do the VM_WAN_IP from the instance
-            if vsg.instance:
-                wan_vm_ip = vsg.wan_vm_ip
-                wan_vm_mac = vsg.wan_vm_mac
-                entry = {"mac_address": wan_vm_mac, "ip_address": wan_vm_ip}
+                if not lan_port.port_id:
+                    logger.info("skipping vsg %s because its lan_port has no port_id" % vsg)
+
+                if not (lan_port.pk in port_addrs):
+                    port_addrs[lan_port.pk] = []
+                entry = {"mac_address": wan_mac, "ip_address": wan_ip}
+                addr_pairs = port_addrs[lan_port.pk]
                 if not entry in addr_pairs:
                     addr_pairs.append(entry)
 
+                # now do the VM_WAN_IP from the instance
+                if vsg.instance:
+                    wan_vm_ip = vsg.wan_vm_ip
+                    wan_vm_mac = vsg.wan_vm_mac
+                    entry = {"mac_address": wan_vm_mac, "ip_address": wan_vm_ip}
+                    if not entry in addr_pairs:
+                        addr_pairs.append(entry)
+        except:
+            logger.info("No VSG service present")
+
         # Get all ports in all controllers
         ports_by_id = {}
         for controller in Controller.objects.all():