Updated core
This commit is contained in:
parent
e912925c52
commit
fdaa3a06ab
@ -3,12 +3,10 @@
|
|||||||
This is the updater core class which provides all facilities other implementation should rely in.
|
This is the updater core class which provides all facilities other implementation should rely in.
|
||||||
This class should not be used directly, use a derived class instead.
|
This class should not be used directly, use a derived class instead.
|
||||||
"""
|
"""
|
||||||
import sys
|
|
||||||
import contextlib
|
import contextlib
|
||||||
import io
|
import io
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import tempfile
|
|
||||||
import zipfile
|
import zipfile
|
||||||
import logging
|
import logging
|
||||||
import requests
|
import requests
|
||||||
@ -18,13 +16,13 @@ from typing import Optional, Dict, Tuple, Union, Any
|
|||||||
|
|
||||||
log = logging.getLogger("updater.core")
|
log = logging.getLogger("updater.core")
|
||||||
|
|
||||||
class updaterCore(object):
|
class UpdaterCore(object):
|
||||||
""" Base class for all updater implementations.
|
""" Base class for all updater implementations.
|
||||||
|
|
||||||
Implementations must add user interaction methods and call logic for all methods present in this class.
|
Implementations must add user interaction methods and call logic for all methods present in this class.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, endpoint: str, current_version: str, app_name: str = "", password: Optional[str] = None) -> None:
|
def __init__(self, endpoint: str, current_version: str, app_name: str = "", password: Optional[bytes] = None) -> None:
|
||||||
"""
|
"""
|
||||||
:param endpoint: The URl endpoint where the module should retrieve update information. It must return a json valid response or a non 200 HTTP status code.
|
:param endpoint: The URl endpoint where the module should retrieve update information. It must return a json valid response or a non 200 HTTP status code.
|
||||||
:type endpoint: str
|
:type endpoint: str
|
||||||
@ -76,7 +74,7 @@ class updaterCore(object):
|
|||||||
if available_version == self.current_version:
|
if available_version == self.current_version:
|
||||||
return (False, False, False)
|
return (False, False, False)
|
||||||
if content["downloads"].get(update_url_key) == None:
|
if content["downloads"].get(update_url_key) == None:
|
||||||
log.error("Update file doesn't include architecture %s".format(update_url_key))
|
log.error("Update file doesn't include architecture {}".format(update_url_key))
|
||||||
raise KeyError("Update file doesn't include current architecture.")
|
raise KeyError("Update file doesn't include current architecture.")
|
||||||
available_description = content["description"]
|
available_description = content["description"]
|
||||||
update_url = content ['downloads'][update_url_key]
|
update_url = content ['downloads'][update_url_key]
|
||||||
@ -112,7 +110,7 @@ class updaterCore(object):
|
|||||||
for chunk in download.iter_content(chunk_size):
|
for chunk in download.iter_content(chunk_size):
|
||||||
outfile.write(chunk)
|
outfile.write(chunk)
|
||||||
total_downloaded += len(chunk)
|
total_downloaded += len(chunk)
|
||||||
pub.sendMessage("updater.update-progress", total_downloaded, total_size)
|
pub.sendMessage("updater.update-progress", total_downloaded=total_downloaded, total_size=total_size)
|
||||||
log.debug("Update downloaded")
|
log.debug("Update downloaded")
|
||||||
return update_destination
|
return update_destination
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user