Convert ovirt url to a str
Older versions if pyculr.Curl.setopt don't accept unicode string values. Change-Id: I4fca91228435a1a652b98db69aa2a92ffbaa47e7 Closes-Bug: #1761724
This commit is contained in:
parent
d27bcf030e
commit
b7a5234057
@ -131,6 +131,16 @@ def _getvm(driver_info):
|
|||||||
ca_file = driver_info['ovirt_ca_file']
|
ca_file = driver_info['ovirt_ca_file']
|
||||||
name = driver_info['ovirt_vm_name'].encode('ascii', 'ignore')
|
name = driver_info['ovirt_vm_name'].encode('ascii', 'ignore')
|
||||||
url = "https://%s/ovirt-engine/api" % address
|
url = "https://%s/ovirt-engine/api" % address
|
||||||
|
try:
|
||||||
|
# pycurl.Curl.setopt doesn't support unicode stings
|
||||||
|
# convert them to a acsii str
|
||||||
|
url = url.encode('ascii', 'strict')
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
# url contains unicode characters that can't be converted, attempt to
|
||||||
|
# use it, if we have a version of pycurl that rejects it then a
|
||||||
|
# sdk.Error will be thrown below
|
||||||
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
connection = sdk.Connection(url=url, username=username,
|
connection = sdk.Connection(url=url, username=username,
|
||||||
password=password, insecure=insecure,
|
password=password, insecure=insecure,
|
||||||
|
@ -58,6 +58,34 @@ class oVirtDriverTestCase(db_base.DbTestCase):
|
|||||||
self.assertEqual('changeme', params['ovirt_password'])
|
self.assertEqual('changeme', params['ovirt_password'])
|
||||||
self.assertEqual('jimi', params['ovirt_vm_name'])
|
self.assertEqual('jimi', params['ovirt_vm_name'])
|
||||||
|
|
||||||
|
@mock.patch.object(ovirt_power, "sdk", create=True)
|
||||||
|
def test_getvm_nounicode(self, sdk):
|
||||||
|
self.node['driver_info']['ovirt_address'] = u'127.0.0.1'
|
||||||
|
driver_info = ovirt_power._parse_driver_info(self.node)
|
||||||
|
|
||||||
|
ovirt_power._getvm(driver_info)
|
||||||
|
ovirt_power.sdk.Connection.assert_called_with(
|
||||||
|
ca_file=None, insecure='False', password='changeme',
|
||||||
|
url=b'https://127.0.0.1/ovirt-engine/api',
|
||||||
|
username='jhendrix@internal'
|
||||||
|
)
|
||||||
|
url = ovirt_power.sdk.Connection.mock_calls[0][-1]['url']
|
||||||
|
self.assertEqual(type(b''), type(url))
|
||||||
|
|
||||||
|
@mock.patch.object(ovirt_power, "sdk", create=True)
|
||||||
|
def test_getvm_unicode(self, sdk):
|
||||||
|
self.node['driver_info']['ovirt_address'] = u'host\u20141'
|
||||||
|
driver_info = ovirt_power._parse_driver_info(self.node)
|
||||||
|
|
||||||
|
ovirt_power._getvm(driver_info)
|
||||||
|
ovirt_power.sdk.Connection.assert_called_with(
|
||||||
|
ca_file=None, insecure='False', password='changeme',
|
||||||
|
url=u'https://host\u20141/ovirt-engine/api',
|
||||||
|
username='jhendrix@internal'
|
||||||
|
)
|
||||||
|
url = ovirt_power.sdk.Connection.mock_calls[0][-1]['url']
|
||||||
|
self.assertEqual(type(u''), type(url))
|
||||||
|
|
||||||
def test_get_properties(self):
|
def test_get_properties(self):
|
||||||
expected = list(ovirt_power.PROPERTIES.keys())
|
expected = list(ovirt_power.PROPERTIES.keys())
|
||||||
with task_manager.acquire(
|
with task_manager.acquire(
|
||||||
|
Loading…
Reference in New Issue
Block a user