dont exit on error if in docker

pull/55/head
Junkbite 4 years ago committed by GitHub
parent 270e15b2ac
commit 4b27d8b432
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -64,6 +64,8 @@ if DEV:
settingsFilename = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'dev-{}'.format(BASE_CONFIG)) settingsFilename = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'dev-{}'.format(BASE_CONFIG))
else: else:
settingsFilename = os.path.join(os.path.abspath(os.path.dirname(__file__)), BASE_CONFIG) settingsFilename = os.path.join(os.path.abspath(os.path.dirname(__file__)), BASE_CONFIG)
sys.tracebacklimit = 0 # dont show stack traces in prod mode
config = configparser.ConfigParser() config = configparser.ConfigParser()
config.read(settingsFilename) config.read(settingsFilename)

@ -100,7 +100,7 @@ def get_quality_profiles(instance_session, instance_url, instance_key):
profiles_response = instance_session.get(instance_profile_url) profiles_response = instance_session.get(instance_profile_url)
if profiles_response.status_code != 200: if profiles_response.status_code != 200:
logger.error(f'Could not get profile id from {instance_profile_url}') logger.error(f'Could not get profile id from {instance_profile_url}')
sys.exit(0) exit_system()
instance_profiles = None instance_profiles = None
try: try:
@ -108,7 +108,7 @@ def get_quality_profiles(instance_session, instance_url, instance_key):
return instance_profiles return instance_profiles
except: except:
logger.error(f'Could not decode profile id from {instance_profile_url}') logger.error(f'Could not decode profile id from {instance_profile_url}')
sys.exit(0) exit_system()
def get_profile_from_id(instance_session, instance_url, instance_key, instance_profile, instance_name=''): def get_profile_from_id(instance_session, instance_url, instance_key, instance_profile, instance_name=''):
@ -117,7 +117,7 @@ def get_profile_from_id(instance_session, instance_url, instance_key, instance_p
profile = next((item for item in instance_profiles if item["name"].lower() == instance_profile.lower()), False) profile = next((item for item in instance_profiles if item["name"].lower() == instance_profile.lower()), False)
if not profile: if not profile:
logger.error('Could not find profile_id for instance {} profile {}'.format(instance_name, instance_profile)) logger.error('Could not find profile_id for instance {} profile {}'.format(instance_name, instance_profile))
sys.exit(0) exit_system()
instance_profile_id = profile.get('id') instance_profile_id = profile.get('id')
logger.debug(f'found profile_id (instance{instance_name}) "{instance_profile_id}" from profile "{instance_profile}"') logger.debug(f'found profile_id (instance{instance_name}) "{instance_profile_id}" from profile "{instance_profile}"')
@ -130,14 +130,14 @@ def get_tag_from_id(instance_session, instance_url, instance_key, instance_tag,
tag_response = instance_session.get(instance_tag_url) tag_response = instance_session.get(instance_tag_url)
if tag_response.status_code != 200: if tag_response.status_code != 200:
logger.error(f'Could not get tag id from (instance{instance_name}) {instance_tag_url} - only works on Sonarr') logger.error(f'Could not get tag id from (instance{instance_name}) {instance_tag_url} - only works on Sonarr')
sys.exit(0) exit_system()
instance_tags = None instance_tags = None
try: try:
instance_tags = tag_response.json() instance_tags = tag_response.json()
except: except:
logger.error(f'Could not decode tag id from {instance_tag_url}') logger.error(f'Could not decode tag id from {instance_tag_url}')
sys.exit(0) exit_system()
tag_ids = [] tag_ids = []
for item in instance_tags: for item in instance_tags:
@ -147,14 +147,14 @@ def get_tag_from_id(instance_session, instance_url, instance_key, instance_tag,
if not tag_ids: if not tag_ids:
logger.error(f'Could not find tag_id for instance {instance_name} and tag {instance_tags}') logger.error(f'Could not find tag_id for instance {instance_name} and tag {instance_tags}')
sys.exit(0) exit_system()
instance_tag_ids = [tag.get('id') for tag in tag_ids] instance_tag_ids = [tag.get('id') for tag in tag_ids]
logger.debug(f'found id "{instance_tag_ids}" from tag "{instance_tag}" for instance {instance_name}') logger.debug(f'found id "{instance_tag_ids}" from tag "{instance_tag}" for instance {instance_name}')
if instance_tag_ids is None: if instance_tag_ids is None:
logger.error(f'tag_id is None for instance {instance_name} and tag {instance_tag}') logger.error(f'tag_id is None for instance {instance_name} and tag {instance_tag}')
sys.exit(0) exit_system()
return instance_tag_ids return instance_tag_ids
@ -164,28 +164,28 @@ def get_language_from_id(instance_session, instance_url, instance_key, instance_
language_response = instance_session.get(instance_language_url) language_response = instance_session.get(instance_language_url)
if language_response.status_code != 200: if language_response.status_code != 200:
logger.error(f'Could not get language id from (instance{instance_name}) {instance_language_url} - only works on sonarr v3') logger.error(f'Could not get language id from (instance{instance_name}) {instance_language_url} - only works on sonarr v3')
sys.exit(0) exit_system()
instance_languages = None instance_languages = None
try: try:
instance_languages = language_response.json() instance_languages = language_response.json()
except: except:
logger.error(f'Could not decode language id from {instance_language_url}') logger.error(f'Could not decode language id from {instance_language_url}')
sys.exit(0) exit_system()
instance_languages = instance_languages[0]['languages'] instance_languages = instance_languages[0]['languages']
language = next((item for item in instance_languages if item.get('language', {}).get('name').lower() == instance_language.lower()), False) language = next((item for item in instance_languages if item.get('language', {}).get('name').lower() == instance_language.lower()), False)
if not language: if not language:
logger.error(f'Could not find language_id for instance {instance_name} and language {instance_language}') logger.error(f'Could not find language_id for instance {instance_name} and language {instance_language}')
sys.exit(0) exit_system()
instance_language_id = language.get('language', {}).get('id') instance_language_id = language.get('language', {}).get('id')
logger.debug(f'found id "{instance_language_id}" from language "{instance_language}" for instance {instance_name}') logger.debug(f'found id "{instance_language_id}" from language "{instance_language}" for instance {instance_name}')
if instance_language_id is None: if instance_language_id is None:
logger.error(f'language_id is None for instance {instance_name} and language {instance_language}') logger.error(f'language_id is None for instance {instance_name} and language {instance_language}')
sys.exit(0) exit_system()
return instance_language_id return instance_language_id
@ -278,13 +278,13 @@ def get_instance_contents(instance_url, instance_key, instance_session, instance
if instance_contents.status_code != 200: if instance_contents.status_code != 200:
logger.error('instance{} server error - response {}'.format(instance_name, instance_contents.status_code)) logger.error('instance{} server error - response {}'.format(instance_name, instance_contents.status_code))
sys.exit(0) exit_system()
else: else:
try: try:
instance_contents = instance_contents.json() instance_contents = instance_contents.json()
except: except:
logger.error(f'Could not decode contents from {instance_content_url}') logger.error(f'Could not decode contents from {instance_content_url}')
sys.exit(0) exit_system()
for content_to_sync in instance_contents: for content_to_sync in instance_contents:
instance_contentIds.append(content_to_sync[content_id_key]) instance_contentIds.append(content_to_sync[content_id_key])
@ -310,7 +310,7 @@ def check_status(instance_session, instance_url, instance_key, instance_name='',
status_response = check_status(instance_session, instance_url, instance_key, instance_name, True) status_response = check_status(instance_session, instance_url, instance_key, instance_name, True)
elif status_response.status_code != 200: elif status_response.status_code != 200:
logger.error(error_message) logger.error(error_message)
sys.exit(0) exit_system()
except: except:
if not changed_api_version and not is_lidarr: if not changed_api_version and not is_lidarr:
@ -320,7 +320,7 @@ def check_status(instance_session, instance_url, instance_key, instance_name='',
if status_response is None: if status_response is None:
logger.error(error_message) logger.error(error_message)
sys.exit(0) exit_system()
else: else:
try: try:
status_response = status_response.json() status_response = status_response.json()
@ -328,11 +328,11 @@ def check_status(instance_session, instance_url, instance_key, instance_name='',
if not isinstance(status_response, dict): if not isinstance(status_response, dict):
logger.error( logger.error(
f"Could not retrieve status for {instance_status_url}: {status_response} - {error}") f"Could not retrieve status for {instance_status_url}: {status_response} - {error}")
sys.exit(0) exit_system()
if(status_response.get('error')): if(status_response.get('error')):
logger.error(f"{instance_status_url} error {status_response.get('error')}") logger.error(f"{instance_status_url} error {status_response.get('error')}")
sys.exit(0) exit_system()
logger.debug(f"{instance_status_url} version {status_response.get('version')}") logger.debug(f"{instance_status_url} version {status_response.get('version')}")
@ -461,6 +461,14 @@ def sync_content():
######################################################################################################################## ########################################################################################################################
def exit_system():
"""we dont want to exit if in docker"""
if is_in_docker:
raise Exception
else:
sys.exit(0)
if is_in_docker: if is_in_docker:
logger.info('syncing every {} seconds'.format(instance_sync_interval_seconds)) logger.info('syncing every {} seconds'.format(instance_sync_interval_seconds))
@ -468,5 +476,8 @@ sync_content()
if is_in_docker: if is_in_docker:
while True: while True:
time.sleep(instance_sync_interval_seconds) try:
sync_content() time.sleep(instance_sync_interval_seconds)
sync_content()
except Exception as inst:
d = inst

Loading…
Cancel
Save