From 181d7b4832a88448e16f65a41345a053ef44f841 Mon Sep 17 00:00:00 2001 From: Al Bailey Date: Thu, 22 Nov 2018 13:37:03 -0600 Subject: [PATCH] Update urllib2 to be python3 compatable. This change has no code impact on python2 There are multiple six.moves modules depending on which urllib2 component was being used. Classes were verified by print(class_name) Methods were verified using help(method_name) Error codes: urllib2.URLError -> from six.moves.urllib.error import URLError (verified as the same) urllib2.HTTPError from six.moves.urllib.error import HTTPError (verified as the same) Functionality: old: urllib2.HTTPHandler new: from six.moves.urllib.request import HTTPHandler verification: print(HTTPHandler) result: urllib2.HTTPHandler old: urllib2.Request new: from six.moves.urllib.request import Request verification: print(Request) result: urllib2.Request old: urllib2.build_opener new: from six.moves.urllib.request import build_opener verification: help(build_opener) result: Help on function build_opener in module urllib2: old: urllib2.install_opener new: from six.moves.urllib.request import install_opener verification: help(install_opener) result: Help on function install_opener in module urllib2: Story: 2004241 Task: 28069 Change-Id: Iec3a9e7b20c9d186313dfa4e152064283236603a Signed-off-by: Al Bailey --- .../nfv_client/openstack/openstack.py | 12 +++++++----- .../nfv_client/openstack/rest_api.py | 11 ++++++----- nfv/nfv-client/nfv_client/shell.py | 8 ++++---- .../nfvi_plugins/openstack/openstack.py | 11 ++++++----- .../nfvi_plugins/openstack/rest_api.py | 17 +++++++++-------- .../nfv_plugins/nfvi_plugins/unit_test.py | 8 ++++---- .../nfv_vim/api/openstack/_openstack.py | 19 ++++++++++--------- .../nfv_vim/api/openstack/_rest_api.py | 15 ++++++++------- 8 files changed, 54 insertions(+), 47 deletions(-) diff --git a/nfv/nfv-client/nfv_client/openstack/openstack.py b/nfv/nfv-client/nfv_client/openstack/openstack.py index c8092786..54e21980 100755 --- a/nfv/nfv-client/nfv_client/openstack/openstack.py +++ b/nfv/nfv-client/nfv_client/openstack/openstack.py @@ -4,7 +4,9 @@ # SPDX-License-Identifier: Apache-2.0 # import json -import urllib2 + +from six.moves.urllib import error as urllib_error +from six.moves.urllib import request as urllib_request from nfv_client.openstack.objects import Token @@ -35,7 +37,7 @@ def get_token(auth_uri, project_name, project_domain_name, username, password, try: url = auth_uri + "/auth/tokens" - request_info = urllib2.Request(url) + request_info = urllib_request.Request(url) request_info.add_header("Content-Type", "application/json") request_info.add_header("Accept", "application/json") @@ -61,7 +63,7 @@ def get_token(auth_uri, project_name, project_domain_name, username, password, request_info.add_data(payload) - request = urllib2.urlopen(request_info) + request = urllib_request.urlopen(request_info) # Identity API v3 returns token id in X-Subject-Token # response header. token_id = request.info().getheader('X-Subject-Token') @@ -69,10 +71,10 @@ def get_token(auth_uri, project_name, project_domain_name, username, password, request.close() return Token(response, token_id) - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: print(e) return None - except urllib2.URLError as e: + except urllib_error.URLError as e: print(e) return None diff --git a/nfv/nfv-client/nfv_client/openstack/rest_api.py b/nfv/nfv-client/nfv_client/openstack/rest_api.py index e1219c6d..0666ec21 100755 --- a/nfv/nfv-client/nfv_client/openstack/rest_api.py +++ b/nfv/nfv-client/nfv_client/openstack/rest_api.py @@ -4,7 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 # import json -import urllib2 +from six.moves.urllib import error as urllib_error +from six.moves.urllib import request as urllib_request from six.moves import http_client as httplib @@ -17,7 +18,7 @@ def request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload=Non 'transfer-encoding', 'upgrade'] try: - request_info = urllib2.Request(api_cmd) + request_info = urllib_request.Request(api_cmd) request_info.get_method = lambda: method if token_id is not None: request_info.add_header("X-Auth-Token", token_id) @@ -30,7 +31,7 @@ def request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload=Non if api_cmd_payload is not None: request_info.add_data(api_cmd_payload) - url_request = urllib2.urlopen(request_info) + url_request = urllib_request.urlopen(request_info) headers = list() # list of tuples for key, value in url_request.info().items(): @@ -49,7 +50,7 @@ def request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload=Non return response - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: headers = list() response_raw = dict() @@ -96,7 +97,7 @@ def request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload=Non response_raw)) raise - except urllib2.URLError as e: + except urllib_error.URLError as e: print("Rest-API status=ERR, %s, %s, headers=%s, payload=%s" % (method, api_cmd, api_cmd_headers, api_cmd_payload,)) raise diff --git a/nfv/nfv-client/nfv_client/shell.py b/nfv/nfv-client/nfv_client/shell.py index 1724f5e1..2005c964 100755 --- a/nfv/nfv-client/nfv_client/shell.py +++ b/nfv/nfv-client/nfv_client/shell.py @@ -6,8 +6,8 @@ import os import sys import argparse -import urllib2 +from six.moves.urllib import request as urllib_request from nfv_client import sw_update @@ -156,9 +156,9 @@ def process_main(argv=sys.argv[1:]): # pylint: disable=dangerous-default-value if args.debug: # Enable Debug - handler = urllib2.HTTPHandler(debuglevel=1) - opener = urllib2.build_opener(handler) - urllib2.install_opener(opener) + handler = urllib_request.HTTPHandler(debuglevel=1) + opener = urllib_request.build_opener(handler) + urllib_request.install_opener(opener) if args.os_auth_url is None: args.os_auth_url = os.environ.get('OS_AUTH_URL', None) diff --git a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/openstack.py b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/openstack.py index 28f6fb4b..2d2fb5aa 100755 --- a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/openstack.py +++ b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/openstack.py @@ -4,7 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 # import json -import urllib2 +from six.moves.urllib import error as urllib_error +from six.moves.urllib import request as urllib_request from nfv_common import debug @@ -29,7 +30,7 @@ def get_token(directory): else: url = directory.auth_uri + "/v3/auth/tokens" - request_info = urllib2.Request(url) + request_info = urllib_request.Request(url) request_info.add_header("Content-Type", "application/json") request_info.add_header("Accept", "application/json") @@ -61,7 +62,7 @@ def get_token(directory): }}}}) request_info.add_data(payload) - request = urllib2.urlopen(request_info) + request = urllib_request.urlopen(request_info) # Identity API v3 returns token id in X-Subject-Token # response header. token_id = request.info().getheader('X-Subject-Token') @@ -69,11 +70,11 @@ def get_token(directory): request.close() return Token(response, directory, token_id) - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: DLOG.error("%s" % e) return None - except urllib2.URLError as e: + except urllib_error.URLError as e: DLOG.error("%s" % e) return None diff --git a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/rest_api.py b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/rest_api.py index 04612c3d..c39adfdc 100755 --- a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/rest_api.py +++ b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/rest_api.py @@ -8,7 +8,8 @@ import json import re import socket import struct -import urllib2 +from six.moves.urllib import error as urllib_error +from six.moves.urllib import request as urllib_request import BaseHTTPServer import SocketServer @@ -298,7 +299,7 @@ def _rest_api_request(token_id, method, api_cmd, api_cmd_headers=None, start_ms = timers.get_monotonic_timestamp_in_ms() try: - request_info = urllib2.Request(api_cmd) + request_info = urllib_request.Request(api_cmd) request_info.get_method = lambda: method request_info.add_header("X-Auth-Token", token_id) request_info.add_header("Accept", "application/json") @@ -315,11 +316,11 @@ def _rest_api_request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload)) # Enable Debug - # handler = urllib2.HTTPHandler(debuglevel=1) - # opener = urllib2.build_opener(handler) - # urllib2.install_opener(opener) + # handler = urllib_request.HTTPHandler(debuglevel=1) + # opener = urllib_request.build_opener(handler) + # urllib_request.install_opener(opener) - request = urllib2.urlopen(request_info) + request = urllib_request.urlopen(request_info) headers = list() # list of tuples for key, value in request.info().items(): @@ -351,7 +352,7 @@ def _rest_api_request(token_id, method, api_cmd, api_cmd_headers=None, response=response_raw, execution_time=elapsed_secs)) - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: headers = list() response_raw = dict() @@ -412,7 +413,7 @@ def _rest_api_request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload, e.code, str(e), str(e), headers, response_raw, reason) - except urllib2.URLError as e: + except urllib_error.URLError as e: now_ms = timers.get_monotonic_timestamp_in_ms() elapsed_ms = now_ms - start_ms diff --git a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/unit_test.py b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/unit_test.py index 888f7a44..efd542b2 100755 --- a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/unit_test.py +++ b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/unit_test.py @@ -455,10 +455,10 @@ def do_unit_tests(test_set=None, rest_api_debug=False, test_config=None): """ if rest_api_debug: # Enable debugging of request and response headers for rest-api calls - import urllib2 - handler = urllib2.HTTPHandler(debuglevel=1) - opener = urllib2.build_opener(handler) - urllib2.install_opener(opener) + from six.moves.urllib import request as urllib_request + handler = urllib_request.HTTPHandler(debuglevel=1) + opener = urllib_request.build_opener(handler) + urllib_request.install_opener(opener) platform_directory = openstack.get_directory( config, openstack.SERVICE_CATEGORY.PLATFORM) diff --git a/nfv/nfv-vim/nfv_vim/api/openstack/_openstack.py b/nfv/nfv-vim/nfv_vim/api/openstack/_openstack.py index 21f91368..80c9a21e 100755 --- a/nfv/nfv-vim/nfv_vim/api/openstack/_openstack.py +++ b/nfv/nfv-vim/nfv_vim/api/openstack/_openstack.py @@ -4,7 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 # import json -import urllib2 +from six.moves.urllib import error as urllib_error +from six.moves.urllib import request as urllib_request from nfv_common import debug @@ -29,7 +30,7 @@ def validate_token(directory, admin_token, token_id): else: url = directory.auth_uri + "/v3/auth/tokens" - request_info = urllib2.Request(url) + request_info = urllib_request.Request(url) request_info.add_header("Content-Type", "application/json") request_info.add_header("Accept", "application/json") request_info.add_header("X-Auth-Token", admin_token.get_id()) @@ -56,7 +57,7 @@ def validate_token(directory, admin_token, token_id): request_info.add_data(payload) - request = urllib2.urlopen(request_info) + request = urllib_request.urlopen(request_info) # Identity API v3 returns token id in X-Subject-Token # response header. token_id = request.info().getheader('X-Subject-Token') @@ -64,11 +65,11 @@ def validate_token(directory, admin_token, token_id): request.close() return Token(response, directory, token_id) - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: DLOG.error("%s" % e) return None - except urllib2.URLError as e: + except urllib_error.URLError as e: DLOG.error("%s" % e) return None @@ -85,7 +86,7 @@ def get_token(directory): else: url = directory.auth_uri + "/v3/auth/tokens" - request_info = urllib2.Request(url) + request_info = urllib_request.Request(url) request_info.add_header("Content-Type", "application/json") request_info.add_header("Accept", "application/json") @@ -117,7 +118,7 @@ def get_token(directory): }}}}) request_info.add_data(payload) - request = urllib2.urlopen(request_info) + request = urllib_request.urlopen(request_info) # Identity API v3 returns token id in X-Subject-Token # response header. token_id = request.info().getheader('X-Subject-Token') @@ -125,11 +126,11 @@ def get_token(directory): request.close() return Token(response, directory, token_id) - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: DLOG.error("%s" % e) return None - except urllib2.URLError as e: + except urllib_error.URLError as e: DLOG.error("%s" % e) return None diff --git a/nfv/nfv-vim/nfv_vim/api/openstack/_rest_api.py b/nfv/nfv-vim/nfv_vim/api/openstack/_rest_api.py index 0d4830d0..5c228a74 100755 --- a/nfv/nfv-vim/nfv_vim/api/openstack/_rest_api.py +++ b/nfv/nfv-vim/nfv_vim/api/openstack/_rest_api.py @@ -4,7 +4,8 @@ # SPDX-License-Identifier: Apache-2.0 # from six.moves import http_client as httplib -import urllib2 +from six.moves.urllib import error as urllib_error +from six.moves.urllib import request as urllib_request from nfv_common import debug @@ -20,7 +21,7 @@ def rest_api_request(token, method, url, headers=None, body=None): 'transfer-encoding', 'upgrade'] try: - request_info = urllib2.Request(url) + request_info = urllib_request.Request(url) request_info.get_method = lambda: method if headers is not None: @@ -38,11 +39,11 @@ def rest_api_request(token, method, url, headers=None, body=None): request_info.add_data(body) # Enable Debug - # handler=urllib2.HTTPHandler(debuglevel=1) - # opener = urllib2.build_opener(handler) - # urllib2.install_opener(opener) + # handler = urllib_request.HTTPHandler(debuglevel=1) + # opener = urllib_request.build_opener(handler) + # urllib_request.install_opener(opener) - request = urllib2.urlopen(request_info) + request = urllib_request.urlopen(request_info) headers = list() # list of tuples for key, value in request.info().items(): @@ -54,7 +55,7 @@ def rest_api_request(token, method, url, headers=None, body=None): request.close() return httplib.OK, headers, response - except urllib2.HTTPError as e: + except urllib_error.HTTPError as e: if e.fp is not None: headers = list() # list of tuples for key, value in e.fp.info().items():