From 1abaa1c6a950b327e6468192dd910549643768bb Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Tue, 10 May 2016 14:35:55 +0300 Subject: 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] Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- lib/bb/utils.py | 1 - lib/toaster/orm/models.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/bb/utils.py b/lib/bb/utils.py index 138da44ef..8f75871c1 100644 --- a/lib/bb/utils.py +++ b/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/lib/toaster/orm/models.py b/lib/toaster/orm/models.py index 88967a23f..9183b0cd7 100644 --- a/lib/toaster/orm/models.py +++ b/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 1.2.3-korg