From 7e5424dac4c9f8edc6010164b614fdfa174614ec Mon Sep 17 00:00:00 2001 From: Charlotte Hausman <chausman@nrao.edu> Date: Mon, 13 Sep 2021 14:05:34 -0400 Subject: [PATCH] fix single image carta crashing --- .../pexable/carta_envoy/carta_envoy/carta.py | 26 +------- .../01de4f42cf27_fix_single_image_carta.py | 64 +++++++++++++++++++ 2 files changed, 65 insertions(+), 25 deletions(-) create mode 100644 schema/versions/01de4f42cf27_fix_single_image_carta.py diff --git a/apps/cli/executables/pexable/carta_envoy/carta_envoy/carta.py b/apps/cli/executables/pexable/carta_envoy/carta_envoy/carta.py index 77da18ada..51c7a66e3 100644 --- a/apps/cli/executables/pexable/carta_envoy/carta_envoy/carta.py +++ b/apps/cli/executables/pexable/carta_envoy/carta_envoy/carta.py @@ -68,28 +68,6 @@ def ensure_non_relative_path(location: str) -> Path: return Path(location) -def scaffold(settings: dict): - if settings["single_image"]: - directory = settings["data_location"] / settings["image_name"] - logger.info(f"Current working directory: {os.getcwd()}") - if Path(directory).exists() and Path(directory / settings["image_name"]).is_file(): - logger.info("Image file already exists! Proceeding...") - os.chdir(directory) - logger.info(f"Working directory is now {os.getcwd()}") - return - else: - logger.info( - "Image file not found. Product Fetch may still be in progress. Scaffolding structure for carta..." - ) - os.mkdir(settings["image_name"]) - os.chdir(directory) - os.chmod(os.getcwd(), 0o770) - # logger.info(f"Working directory is now {os.getcwd()}") - Path(directory / settings["image_name"]).touch() - os.chmod(Path(directory / settings["image_name"]), 0o770) - os.chdir(settings["data_location"]) - - def ensure_correct_directory(settings: dict): directory = settings["data_location"] logger.info(f"Current working directory: {os.getcwd()}") @@ -190,9 +168,7 @@ def main(): settings["image_name"] = args.image[0] if args.single: settings["single_image"] = True - if args.parallel: - scaffold(settings) - else: + if not args.parallel: ensure_correct_directory(settings) carta = CartaLauncher(settings) diff --git a/schema/versions/01de4f42cf27_fix_single_image_carta.py b/schema/versions/01de4f42cf27_fix_single_image_carta.py new file mode 100644 index 000000000..8d71038b3 --- /dev/null +++ b/schema/versions/01de4f42cf27_fix_single_image_carta.py @@ -0,0 +1,64 @@ +"""fix single image carta + +Revision ID: 01de4f42cf27 +Revises: b3667e00ef4a +Create Date: 2021-09-13 11:39:00.808773 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "01de4f42cf27" +down_revision = "b3667e00ef4a" +branch_labels = None +depends_on = None + +script_content = """#!/bin/sh +set -o errexit + +export HOME=$TMPDIR + +{{#need_data}} +./framework.sh -r . +chmod 770 . +cd rawdata/ +../productfetcher{{product_locator}} {{^single_image}}&{{/single_image}} +.{{/need_data}}./carta_envoy {{#need_data}}--parallel{{/need_data}} {{#single_image}}--single -i {{imageName}}{{/single_image}} -d $1 -n $2 -wf $3 -r $4 +{{#need_data}}wait{{/need_data}} + +""" + +old_content = """#!/bin/sh +set -o errexit + +export HOME=$TMPDIR + +{{#need_data}} +./framework.sh -r . +chmod 770 . +cd rawdata/ +../productfetcher{{product_locator}} & +.{{/need_data}}./carta_envoy {{#need_data}}--parallel{{/need_data}} {{#single_image}}--single -i {{imageName}}{{/single_image}} -d $1 -n $2 -wf $3 -r $4 +{{#need_data}}wait{{/need_data}} + +""" + + +def upgrade(): + op.execute( + f""" + UPDATE workflow_templates + SET content=E'{script_content}' WHERE filename='carta.sh' + """ + ) + + +def downgrade(): + op.execute( + f""" + UPDATE workflow_templates + SET content=E'{old_content}' WHERE filename='carta.sh' + """ + ) -- GitLab