From 973b6b961597e421d06607908300441de3ff4e0c Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Tue, 10 May 2016 14:35:55 +0300 Subject: bitbake: toaster: fix imports to work for python 3 Some APIs have been moved to other modules in python 3: getstatusoutput: moved from commands to subproces urlopen: moved from urllib2 to urllib.request urlparse: moved from urlparse to urllib.parse Made the imports work for both python versions by catching ImportError and importing APIs from different modules. [YOCTO #9584] (Bitbake rev: 5c39479fd7cb1b7c0bfc50c8cdfb9e5453bfa8e8) Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- bitbake/lib/bb/utils.py | 1 - bitbake/lib/toaster/orm/models.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 138da44ef1..8f75871c18 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -41,7 +41,6 @@ from subprocess import getstatusoutput from contextlib import contextmanager from ctypes import cdll - logger = logging.getLogger("BitBake.Util") python_extensions = [e for e, _, _ in imp.get_suffixes()] diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index 88967a23f5..9183b0cd7c 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py @@ -1147,18 +1147,26 @@ class LayerIndexLayerSource(LayerSource): assert self.apiurl is not None from django.db import transaction, connection - import urllib2, urlparse, json + import json import os + + try: + from urllib.request import urlopen, URLError + from urllib.parse import urlparse + except ImportError: + from urllib2 import urlopen, URLError + from urlparse import urlparse + proxy_settings = os.environ.get("http_proxy", None) oe_core_layer = 'openembedded-core' def _get_json_response(apiurl = self.apiurl): - _parsedurl = urlparse.urlparse(apiurl) + _parsedurl = urlparse(apiurl) path = _parsedurl.path try: - res = urllib2.urlopen(apiurl) - except urllib2.URLError as e: + res = urlopen(apiurl) + except URLError as e: raise Exception("Failed to read %s: %s" % (path, e.reason)) return json.loads(res.read()) -- cgit v1.2.3-54-g00ecf