bundles/docker-immich: database not existing should not error out the script

after all, we have monitoring to ensure the database container runs
This commit is contained in:
Franzi 2025-05-06 18:32:20 +02:00
parent f9e87bde9e
commit 57c1eb2605
Signed by: kunsi
GPG key ID: 12E3D2136B818350

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python3
import logging
from json import loads
from os import environ
from subprocess import check_output
@ -12,6 +13,8 @@ PSQL_USER = environ['DB_USERNAME']
PSQL_PASS = environ['DB_PASSWORD']
PSQL_DB = environ['DB_DATABASE_NAME']
logging.basicConfig(level=logging.INFO)
docker_networks = loads(check_output(['docker', 'network', 'inspect', 'aaarghhh']))
container_ip = None
@ -26,9 +29,9 @@ for network in docker_networks:
container_ip = container['IPv4Address'].split('/')[0]
if not container_ip:
print(f'could not find ip address for container {PSQL_HOST=} in json')
print(docker_networks)
exit(1)
logging.error(f'could not find ip address for container {PSQL_HOST=} in json')
logging.debug(f'{docker_networks=}')
exit(0)
print(f'{PSQL_HOST=} {container_ip=}')
@ -49,6 +52,7 @@ with conn:
}
for i in cur.fetchall()
}
logging.debug(f'{albums=}')
with conn.cursor() as cur:
cur.execute('SELECT "id","name" FROM users;')
@ -56,25 +60,27 @@ with conn:
i[0]: i[1]
for i in cur.fetchall()
}
logging.debug(f'{users=}')
for album_id, album in albums.items():
print(f'----- working on album: {album["name"]}')
log = logging.getLogger(album["name"])
with conn:
with conn.cursor() as cur:
cur.execute('SELECT "usersId" FROM albums_shared_users_users WHERE "albumsId" = %s;', (album_id,))
album_shares = [i[0] for i in cur.fetchall()]
print(f' album is shared with {len(album_shares)} users: {album_shares}')
log.info(f'album is shared with {len(album_shares)} users: {album_shares}')
for user_id, user_name in users.items():
if user_id == album['owner'] or user_id in album_shares:
continue
print(f' sharing album with user {user_name} ... ', end='')
with conn.cursor() as cur:
cur.execute(
'INSERT INTO albums_shared_users_users ("albumsId","usersId","role") VALUES (%s, %s, %s);',
(album_id, user_id, 'viewer'),
)
print('done')
print()
log.info(f'sharing album with user {user_name}')
try:
with conn.cursor() as cur:
cur.execute(
'INSERT INTO albums_shared_users_users ("albumsId","usersId","role") VALUES (%s, %s, %s);',
(album_id, user_id, 'viewer'),
)
except Exception:
log.exception('failure while creating share')
conn.close()