def _image_locations_set(image_id, locations, session): location_refs = session.query(models.ImageLocation)\ .filter_by(image_id=image_id)\ .filter_by(deleted=False)\ .all() for location_ref in location_refs: location_ref.delete(session=session) for location in locations: location_ref = models.ImageLocation(image_id=image_id, value=location) location_ref.save()
def image_location_add(context, image_id, location, session=None): deleted = location['status'] in ('deleted', 'pending_delete') delete_time = timeutils.utcnow() if deleted else None location_ref = models.ImageLocation(image_id=image_id, value=location['url'], meta_data=location['metadata'], status=location['status'], deleted=deleted, deleted_at=delete_time) session = session or get_session() location_ref.save(session=session)