Browse Source

Keep py3.X compatibility for urllib

Co-Authored-By: Swapnil Kulkarni <me@coolsvap.net>
Partial-Bug:#1280105
Change-Id: I6d8a18d5818707baaeae93a04580c43872279706
tags/0.3.0
zhangguoqing 4 years ago
parent
commit
0663d08fc1
6 changed files with 22 additions and 22 deletions
  1. +3
    -4
      tacker/api/api_common.py
  2. +5
    -4
      tacker/openstack/common/policy.py
  3. +4
    -4
      tacker/tests/unit/test_policy.py
  4. +4
    -5
      tacker/tests/unit/vm/monitor_drivers/http_ping/test_http_ping.py
  5. +5
    -5
      tacker/vm/monitor_drivers/http_ping/http_ping.py
  6. +1
    -0
      test-requirements.txt

+ 3
- 4
tacker/api/api_common.py View File

@@ -13,9 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.

import urllib

from oslo_config import cfg
from six.moves.urllib import parse as urllib_parse
from webob import exc

from tacker.common import constants
@@ -57,7 +56,7 @@ def get_previous_link(request, items, id_key):
marker = items[0][id_key]
params['marker'] = marker
params['page_reverse'] = True
return "%s?%s" % (request.path_url, urllib.urlencode(params))
return "%s?%s" % (request.path_url, urllib_parse.urlencode(params))


def get_next_link(request, items, id_key):
@@ -67,7 +66,7 @@ def get_next_link(request, items, id_key):
marker = items[-1][id_key]
params['marker'] = marker
params.pop('page_reverse', None)
return "%s?%s" % (request.path_url, urllib.urlencode(params))
return "%s?%s" % (request.path_url, urllib_parse.urlencode(params))


def get_limit_and_marker(request):

+ 5
- 4
tacker/openstack/common/policy.py View File

@@ -58,10 +58,11 @@ as it allows particular rules to be explicitly disabled.

import abc
import re
import urllib

import six
import urllib2

from six.moves.urllib import parse as urllib_parse
from six.moves.urllib import request as urlrequest

from tacker.openstack.common.gettextutils import _
from tacker.openstack.common import jsonutils
@@ -756,8 +757,8 @@ class HttpCheck(Check):
url = ('http:' + self.match) % target
data = {'target': jsonutils.dumps(target),
'credentials': jsonutils.dumps(creds)}
post_data = urllib.urlencode(data)
f = urllib2.urlopen(url, post_data)
post_data = urllib_parse.urlencode(data)
f = urlrequest.urlopen(url, post_data)
return f.read() == "True"



+ 4
- 4
tacker/tests/unit/test_policy.py View File

@@ -15,12 +15,12 @@

"""Test of Policy Engine For Tacker"""

import urllib2

import fixtures
import mock
import six

from six.moves.urllib import request as urlrequest

import tacker
from tacker.api.v1 import attributes
from tacker.common import exceptions
@@ -126,7 +126,7 @@ class PolicyTestCase(base.BaseTestCase):
def fakeurlopen(url, post_data):
return six.StringIO("True")

with mock.patch.object(urllib2, 'urlopen', new=fakeurlopen):
with mock.patch.object(urlrequest, 'urlopen', new=fakeurlopen):
action = "example:get_http"
target = {}
result = policy.enforce(self.context, action, target)
@@ -137,7 +137,7 @@ class PolicyTestCase(base.BaseTestCase):
def fakeurlopen(url, post_data):
return six.StringIO("False")

with mock.patch.object(urllib2, 'urlopen', new=fakeurlopen):
with mock.patch.object(urlrequest, 'urlopen', new=fakeurlopen):
action = "example:get_http"
target = {}
self.assertRaises(exceptions.PolicyNotAuthorized, policy.enforce,

+ 4
- 5
tacker/tests/unit/vm/monitor_drivers/http_ping/test_http_ping.py View File

@@ -12,9 +12,8 @@
# under the License.
#

import urllib2

import mock
import six.moves.urllib.error as urlerr
import testtools

from tacker.vm.monitor_drivers.http_ping import http_ping
@@ -26,7 +25,7 @@ class TestVNFMonitorHTTPPing(testtools.TestCase):
super(TestVNFMonitorHTTPPing, self).setUp()
self.monitor_http_ping = http_ping.VNFMonitorHTTPPing()

@mock.patch('urllib2.urlopen')
@mock.patch('six.moves.urllib.request.urlopen')
def test_monitor_call_for_success(self, mock_urlopen):
test_device = {}
test_kwargs = {
@@ -36,9 +35,9 @@ class TestVNFMonitorHTTPPing(testtools.TestCase):
test_kwargs)
mock_urlopen.assert_called_once_with('http://a.b.c.d:80', timeout=5)

@mock.patch('urllib2.urlopen')
@mock.patch('six.moves.urllib.request.urlopen')
def test_monitor_call_for_failure(self, mock_urlopen):
mock_urlopen.side_effect = urllib2.URLError("MOCK Error")
mock_urlopen.side_effect = urlerr.URLError("MOCK Error")
test_device = {}
test_kwargs = {
'mgmt_ip': 'a.b.c.d'

+ 5
- 5
tacker/vm/monitor_drivers/http_ping/http_ping.py View File

@@ -12,9 +12,9 @@
# under the License.
#

import urllib2

from oslo_config import cfg
import six.moves.urllib.error as urlerr
import six.moves.urllib.request as urlreq

from tacker.common import log
from tacker.i18n import _LW
@@ -49,7 +49,7 @@ class VNFMonitorHTTPPing(abstract_driver.VNFMonitorAbstractDriver):
return device.get('monitor_url', '')

def _is_pingable(self, mgmt_ip='', retry=5, timeout=5, port=80, **kwargs):
"""Checks whether the server is reachable by using urllib2.
"""Checks whether the server is reachable by using urllib.

Waits for connectivity for `timeout` seconds,
and if connection refused, it will retry `retry`
@@ -63,9 +63,9 @@ class VNFMonitorHTTPPing(abstract_driver.VNFMonitorAbstractDriver):
url = 'http://' + mgmt_ip + ':' + str(port)
for retry_index in range(int(retry)):
try:
urllib2.urlopen(url, timeout=timeout)
urlreq.urlopen(url, timeout=timeout)
return True
except urllib2.URLError:
except urlerr.URLError:
LOG.warning(_LW('Unable to reach to the url %s'), url)
return 'failure'


+ 1
- 0
test-requirements.txt View File

@@ -14,6 +14,7 @@ hacking<0.11,>=0.10.2
mock>=1.2 # BSD
python-subunit>=0.0.18 # Apache-2.0/BSD
ordereddict # MIT
six>=1.9.0 # MIT
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
oslotest>=1.10.0 # Apache-2.0
tempest-lib>=0.14.0 # Apache-2.0

Loading…
Cancel
Save