args.system_ota = args.system_channel + "/" + args.rom_type + \
"/waydroid_" + args.arch + "/" + args.system_type + ".json"
- system_request = requests.get(args.system_ota)
- if system_request.status_code != 200:
+ system_request = helpers.http.retrieve(args.system_ota)
+ if system_request[0] != 200:
if args.images_path != preinstalled_images:
raise ValueError(
- "Failed to get system OTA channel: {}".format(args.system_ota))
+ "Failed to get system OTA channel: {}, error: {}".format(args.system_ota, system_request[0]))
else:
args.system_ota = "None"
for vendor in [device_codename, get_vendor_type(args)]:
vendor_ota = args.vendor_channel + "/waydroid_" + \
args.arch + "/" + vendor + ".json"
- vendor_request = requests.get(vendor_ota)
- if vendor_request.status_code == 200:
+ vendor_request = helpers.http.retrieve(vendor_ota)
+ if vendor_request[0] == 200:
args.vendor_type = vendor
args.vendor_ota = vendor_ota
break
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import hashlib
-import json
import logging
import os
import shutil
return path
-def retrieve(url, headers=None, allow_404=False):
+def retrieve(url, headers=None):
""" Fetch the content of a URL and returns it as string.
:param url: the http(s) address of to the resource to fetch
:param headers: dict of HTTP headers to use
- :param allow_404: do not raise an exception when the server responds
- with a 404 Not Found error. Only display a warning
- :returns: str with the content of the response
+ :returns: status and str with the content of the response
"""
# Download the file
logging.verbose("Retrieving " + url)
req = urllib.request.Request(url, headers=headers)
try:
with urllib.request.urlopen(req) as response:
- return response.read()
+ return 200, response.read()
# Handle 404
except urllib.error.HTTPError as e:
- if e.code == 404 and allow_404:
- logging.warning("WARNING: failed to retrieve content from: " + url)
- return None
- raise
-
-
-def retrieve_json(*args, **kwargs):
- """ Fetch the contents of a URL, parse it as JSON and return it. See
- retrieve() for the list of all parameters. """
- return json.loads(retrieve(*args, **kwargs))
+ return e.code, ""
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
import zipfile
-import requests
+import json
import hashlib
import os
import tools.config
def get(args):
cfg = tools.config.load(args)
system_ota = cfg["waydroid"]["system_ota"]
- system_request = requests.get(system_ota)
- if system_request.status_code != 200:
+ system_request = helpers.http.retrieve(system_ota)
+ if system_request[0] != 200:
raise ValueError(
- "Failed to get system OTA channel: {}".format(system_ota))
- system_responses = system_request.json()["response"]
+ "Failed to get system OTA channel: {}, error: {}".format(args.system_ota, system_request[0]))
+ system_responses = json.loads(system_request[1])["response"]
if len(system_responses) < 1:
raise ValueError("No images found on system channel")
break
vendor_ota = cfg["waydroid"]["vendor_ota"]
- vendor_request = requests.get(vendor_ota)
- if vendor_request.status_code != 200:
+ vendor_request = helpers.http.retrieve(vendor_ota)
+ if vendor_request[0] != 200:
raise ValueError(
- "Failed to get vendor OTA channel: {}".format(vendor_ota))
- vendor_responses = vendor_request.json()["response"]
+ "Failed to get vendor OTA channel: {}, error: {}".format(vendor_ota, vendor_request[0]))
+ vendor_responses = json.loads(vendor_request[1])["response"]
if len(vendor_responses) < 1:
raise ValueError("No images found on vendor channel")