Skip to content

Commit

Permalink
Some updates to improve usability. Allow query to be read in from a
Browse files Browse the repository at this point in the history
file, handling for codegen errors, good user for x509 proxy
  • Loading branch information
ponyisi authored and BenGalewsky committed Feb 4, 2025
1 parent 64eb414 commit 998d426
Showing 1 changed file with 26 additions and 10 deletions.
36 changes: 26 additions & 10 deletions local_test_harness/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ def send_request(query, port):


def generate_zipfile(result, output_folder):
if result.status_code != 200:
raise RuntimeError(f"Codegen failed. Error:\n{result.text}")
decoder_parts = decoder.MultipartDecoder.from_response(result)
zipfile = decoder_parts.parts[3].content
zipfile = ZipFile(BytesIO(zipfile))
Expand All @@ -58,22 +60,25 @@ def run_docker_compose_for_science(image, filepath):


def send_root_file_to_science(root_file, output_file, output_format):
subprocess.run(["docker", "compose", "run", "science", "python",
"/generated/transform_single_file.py",
root_file, output_file, output_format])
subprocess.run(["docker", "compose", "run", "science",
"bash", "--login", "-c", "python3 /generated/transform_single_file.py "
f"{root_file} {output_file} {output_format}"])


def run_x509_proxy(proxy_image = "sslhep/x509-secrets:develop"):
def run_x509_proxy(proxy_image="sslhep/x509-secrets:develop"):
my_env = os.environ.copy()
subprocess.run(["docker" ,"run", "-it", "--mount", f"type=bind,source={my_env['HOME']}/.globus,readonly,target=/globus",
"-v", "/tmp:/tmp", "--rm", proxy_image,
subprocess.run(["docker", "run", "-it", "--mount", f"type=bind,source={my_env['HOME']}/.globus,readonly,target=/globus",
"-v", "/tmp:/tmp", "--rm",
"--user", f"{os.getuid()}:{os.getgid()}",
proxy_image,
"voms-proxy-init", "-voms", "atlas", "-cert",
"/globus/usercert.pem", "-key", "/globus/userkey.pem" ,"-out", "/tmp/x509up"
"/globus/usercert.pem", "-key", "/globus/userkey.pem", "-out", "/tmp/x509up"
]
)


if __name__ == "__main__":
import os
try:
parser = argparse.ArgumentParser(description='Run the servicex codegen and science container')
parser.add_argument('--proxy_image', help='Run the x509 proxy for image')
Expand All @@ -86,11 +91,22 @@ def run_x509_proxy(proxy_image = "sslhep/x509-secrets:develop"):
docker_compose_up()
time.sleep(10)

cgc = a.get_config()['codegen']
if 'query' in cgc:
query = cgc['query']
elif 'query_file' in cgc:
with open(cgc['query_file'], 'r') as infile:
query = infile.read()
else:
raise RuntimeError('cannot find query or query_file in config.yaml')

output_folder = "temp1"
if not os.path.exists(output_folder):
os.mkdir(output_folder)
result = send_request(
query=a.get_config()['codegen']['query'] , #query,#,
query=query,
port=a.get_config()['codegen']['port'])
generate_zipfile(result, output_folder="temp1")

generate_zipfile(result, output_folder=output_folder)

send_root_file_to_science(
root_file= a.get_config()['science']['rootfile'],
Expand Down

0 comments on commit 998d426

Please sign in to comment.