Retrieves logs from a container.
(self, container_id_or_name: str)
| 319 | return result.returncode |
| 320 | |
| 321 | def get_container_logs(self, container_id_or_name: str) -> str: |
| 322 | """Retrieves logs from a container.""" |
| 323 | print(f"Getting logs for container: {container_id_or_name}") |
| 324 | try: |
| 325 | result = self._run_docker_command( |
| 326 | ["logs", container_id_or_name], check=False |
| 327 | ) |
| 328 | if result.returncode == 0: |
| 329 | logs = result.stdout |
| 330 | print(f"Logs retrieved for {container_id_or_name}.") |
| 331 | return logs |
| 332 | else: |
| 333 | # Container may have exited, try to get logs anyway |
| 334 | print(f"Warning: docker logs returned exit code {result.returncode}") |
| 335 | logs = result.stdout if result.stdout else result.stderr |
| 336 | return logs |
| 337 | except KeyboardInterrupt as ki: |
| 338 | handle_keyboard_interrupt(ki) |
| 339 | raise |
| 340 | except Exception as e: |
| 341 | print(f"Warning: Failed to get container logs: {e}") |
| 342 | return "" |
| 343 | |
| 344 | def stop_container(self, container_id_or_name: str): |
| 345 | """Stops a running container with fast shutdown (1 second grace period).""" |
no test coverage detected