def onTreeSpanningComponentBeforeDelete(ob, event): """ When a component that links a device to another tree is going to be removed, update the device's paths. """ if not IObjectWillBeAddedEvent.providedBy(event): component = ob try: catalog = ob.getPhysicalRoot().zport.global_catalog except (KeyError, AttributeError): # Migrate script hasn't run yet; ignore indexing return device = component.device() if not device: # OS relation has already been broken; get by path path = component.getPrimaryPath() try: devpath = path[:path.index('devices') + 2] device = component.unrestrictedTraverse(devpath) except ValueError: # We've done our best. Give up. return if device: oldpaths = devicePathsFromComponent(component) catalog.unindex_object_from_paths(device, oldpaths)
def onTreeSpanningComponentBeforeDelete(ob, event): """ When a component that links a device to another tree is going to be removed, update the device's paths. """ if not IObjectWillBeAddedEvent.providedBy(event): component = ob try: catalog = ob.getPhysicalRoot().zport.global_catalog except (KeyError, AttributeError): # Migrate script hasn't run yet; ignore indexing return device = component.device() if not device: # OS relation has already been broken; get by path path = component.getPrimaryPath() try: devpath = path[:path.index('devices')+2] device = component.unrestrictedTraverse(devpath) except ValueError: # We've done our best. Give up. return if device: oldpaths = devicePathsFromComponent(component) catalog.unindex_object_from_paths(device, oldpaths)
def onTreeSpanningComponentAfterAddOrMove(ob, event): if not IObjectRemovedEvent.providedBy(event): component = ob try: catalog = ob.getPhysicalRoot().zport.global_catalog except (KeyError, AttributeError): # Migrate script hasn't run yet; ignore indexing return device = component.device() if not device: # OS relation has been broken or doesn't exist yet; get by path path = component.getPrimaryPath() try: devpath = path[:path.index('devices') + 2] device = component.unrestrictedTraverse(devpath) except ValueError: # We've done our best. Give up. return if device: newpaths = devicePathsFromComponent(component) catalog.index_object_under_paths(device, newpaths)
def onTreeSpanningComponentAfterAddOrMove(ob, event): if not IObjectRemovedEvent.providedBy(event): component = ob try: catalog = ob.getPhysicalRoot().zport.global_catalog except (KeyError, AttributeError): # Migrate script hasn't run yet; ignore indexing return device = component.device() if not device: # OS relation has been broken or doesn't exist yet; get by path path = component.getPrimaryPath() try: devpath = path[:path.index('devices')+2] device = component.unrestrictedTraverse(devpath) except ValueError: # We've done our best. Give up. return if device: newpaths = devicePathsFromComponent(component) catalog.index_object_under_paths(device, newpaths)