mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 23:08:06 +02:00
Another big round of refactoring and cleaning...
This commit is contained in:
53
roles/sys-rpr-docker-hard/files/sys-rpr-docker-hard.py
Normal file
53
roles/sys-rpr-docker-hard/files/sys-rpr-docker-hard.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
def restart_docker_services(dir_path):
|
||||
"""
|
||||
Restart docker-compose services in the given directory.
|
||||
"""
|
||||
try:
|
||||
print(f"Restarting docker-compose services in: {dir_path}")
|
||||
subprocess.run(["docker-compose", "restart"], cwd=dir_path, check=True)
|
||||
print(f"Services restarted successfully in: {dir_path}")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error restarting services in {dir_path}: {e}")
|
||||
|
||||
def hard_restart_docker_services(dir_path):
|
||||
"""
|
||||
Perform a hard restart of docker-compose services in the given directory
|
||||
using docker-compose down and docker-compose up -d.
|
||||
"""
|
||||
try:
|
||||
print(f"Performing hard restart for docker-compose services in: {dir_path}")
|
||||
subprocess.run(["docker-compose", "down"], cwd=dir_path, check=True)
|
||||
subprocess.run(["docker-compose", "up", "-d"], cwd=dir_path, check=True)
|
||||
print(f"Hard restart completed successfully in: {dir_path}")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error during hard restart in {dir_path}: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print("Please provide the path to the parent directory as a parameter.")
|
||||
sys.exit(1)
|
||||
|
||||
parent_directory = sys.argv[1]
|
||||
|
||||
for dir_entry in os.scandir(parent_directory):
|
||||
if dir_entry.is_dir():
|
||||
dir_path = dir_entry.path
|
||||
dir_name = os.path.basename(dir_path)
|
||||
print(f"Checking directory: {dir_path}")
|
||||
|
||||
docker_compose_file = os.path.join(dir_path, "docker-compose.yml")
|
||||
|
||||
if os.path.isfile(docker_compose_file):
|
||||
print(f"Found docker-compose.yml in {dir_path}.")
|
||||
if dir_name == "mailu":
|
||||
print(f"Directory {dir_name} detected. Performing hard restart...")
|
||||
hard_restart_docker_services(dir_path)
|
||||
else:
|
||||
print(f"Restarting services in {dir_path}...")
|
||||
restart_docker_services(dir_path)
|
||||
else:
|
||||
print(f"No docker-compose.yml found in {dir_path}. Skipping.")
|
Reference in New Issue
Block a user