Skip to content

Commit 491e2f2

Browse files
authored
Nits and stuff (#3565)
* Correct jenkins/Makefile header comment * Add default test types to pbench-fio usage text * Remove non-existent files from the linters' attentions * Simplify upload content-length handling * Fix setValueFromPath() docstring * Make contrib pbench script use 'latest' container label * Update Legacy test gold files
1 parent de55992 commit 491e2f2

File tree

18 files changed

+36
-47
lines changed

18 files changed

+36
-47
lines changed

.flake8

-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@
22
doctests = True
33
filename =
44
*.py
5-
*server/bin/pbench-backup-tarballs
6-
*server/bin/pbench-cull-unpacked-tarballs
75
*server/bin/pbench-index
86
*server/bin/pbench-reindex
9-
*server/bin/pbench-unpack-tarballs
10-
*server/bin/pbench-verify-backup-tarballs
117
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,*web-server/*,
128
*agent/bench-scripts/test-bin/fio-histo-log-pctiles.py,
139
*agent/bench-scripts/tests/pbench-trafficgen/test-39.trafficgen/*,

agent/bench-scripts/pbench-fio

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ nr_samples=5
3535
maxstddevpct=5 # maximum allowable standard deviation in percent
3636
max_failures=6 # after N failed attempts to hit below ${maxstddevpct}, move on to the next test
3737
supported_test_types="read,write,rw,randread,randwrite,randrw"
38-
test_types="read,randread" # default is -non- destructive
38+
default_test_types="read,randread" # default is -non- destructive
39+
test_types=${default_test_types}
3940
pre_check="n"
4041
export config=""
4142
rate_iops=""
@@ -71,7 +72,7 @@ function usage {
7172
printf "The following options are available:\n"
7273
printf "\n"
7374
printf -- "\t-t str[,str...] --test-types=str[,str...]\n"
74-
printf "\t\tone or more of %s\n" $supported_test_types
75+
printf "\t\tone or more of %s (default is %s)\n" $supported_test_types $default_test_types
7576
printf "\n"
7677
printf -- "\t--direct=[0/1]\n"
7778
printf "\t\t1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled\n"

agent/bench-scripts/tests/pbench-fio/test-14.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The following options are available:
44

55
-t str[,str...] --test-types=str[,str...]
6-
one or more of read,write,rw,randread,randwrite,randrw
6+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
77

88
--direct=[0/1]
99
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/pbench-fio/test-17.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The following options are available:
44

55
-t str[,str...] --test-types=str[,str...]
6-
one or more of read,write,rw,randread,randwrite,randrw
6+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
77

88
--direct=[0/1]
99
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/pbench-fio/test-18.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pbench-fio --
66
The following options are available:
77

88
-t str[,str...] --test-types=str[,str...]
9-
one or more of read,write,rw,randread,randwrite,randrw
9+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
1010

1111
--direct=[0/1]
1212
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/pbench-fio/test-21.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pbench-fio --
66
The following options are available:
77

88
-t str[,str...] --test-types=str[,str...]
9-
one or more of read,write,rw,randread,randwrite,randrw
9+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
1010

1111
--direct=[0/1]
1212
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/pbench-fio/test-22.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++ Running test-22 pbench-fio
2-
[error][1900-01-01T00:00:00.000000] [pbench-fio] fio failed reporting its version: '/var/tmp/pbench-test-bench/opt/pbench-agent/bench-scripts/pbench-fio: line 477: fio: command not found'
2+
[error][1900-01-01T00:00:00.000000] [pbench-fio] fio failed reporting its version: '/var/tmp/pbench-test-bench/opt/pbench-agent/bench-scripts/pbench-fio: line 478: fio: command not found'
33
--- Finished test-22 pbench-fio (status=1)
44
+++ pbench tree state
55
/var/tmp/pbench-test-bench/pbench-agent
@@ -15,5 +15,5 @@
1515
[debug][1900-01-01T00:00:00.000000] fio_pre_check(targets="/tmp/fio", clients="", ver="3.21", match="gte")
1616
[debug][1900-01-01T00:00:00.000000] Running pre-check locally
1717
[debug][1900-01-01T00:00:00.000000] local_pre_check(devs="", ver="3.21", match="gte")
18-
[error][1900-01-01T00:00:00.000000] [pbench-fio] fio failed reporting its version: '/var/tmp/pbench-test-bench/opt/pbench-agent/bench-scripts/pbench-fio: line 477: fio: command not found'
18+
[error][1900-01-01T00:00:00.000000] [pbench-fio] fio failed reporting its version: '/var/tmp/pbench-test-bench/opt/pbench-agent/bench-scripts/pbench-fio: line 478: fio: command not found'
1919
--- pbench.log file contents

agent/bench-scripts/tests/pbench-fio/test-26.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pbench-fio bar,zab --
66
The following options are available:
77

88
-t str[,str...] --test-types=str[,str...]
9-
one or more of read,write,rw,randread,randwrite,randrw
9+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
1010

1111
--direct=[0/1]
1212
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/pbench-fio/test-27.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pbench-fio /var/tmp/pbench-test-bench/tmp/test-27_clients.file --
66
The following options are available:
77

88
-t str[,str...] --test-types=str[,str...]
9-
one or more of read,write,rw,randread,randwrite,randrw
9+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
1010

1111
--direct=[0/1]
1212
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/pbench-fio/test-29.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pbench-fio --
66
The following options are available:
77

88
-t str[,str...] --test-types=str[,str...]
9-
one or more of read,write,rw,randread,randwrite,randrw
9+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
1010

1111
--direct=[0/1]
1212
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

agent/bench-scripts/tests/test-benchmark-clis/test-CL.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Bench Script: pbench-fio --help
55
The following options are available:
66

77
-t str[,str...] --test-types=str[,str...]
8-
one or more of read,write,rw,randread,randwrite,randrw
8+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
99

1010
--direct=[0/1]
1111
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled
@@ -100,7 +100,7 @@ Bench Script: pbench-fio --tool-group=bad --sysinfo=bad
100100
The following options are available:
101101

102102
-t str[,str...] --test-types=str[,str...]
103-
one or more of read,write,rw,randread,randwrite,randrw
103+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
104104

105105
--direct=[0/1]
106106
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled
@@ -195,7 +195,7 @@ pbench-fio --bad-to-the-bone
195195
The following options are available:
196196

197197
-t str[,str...] --test-types=str[,str...]
198-
one or more of read,write,rw,randread,randwrite,randrw
198+
one or more of read,write,rw,randread,randwrite,randrw (default is read,randread)
199199

200200
--direct=[0/1]
201201
1 = O_DIRECT enabled (default), 0 = O_DIRECT disabled

build.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ python3 -m pip install --user -r lint-requirements.txt
1313
# match the owner of the Git checkout, then Git issues an error; these config
1414
# settings avoid the problem.
1515
GITTOP=$(git rev-parse --show-toplevel 2>&1 | head -n 1)
16-
if [[ ${GITTOP} =~ "fatal: unsafe repository ('/home/root/pbench'" ]] ; then
16+
if [[ ${GITTOP} = "fatal: unsafe repository ('/home/root/pbench'"* ]] ; then
1717
git config --global --add safe.directory /home/root/pbench
1818
GITTOP=$(git rev-parse --show-toplevel)
1919
fi
@@ -45,4 +45,4 @@ make -C agent/rpm ci
4545
make -C dashboard build
4646

4747
# Display our victory
48-
ls -l ${HOME}/rpmbuild*/RPMS/noarch/*
48+
ls -l "${HOME}"/rpmbuild*/RPMS/noarch/*

contrib/containerized-pbench/pbench

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
# contrib/containerized-pbench/pbench pbench-results-move \
3333
# --server https://<server>:8443 --token <api-token>
3434

35-
image_name=${PB_AGENT_IMAGE_NAME:-quay.io/pbench/pbench-agent-all-centos-8:main}
35+
image_name=${PB_AGENT_IMAGE_NAME:-quay.io/pbench/pbench-agent-all-centos-8:latest}
3636
pbench_run_dir=${PB_AGENT_RUN_DIR:-/var/tmp/${USER}/pbench-agent/run}
3737
ca=${PB_AGENT_CA:-${REQUESTS_CA_BUNDLE}}
3838
if [[ ${ca} ]]; then

dashboard/src/actions/overviewActions.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ const isServerInternal = (string) =>
549549
* @function
550550
* @param {String} path - nested key to update
551551
* @param {Object} obj - nested object
552-
* @param {String} obj - new value to be updated in the object
552+
* @param {String} value - new value to be updated in the object
553553
* @return {Object} - updated object with new value
554554
*/
555555

jenkins/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# A simple Makefile for building and pushing the various pbench-devel-*
2+
# A simple Makefile for building and pushing the various pbench-ci-fedora
33
# and pbench-rpmbuild container images.
44
#
55
# This makefile defines the following targets:

lib/pbench/server/api/resources/intake_base.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,13 @@ def _intake(
245245

246246
audit: Optional[Audit] = None
247247
intake_dir: Optional[Path] = None
248-
notes = []
248+
notes: list[str] = []
249249

250250
prefix = current_app.server_config.rest_uri
251251
origin = f"{self._get_uri_base(request).host}{prefix}/datasets/"
252252

253+
dataset: Optional[Dataset] = None
254+
253255
try:
254256
try:
255257
authorized_user = Auth.token_auth.current_user()
@@ -488,7 +490,7 @@ def _intake(
488490
)
489491
attributes["missing_metadata"] = True
490492
else:
491-
p = metalog.get("pbench")
493+
p: Optional[JSONOBJECT] = metalog.get("pbench")
492494
if p:
493495
benchmark = p.get("script", Metadata.SERVER_BENCHMARK_UNKNOWN)
494496
else:

lib/pbench/server/api/resources/upload.py

+10-20
Original file line numberDiff line numberDiff line change
@@ -105,26 +105,16 @@ def _stream(self, intake: Intake, request: Request) -> Access:
105105
Raises:
106106
APIAbort on failure
107107
"""
108-
try:
109-
length_string = request.headers["Content-Length"]
110-
content_length = int(length_string)
111-
except KeyError as e:
112-
# NOTE: Werkzeug is "smart" about header access, and knows that
113-
# Content-Length is an integer. Therefore, a non-integer value
114-
# will raise KeyError. It's virtually impossible to report the
115-
# actual incorrect value as we'd just get a KeyError again.
116-
raise APIAbort(
117-
HTTPStatus.LENGTH_REQUIRED,
118-
"Missing or invalid 'Content-Length' header",
119-
) from e
120-
except ValueError as e:
121-
# NOTE: Because of the way Werkzeug works, this should not be
122-
# possible: if Content-Length isn't an integer, we'll see the
123-
# KeyError. This however serves as a clarifying backup case.
124-
raise APIAbort(
125-
HTTPStatus.BAD_REQUEST,
126-
f"Invalid 'Content-Length' header, not an integer ({length_string})",
127-
) from e
108+
# Werkzeug returns an integer or None; either way, a false-y value is
109+
# bad, so report it as an error.
110+
content_length = request.content_length
111+
if not content_length:
112+
cl_val = request.headers.get("Content-Length")
113+
if cl_val is None:
114+
msg = "Missing or invalid 'Content-Length' header"
115+
else:
116+
msg = f"Invalid 'Content-Length' header: {cl_val}"
117+
raise APIAbort(HTTPStatus.LENGTH_REQUIRED, msg)
128118
return Access(content_length, request.stream)
129119

130120
def _put(self, args: ApiParams, request: Request, context: ApiContext) -> Response:

lib/pbench/test/unit/server/test_upload.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ def test_empty_upload(
418418
filename = "tmp.tar.xz"
419419
datafile = tmp_path / filename
420420
datafile.touch()
421-
expected_message = "'Content-Length' 0 must be greater than 0"
421+
expected_message = "Invalid 'Content-Length' header: 0"
422422
with datafile.open("rb") as data_fp:
423423
response = client.put(
424424
self.gen_uri(server_config, filename),
@@ -429,7 +429,7 @@ def test_empty_upload(
429429
pbench_drb_token, "d41d8cd98f00b204e9800998ecf8427e"
430430
),
431431
)
432-
assert response.status_code == HTTPStatus.BAD_REQUEST
432+
assert response.status_code == HTTPStatus.LENGTH_REQUIRED
433433
assert response.json.get("message") == expected_message
434434
self.verify_logs(caplog)
435435
assert not self.cachemanager_created

0 commit comments

Comments
 (0)