mirror of
https://github.com/miurahr/aqtinstall.git
synced 2025-12-17 12:44:38 +03:00
Add error handler for http connection
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
This commit is contained in:
@@ -20,8 +20,11 @@
|
|||||||
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
import xml.etree.ElementTree as ElementTree
|
import logging
|
||||||
import requests
|
import requests
|
||||||
|
import traceback
|
||||||
|
import xml.etree.ElementTree as ElementTree
|
||||||
|
from six import StringIO
|
||||||
|
|
||||||
|
|
||||||
class QtPackage:
|
class QtPackage:
|
||||||
@@ -65,7 +68,15 @@ class QtArchives:
|
|||||||
|
|
||||||
# Get packages index
|
# Get packages index
|
||||||
update_xml_url = "{0}Updates.xml".format(archive_url)
|
update_xml_url = "{0}Updates.xml".format(archive_url)
|
||||||
|
try:
|
||||||
r = requests.get(update_xml_url)
|
r = requests.get(update_xml_url)
|
||||||
|
except requests.exceptions.ConnectionError as e:
|
||||||
|
print("Caught download error: %s" % e.args)
|
||||||
|
exc_buffer = StringIO()
|
||||||
|
traceback.print_exc(file=exc_buffer)
|
||||||
|
logging.error('Download error:\n%s', exc_buffer.getvalue())
|
||||||
|
raise e
|
||||||
|
else:
|
||||||
self.update_xml = ElementTree.fromstring(r.text)
|
self.update_xml = ElementTree.fromstring(r.text)
|
||||||
for packageupdate in self.update_xml.iter("PackageUpdate"):
|
for packageupdate in self.update_xml.iter("PackageUpdate"):
|
||||||
name = packageupdate.find("Name").text
|
name = packageupdate.find("Name").text
|
||||||
|
|||||||
@@ -20,17 +20,19 @@
|
|||||||
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import sys
|
import sys
|
||||||
from multiprocessing.dummy import Pool
|
import traceback
|
||||||
import requests
|
import requests
|
||||||
|
from six import StringIO
|
||||||
|
from multiprocessing.dummy import Pool
|
||||||
if sys.version_info.major == 3:
|
if sys.version_info.major == 3:
|
||||||
from subprocess import run
|
from subprocess import run
|
||||||
else:
|
else:
|
||||||
from subprocess import call as run
|
from subprocess import call as run
|
||||||
|
|
||||||
|
|
||||||
NUM_PROCESS = 3
|
NUM_PROCESS = 3
|
||||||
|
|
||||||
|
|
||||||
@@ -44,7 +46,15 @@ class QtInstaller:
|
|||||||
url = package.get_url()
|
url = package.get_url()
|
||||||
sys.stdout.write("\033[K")
|
sys.stdout.write("\033[K")
|
||||||
print("-Downloading {}...".format(url))
|
print("-Downloading {}...".format(url))
|
||||||
|
try:
|
||||||
r = requests.get(url, stream=True)
|
r = requests.get(url, stream=True)
|
||||||
|
except requests.exceptions.ConnectionError as e:
|
||||||
|
print("Caught download error: %s" % e.args)
|
||||||
|
exc_buffer = StringIO()
|
||||||
|
traceback.print_exc(file=exc_buffer)
|
||||||
|
logging.error('Uncaught exception in worker process:\n%s', exc_buffer.getvalue())
|
||||||
|
raise e
|
||||||
|
else:
|
||||||
with open(archive, 'wb') as fd:
|
with open(archive, 'wb') as fd:
|
||||||
for chunk in r.iter_content(chunk_size=8196):
|
for chunk in r.iter_content(chunk_size=8196):
|
||||||
fd.write(chunk)
|
fd.write(chunk)
|
||||||
@@ -92,5 +102,9 @@ class QtInstaller:
|
|||||||
if 'QT_EDITION' in line:
|
if 'QT_EDITION' in line:
|
||||||
line = 'QT_EDITION = OpenSource'
|
line = 'QT_EDITION = OpenSource'
|
||||||
f.write(line)
|
f.write(line)
|
||||||
except IOError:
|
except IOError as e:
|
||||||
pass
|
print("Configuration file generation error: %s" % e.args)
|
||||||
|
exc_buffer = StringIO()
|
||||||
|
traceback.print_exc(file=exc_buffer)
|
||||||
|
logging.error('Error happened when writing configuration files:\n%s', exc_buffer.getvalue())
|
||||||
|
raise e
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -20,7 +20,7 @@ setup(name='aqtinstall',
|
|||||||
author='Hioshi Miura',
|
author='Hioshi Miura',
|
||||||
author_email='miurahr@linux.com',
|
author_email='miurahr@linux.com',
|
||||||
packages=["aqt"],
|
packages=["aqt"],
|
||||||
install_requires=['requests'],
|
install_requires=['requests', 'six'],
|
||||||
extras_require={
|
extras_require={
|
||||||
'dev': [
|
'dev': [
|
||||||
'pytest',
|
'pytest',
|
||||||
|
|||||||
Reference in New Issue
Block a user