D6928: ci: fetch explicit attributes
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Tue Oct 1 03:58:24 UTC 2019
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Now that we store the launch configuration in the job record
and this launch configuration can be several KB large, we need
to be careful about the data that we retrieve during queries, as
the overhead for fetching data we don't care about can be large.
Let's fetch an explicit list of fields when rendering the main
web UI.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6928
AFFECTED FILES
contrib/ci/lambda_functions/web.py
CHANGE DETAILS
diff --git a/contrib/ci/lambda_functions/web.py b/contrib/ci/lambda_functions/web.py
--- a/contrib/ci/lambda_functions/web.py
+++ b/contrib/ci/lambda_functions/web.py
@@ -95,7 +95,7 @@
cset_results = {}
- for entry in get_jobs_metdata(job_table, repo_name, push['node']):
+ for entry in get_jobs_metadata(job_table, repo_name, push['node']):
job_name = entry['job_name']
build_number = entry['build_number']
@@ -374,7 +374,7 @@
}
-def get_jobs_metdata(job_table, repo, node):
+def get_jobs_metadata(job_table, repo, node):
"""Obtain jobs records for a revision."""
exclusive_start_key = None
@@ -385,12 +385,27 @@
extra['ExclusiveStartKey'] = exclusive_start_key
res = job_table.scan(
- Select='ALL_ATTRIBUTES',
FilterExpression='repo = :repo AND node = :node',
ExpressionAttributeValues={
':repo': repo,
':node': node,
},
+ ProjectionExpression=', '.join((
+ 'build_number',
+ 'end_time',
+ 'execution_state',
+ 'exit_clean',
+ 'fail_count',
+ 'instance_hourly_cost',
+ 'job_id',
+ 'job_name',
+ 'output_log_url',
+ 'pass_count',
+ 'schedule_time',
+ 'skip_count',
+ 'start_time',
+ 'test_count',
+ )),
**extra
)
for entry in res['Items']:
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list