Skip to content

Commit

Permalink
Revert "fix download counter"
Browse files Browse the repository at this point in the history
This reverts commit bea7718.
  • Loading branch information
mreid-tt committed Jan 12, 2024
1 parent db26f75 commit 73981ae
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 45 deletions.
36 changes: 18 additions & 18 deletions spkrepo/tests/test_nas.py
Original file line number Diff line number Diff line change
Expand Up @@ -560,9 +560,9 @@ def test_generic(self):
response = self.client.get(
url_for(
"nas.download",
md5=build.md5,
arch=architecture.code,
build=4458,
architecture_id=architecture.id,
firmware_build=4458,
build_id=build.id,
),
environ_base={"REMOTE_ADDR": "127.0.0.1"},
headers={"User-Agent": "My User Agent"},
Expand Down Expand Up @@ -592,9 +592,9 @@ def test_wrong_build(self):
response = self.client.get(
url_for(
"nas.download",
md5=build.md5 + "1",
arch=architecture.code,
build=4458,
architecture_id=architecture.id,
firmware_build=4458,
build_id=build.id + 1,
)
)
self.assert404(response)
Expand All @@ -613,9 +613,9 @@ def test_inactive_build(self):
response = self.client.get(
url_for(
"nas.download",
md5=build.md5,
arch=architecture.code,
build=4458,
architecture_id=architecture.id,
firmware_build=4458,
build_id=build.id,
)
)
self.assert403(response)
Expand All @@ -634,9 +634,9 @@ def test_wrong_architecture(self):
response = self.client.get(
url_for(
"nas.download",
md5=build.md5,
arch=Architecture.find(10).code if Architecture.find(10) else "",
build=4458,
architecture_id=10,
firmware_build=4458,
build_id=build.id,
)
)
self.assert404(response)
Expand All @@ -655,9 +655,9 @@ def test_incorrect_architecture(self):
response = self.client.get(
url_for(
"nas.download",
md5=build.md5,
arch=Architecture.find("cedarview").code,
build=4458,
architecture_id=Architecture.find("cedarview").id,
firmware_build=4458,
build_id=build.id,
)
)
self.assert400(response)
Expand All @@ -676,9 +676,9 @@ def test_incorrect_firmware_build(self):
response = self.client.get(
url_for(
"nas.download",
md5=build.md5,
arch=architecture.code,
build=1593,
architecture_id=architecture.id,
firmware_build=1593,
build_id=build.id,
)
)
self.assert400(response)
Expand Down
37 changes: 10 additions & 27 deletions spkrepo/views/nas.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,6 @@ def get_catalog(arch, build, language, beta):
# fill the catalog
entries = []
for b in latest_build.all():
# correct any missing md5 hashes
if b.md5 is None:
b.md5 = b.calculate_md5()
db.session.commit()
entry = {
"package": b.version.package.name,
"version": b.version.version_string,
Expand All @@ -158,11 +154,7 @@ def get_catalog(arch, build, language, beta):
language, b.version.descriptions["enu"]
).description,
"link": url_for(
".download",
md5=b.md5,
arch=arch,
build=build,
_external=True,
".data", path=b.path, arch=arch, build=build, _external=True
),
"thumbnail": [
url_for(".data", path=icon.path, _external=True)
Expand Down Expand Up @@ -259,42 +251,33 @@ def catalog():
return Response(json.dumps(catalog), mimetype="application/json")


@nas.route("/download/<string:md5>/<string:arch>/<int:build>")
def download(md5, arch, build):
@nas.route("/download/<int:architecture_id>/<int:firmware_build>/<int:build_id>")
def download(architecture_id, firmware_build, build_id):
# check build
build_obj = Build.query.filter_by(md5=md5).one_or_none()

if build_obj is None:
abort(404)
elif not build_obj.active:
build = Build.query.get_or_404(build_id)
if not build.active:
abort(403)

# architecture
architecture = Architecture.query.filter_by(code=arch).one_or_none()
architecture = Architecture.query.get_or_404(architecture_id)

if architecture is None:
abort(404)
# check consistency
elif build < build_obj.firmware.build:
abort(400)
elif architecture not in build_obj.architectures and not any(
arch.code == "noarch" for arch in build_obj.architectures
):
if architecture not in build.architectures or firmware_build < build.firmware.build:
abort(400)

# insert in database
download = Download(
build=build_obj,
build=build,
architecture=architecture,
firmware_build=build,
firmware_build=firmware_build,
ip_address=request.remote_addr,
user_agent=request.user_agent.string,
)
db.session.add(download)
db.session.commit()

# redirect
return redirect(url_for(".data", path=build_obj.path))
return redirect(url_for(".data", path=build.path))


@nas.route("/<path:path>")
Expand Down

0 comments on commit 73981ae

Please sign in to comment.