SEBA-353 Pull step should be resilient to missing PonPorts;
Delete OLTDevice if Voltha unreachable

Change-Id: I806eaa9f3bdd281ef3184ec5d6e76177199d5cad
diff --git a/xos/synchronizer/pull_steps/pull_onus.py b/xos/synchronizer/pull_steps/pull_onus.py
index d4c2d10..18f047c 100644
--- a/xos/synchronizer/pull_steps/pull_onus.py
+++ b/xos/synchronizer/pull_steps/pull_onus.py
@@ -82,7 +82,7 @@
                     log.debug("Skipping pull on ONUDevice %s as enacted < updated" % model.serial_number, serial_number=model.serial_number, id=model.id, enacted=model.enacted, updated=model.updated)
                     # if we are not updating the device we still need to pull ports
                     self.fetch_onu_ports(model)
-                    return
+                    continue
 
             except IndexError:
                 model = ONUDevice()
@@ -90,6 +90,18 @@
 
                 log.debug("ONUDevice is new, creating it", serial_number=onu["serial_number"])
 
+            try:
+                olt = OLTDevice.objects.get(device_id=onu["parent_id"])
+            except IndexError:
+                log.warning("Unable to find olt for ONUDevice", serial_number=onu["serial_number"], olt_device_id=onu["parent_id"])
+                continue
+
+            try:
+                pon_port = PONPort.objects.get(port_no=onu["parent_port_no"], olt_device_id=olt.id)
+            except IndexError:
+                log.warning("Unable to find pon_port for ONUDevice", serial_number=onu["serial_number"], olt_device_id=onu["parent_id"], port_no=onu["parent_port_no"])
+                continue
+
             # Adding feedback state to the device
             model.vendor = onu["vendor"]
             model.device_type = onu["type"]
@@ -100,9 +112,6 @@
             model.connect_status = onu["connect_status"]
             model.xos_managed = False
 
-            olt = OLTDevice.objects.get(device_id=onu["parent_id"])
-            pon_port = PONPort.objects.get(port_no=onu["parent_port_no"], olt_device_id=olt.id)
-
             model.pon_port = pon_port
             model.pon_port_id = pon_port.id