Skip to content

Commit

Permalink
fix: keep request_hashe consistent
Browse files Browse the repository at this point in the history
Signed-off-by: Paul Spooren <[email protected]>
  • Loading branch information
aparcar committed Feb 15, 2025
1 parent 3770090 commit eda8c8c
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 6 deletions.
18 changes: 16 additions & 2 deletions asu/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,9 @@ def get_request_hash(build_request: BuildRequest) -> str:
build_request.version_code,
build_request.target,
build_request.profile.replace(",", "_"),
get_packages_hash(build_request.packages),
get_packages_hash(
build_request.packages_versions.keys() or build_request.packages
),
get_manifest_hash(build_request.packages_versions),
str(build_request.diff_packages),
"", # build_request.filesystem
Expand All @@ -166,7 +168,19 @@ def get_packages_hash(packages: list[str]) -> str:
Returns:
str: hash of `req`
"""
return get_str_hash(" ".join(sorted(list(set(packages)))))
return get_str_hash(
" ".join(
sorted(
list(
set(
get_packages_hash(
x.removeprefix("+") for x in (build_request.packages)
),
)
)
)
)
)


def fingerprint_pubkey_usign(pubkey: str) -> str:
Expand Down
6 changes: 3 additions & 3 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ def test_api_build_request_hash(client):
profile="testprofile",
)

case12hash = "8d8e0aa2fd95bb75dba4aff4279dd6f976a40ad17300927d54b8a9a9b0576306"
case34hash = "6b1645013216da39ee09deae75b87b0636f3c50648b037750b0a80448ce5c7ca"
case12hash = "000315ebb40566079ad33725b46ac857a57c8fa24aba56728fa4209955e4a5e2"
case34hash = "551a84817b4d2c094666bc7309bf502f6df830a8d2bfa84a48c2bec4ab92f968"

# Case 1 - diff_packages=True, first package ordering
json["diff_packages"] = True
Expand Down Expand Up @@ -683,7 +683,7 @@ def test_api_build_defaults_filled_allowed(app):
data = response.json()
assert (
data["request_hash"]
== "9c8d0cd7d9ec208a233b954edb20c3c20b5c11103bb7f5f1ebface565f8c6720"
== "c4d60f93797308a12e81b65b8c53864f2318442a0dbbadc52233a9861e2565f6"
)


Expand Down
2 changes: 1 addition & 1 deletion tests/test_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def test_get_request_hash():

assert (
get_request_hash(request)
== "99ff721439cd696f7da259541a07d7bfc7eb6c45a844db532e0384b464e23f46"
== "f43f92cde2bd49cfb1d8b606d8c791d3e68823eeb6040ef6c1e0a5d4ffa99069"
)


Expand Down

0 comments on commit eda8c8c

Please sign in to comment.