added paths for ssd and hdd as parameter

This commit is contained in:
Kevin Veen-Birkenbach 2024-01-09 18:27:43 +01:00
parent 678f0fa999
commit 19f368556e

View File

@ -45,30 +45,40 @@ def pause_and_move(storage_path,volume):
start_containers(containers) start_containers(containers)
# Path on the SSD where data will be moved if __name__ == "__main__":
ssd_path = "/path/to/ssd" # Argument parser setup
hdd_path = "/path/to/hdd" parser = argparse.ArgumentParser(description='Migrate Docker volumes to SSD or HDD based on container image.')
parser.add_argument('--ssd_path', type=str, required=True, help='Path to the SSD storage')
# List all Docker volumes parser.add_argument('--hdd_path', type=str, required=True, help='Path to the HDD storage')
volumes = run_command("docker volume ls -q").splitlines()
for volume in volumes:
# List all containers using this volume
containers = run_command(f"docker ps -q --filter volume={volume}").splitlines()
volume_path = get_volume_path(volume)
if is_symbolic_link(volume_path):
print(f"Skipped Volume {volume}. The storage path {volume_path} is a symbolic link.")
for container in containers: # Parse arguments
# Get the image of the container args = parser.parse_args()
image = get_image(container)
# Check if the image contains "postgres" or "mariadb" # Set paths from arguments
if is_database(image): ssd_path = args.ssd_path
print(f"Container {container} with database image {image} found, using volume {volume}.") hdd_path = args.hdd_path
pause_and_move(ssd_path,volume)
else:
print(f"Container {container} with file image {image} found, using volume {volume}.")
pause_and_move(hdd_path,volume)
print("Operation completed.") # List all Docker volumes
volumes = run_command("docker volume ls -q").splitlines()
for volume in volumes:
# List all containers using this volume
containers = run_command(f"docker ps -q --filter volume={volume}").splitlines()
volume_path = get_volume_path(volume)
if is_symbolic_link(volume_path):
print(f"Skipped Volume {volume}. The storage path {volume_path} is a symbolic link.")
for container in containers:
# Get the image of the container
image = get_image(container)
# Check if the image contains "postgres" or "mariadb"
if is_database(image):
print(f"Container {container} with database image {image} found, using volume {volume}.")
pause_and_move(ssd_path,volume)
else:
print(f"Container {container} with file image {image} found, using volume {volume}.")
pause_and_move(hdd_path,volume)
print("Operation completed.")