Soft delete a cube (set is_active to False). Args: cube_id (str): The cube ID. Returns: bool: True if successful, False otherwise.
(self, cube_id: str)
| 452 | session.close() |
| 453 | |
| 454 | def delete_cube(self, cube_id: str) -> bool: |
| 455 | """Soft delete a cube (set is_active to False). |
| 456 | |
| 457 | Args: |
| 458 | cube_id (str): The cube ID. |
| 459 | |
| 460 | Returns: |
| 461 | bool: True if successful, False otherwise. |
| 462 | """ |
| 463 | session = self._get_session() |
| 464 | try: |
| 465 | cube = session.query(Cube).filter(Cube.cube_id == cube_id).first() |
| 466 | if not cube: |
| 467 | return False |
| 468 | |
| 469 | cube.is_active = False |
| 470 | session.commit() |
| 471 | logger.info(f"Cube '{cube_id}' deactivated") |
| 472 | return True |
| 473 | except Exception as e: |
| 474 | session.rollback() |
| 475 | logger.error(f"Error deleting cube: {e}") |
| 476 | return False |
| 477 | finally: |
| 478 | session.close() |
| 479 | |
| 480 | def close(self) -> None: |
| 481 | """Close the database engine and dispose of all connections. |