def delete(self, event_type, payload, timestamp): # notification payload doesn't have any date/time fields # so temporarily use metadata timestamp value as # updated_at field to retrieve version # Remove it when notification starts sending datetime field(s) payload['updated_at'] = timestamp version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') del payload['updated_at'] id = payload['account'] + swift.ID_SEP + \ payload['container'] + swift.ID_SEP + \ payload['object'] try: self.index_helper.delete_document( {'_id': id, '_version': version, '_routing': payload['account']}) return pipeline.DeleteItem( self.index_helper.plugin, event_type, payload, id ) except Exception as exc: LOG.error('Error deleting object %(id)s ' 'from index. Error: %(exc)s' % {'id': id, 'exc': exc})
def delete_recordset(self, event_type, payload, timestamp): version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') self.index_helper.delete_document( {'_id': payload['id'], '_version': version, '_parent': payload['zone_id']}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, payload['id'])
def delete(self, event_type, payload, port_id): LOG.debug("Deleting port information for %s; finding routing", port_id) try: self.index_helper.delete_document_unknown_parent(port_id) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, port_id) except Exception as exc: LOG.error('Error deleting port %(port_id)s ' 'from index. Error: %(exc)s' % { 'port_id': port_id, 'exc': exc })
def node_delete(self, event_type, payload, timestamp): node_id = payload['uuid'] LOG.debug("Deleting node %s", node_id) try: ports = self.port_helper.delete_documents_with_parent(node_id) deleted = [ pipeline.DeleteItem(self.port_helper.plugin, event_type, payload, port['_id']) for port in ports ] self.index_helper.delete_document({'_id': node_id}) deleted.append( pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, node_id)) return deleted except Exception as exc: LOG.error('Error deleting node %(node_id)s ' 'from index. Error: %(exc)s' % { 'node_id': node_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): router_id = payload['router_id'] LOG.debug("Deleting router information for %s", router_id) try: self.index_helper.delete_document({'_id': router_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, router_id) except Exception as exc: LOG.error('Error deleting router %(router)s ' 'from index: %(exc)s' % { 'router': router_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): fip_id = payload['floatingip_id'] LOG.debug("Deleting floatingip information for %s", fip_id) try: self.index_helper.delete_document({'_id': fip_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, fip_id) except Exception as exc: LOG.error('Error deleting floating ip %(fip)s ' 'from index: %(exc)s' % { 'fip': fip_id, 'exc': exc })
def delete_group(self, event_type, payload, timestamp): sec_id = payload['security_group_id'] LOG.debug("Deleting security group information for %s", sec_id) try: self.index_helper.delete_document({'_id': sec_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, sec_id) except Exception as exc: LOG.error( 'Error deleting security_group %(sec_id)s. Error: %(exc)s' % { 'sec_id': sec_id, 'exc': exc })
def chassis_delete(self, event_type, payload, timestamp): chassis_id = payload['uuid'] LOG.debug("Deleting chassis %s", chassis_id) try: self.index_helper.delete_document({'_id': chassis_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, chassis_id) except Exception as exc: LOG.error('Error deleting chassis %(chassis_id)s ' 'from index. Error: %(exc)s' % { 'chassis_id': chassis_id, 'exc': exc })
def port_delete(self, event_type, payload, timestamp): port_id = payload['uuid'] LOG.debug("Deleting port %s", port_id) try: self.index_helper.delete_document_unknown_parent(port_id) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, port_id) except Exception as exc: LOG.error('Error deleting port %(port_id)s ' 'from index. Error: %(exc)s' % { 'port_id': port_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): subnet_id = payload['subnet_id'] LOG.debug("Deleting subnet information for %s; finding routing", subnet_id) try: self.index_helper.delete_document_unknown_parent(subnet_id) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, subnet_id) except Exception as exc: LOG.error('Error deleting subnet %(subnet_id)s ' 'from index: %(exc)s' % { 'subnet_id': subnet_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): zone_id = payload['id'] version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') delete_recordset = self.recordset_helper.delete_documents_with_parent( zone_id, version=version) items = [ pipeline.DeleteItem(self.recordset_helper.plugin, event_type, payload, rs['_id']) for rs in delete_recordset ] try: self.index_helper.delete_document({ '_id': zone_id, '_version': version }) items.append( pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, zone_id)) except exceptions.NotFoundError: msg = "Zone %s not found when deleting" LOG.error(msg, zone_id) return items
def delete(self, event_type, payload, timestamp): flavor = payload['nova_object.data'] flavor_id = flavor['flavorid'] LOG.debug("Deleting nova flavor information for %s", flavor_id) try: self.index_helper.delete_document({'_id': flavor_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, flavor_id) except Exception as exc: LOG.error('Error deleting flavor %(flavor_id)s ' 'from index: %(exc)s' % { 'flavor_id': flavor_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): network_id = payload['network_id'] LOG.debug("Deleting network information for %s", network_id) try: # Note that it's not necessary to delete ports; neutron will not # allow deletion of a network that has ports assigned on it self.index_helper.delete_document({'_id': network_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, network_id) except Exception as exc: LOG.error('Error deleting network %(network_id)s ' 'from index. Error: %(exc)s' % { 'network_id': network_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') id = payload['account'] try: self.index_helper.delete_document( {'_id': id, '_version': version, '_routing': payload['account']}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, id) except Exception as exc: LOG.error('Error deleting account %(id)s ' 'from index. Error: %(exc)s' % {'id': id, 'exc': exc})
def delete(self, event_type, payload, timestamp): volume_id = payload['volume_id'] LOG.debug("Deleting cinder volume information for %s", volume_id) if not volume_id: return try: self.index_helper.delete_document({'_id': volume_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, volume_id) except Exception as exc: LOG.error('Error deleting volume %(volume_id)s ' 'from index. Error: %(exc)s' % { 'volume_id': volume_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): server_group_id = payload['server_group_id'] LOG.debug("Deleting nova server group information for %s", server_group_id) if not server_group_id: return try: self.index_helper.delete_document({'_id': server_group_id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, server_group_id) except Exception as exc: LOG.error('Error deleting server group %(server_group_id)s ' 'from index: %(exc)s' % { 'server_group_id': server_group_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): image_id = payload['id'] try: version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') self.index_helper.delete_document({ '_id': image_id, '_version': version }) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, image_id) except Exception as exc: LOG.error('Error deleting image %(image_id)s from index: %(exc)s' % { 'image_id': image_id, 'exc': exc })
def delete(self, event_type, payload, timestamp): instance_id = payload['instance_id'] LOG.debug("Deleting nova instance information for %s", instance_id) if not instance_id: return try: version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') self.index_helper.delete_document( {'_id': instance_id, '_version': version}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, instance_id ) except Exception as exc: LOG.error( 'Error deleting instance %(instance_id)s ' 'from index: %(exc)s' % {'instance_id': instance_id, 'exc': exc})
def delete(self, event_type, payload, timestamp): snapshot_id = payload['snapshot_id'] volume_id = payload['volume_id'] LOG.debug("Deleting cinder snapshot information for %s", snapshot_id) if not snapshot_id: return try: self.index_helper.delete_document({ '_id': snapshot_id, '_parent': volume_id }) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, snapshot_id) except Exception as exc: LOG.error( _LE('Error deleting snapshot %(snapshot_id)s ' 'from index. Error: %(exc)s') % { 'snapshot_id': snapshot_id, 'exc': exc })
def delete_from_versioned(self, event_type, payload, timestamp): payload = payload['nova_object.data'] instance_id = payload['uuid'] version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') try: version = self.get_version(payload, timestamp, preferred_date_field='deleted_at') self.index_helper.delete_document({ '_id': instance_id, '_version': version }) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, instance_id) except Exception as exc: LOG.error('Error deleting instance %(instance_id)s ' 'from index: %(exc)s' % { 'instance_id': instance_id, 'exc': exc })
def delete_ns(self, event_type, payload, timestamp): id = payload['namespace'] self.index_helper.delete_document({'_id': id}) return pipeline.DeleteItem(self.index_helper.plugin, event_type, payload, id)