LAVA: Re-write logics for better re-use
Some logics in LAVA related scripts need to be re-used.
Re-write these logics for future convenience.
Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
Change-Id: I969cd21ab2c9e118ccb8cc3331f27e49add44427
diff --git a/lava_helper/lava_submit_jobs.py b/lava_helper/lava_submit_jobs.py
index 2e0ab2f..3c91318 100755
--- a/lava_helper/lava_submit_jobs.py
+++ b/lava_helper/lava_submit_jobs.py
@@ -8,7 +8,7 @@
__copyright__ = """
/*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -75,20 +75,25 @@
sys.exit(1)
return lava
-def list_files_from_dir(user_args):
+def list_files_from_dir(user_args, job_dir=""):
+ if job_dir == "":
+ job_dir = user_args.job_dir
file_list = []
- for filename in glob.iglob(user_args.job_dir + '**/*.yaml', recursive=True):
+ for filename in glob.iglob(job_dir + '**/*.yaml', recursive=True):
file_list.append(filename)
print("Found job {}".format(filename))
return file_list
-def lava_dispatch(user_args):
+def lava_dispatch(user_args, job_dir=""):
""" Submit a job to LAVA backend, block untill it is completed, and
fetch the results files if successful. If not, calls sys exit with 1
return code """
+ if job_dir == "":
+ job_dir = user_args.job_dir
+
lava = test_lava_dispatch_credentials(user_args)
- file_list = list_files_from_dir(user_args)
+ file_list = list_files_from_dir(user_args, job_dir)
job_id_list = []
for job_file in file_list:
job_id, job_url = lava.submit_job(job_file)
@@ -100,10 +105,11 @@
print("Job submitted at: " + job_url)
job_id_list.append(job_id)
- print("JOBS: {}".format(",".join(str(x) for x in job_id_list)))
+ return job_id_list
def main(user_args):
- lava_dispatch(user_args)
+ job_id_list = lava_dispatch(user_args)
+ print("JOBS: {}".format(",".join(str(x) for x in job_id_list)))
def get_cmd_args():
diff --git a/lava_helper/lava_wait_jobs.py b/lava_helper/lava_wait_jobs.py
index 332e20c..a91fcfb 100755
--- a/lava_helper/lava_wait_jobs.py
+++ b/lava_helper/lava_wait_jobs.py
@@ -4,7 +4,7 @@
__copyright__ = """
/*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -60,6 +60,15 @@
job_list = user_args.job_ids.split(",")
job_list = [int(x) for x in job_list if x != '']
lava = test_lava_dispatch_credentials(user_args)
+ finished_jobs = get_finished_jobs(job_list, user_args, lava)
+ print_lava_urls(finished_jobs, user_args)
+ job_links(finished_jobs, user_args)
+ boot_report(finished_jobs, user_args)
+ test_report(finished_jobs, user_args, lava)
+ failure_report(finished_jobs, user_args)
+ csv_report(finished_jobs)
+
+def get_finished_jobs(job_list, user_args, lava):
finished_jobs = lava.block_wait_for_jobs(job_list, user_args.dispatch_timeout, 0.5)
unfinished_jobs = [item for item in job_list if item not in finished_jobs]
for job in unfinished_jobs:
@@ -70,12 +79,7 @@
info['job_dir'] = os.path.join(user_args.artifacts_path, "{}_{}".format(str(job), info['description']))
finished_jobs[job] = info
finished_jobs = fetch_artifacts(finished_jobs, user_args, lava)
- print_lava_urls(finished_jobs, user_args)
- job_links(finished_jobs, user_args)
- boot_report(finished_jobs, user_args)
- test_report(finished_jobs, user_args, lava)
- failure_report(finished_jobs, user_args)
- csv_report(finished_jobs)
+ return finished_jobs
def fetch_artifacts(jobs, user_args, lava):
if not user_args.artifacts_path:
@@ -254,10 +258,10 @@
"--job-ids", dest="job_ids", action="store", required=True, help="Comma separated list of job IDS"
)
cmdargs.add_argument(
- "--lava-token", dest="token_secret", action="store", help="LAVA auth token"
+ "--lava-token", dest="lava_token", action="store", help="LAVA auth token"
)
cmdargs.add_argument(
- "--lava-user", dest="token_usr", action="store", help="LAVA username"
+ "--lava-user", dest="lava_user", action="store", help="LAVA username"
)
cmdargs.add_argument(
"--use-env", dest="token_from_env", action="store_true", default=False, help="Use LAVA auth info from environment"