Merge "Add iSCSI IPv6 support to Dell EMC XtremIO driver"

This commit is contained in:
Zuul 2021-09-17 17:35:13 +00:00 committed by Gerrit Code Review
commit caa9535046
3 changed files with 31 additions and 4 deletions

View File

@ -18,6 +18,7 @@ import re
import time
from unittest import mock
from oslo_utils import netutils
import six
from cinder import context
@ -700,6 +701,24 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
self.driver.initialize_connection(self.data.test_volume2,
self.data.connector)
def test_initialize_connection_escape_ipv6(self, req):
req.side_effect = xms_request
portals = xms_data['iscsi-portals'].copy()
xms_data['iscsi-portals'] = {
'fd00:206:553::7/16': {
"port-address": "iqn.2008-05.com.xtremio:003e67939c34",
"ip-port": 3260,
"ip-addr": "fd00:206:553::7/16",
"name": "fd00:206:553::7/16",
"index": 1,
},
}
lunmap = {'lun': 4}
connection_properties = self.driver._get_iscsi_properties(lunmap)
result_addr, _ = connection_properties['target_portal'].rsplit(':', 1)
self.assertEqual(netutils.escape_ipv6('fd00:206:553::7'), result_addr)
xms_data['iscsi-portals'] = portals
def test_terminate_connection(self, req):
req.side_effect = xms_request
self.driver.create_volume(self.data.test_volume)

View File

@ -32,6 +32,7 @@ Supports XtremIO version 2.4 and up.
1.0.10 - option to clean unused IGs
1.0.11 - add support for multiattach
1.0.12 - add support for ports filtering
1.0.13 - add support for iSCSI IPv6
"""
import json
@ -41,6 +42,7 @@ import string
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import netutils
from oslo_utils import strutils
from oslo_utils import units
import requests
@ -427,7 +429,7 @@ class XtremIOClient42(XtremIOClient4):
class XtremIOVolumeDriver(san.SanDriver):
"""Executes commands relating to Volumes."""
VERSION = '1.0.12'
VERSION = '1.0.13'
# ThirdPartySystems wiki
CI_WIKI_NAME = "DellEMC_XtremIO_CI"
@ -1207,11 +1209,12 @@ class XtremIOISCSIDriver(XtremIOVolumeDriver, driver.ISCSIDriver):
raise exception.VolumeBackendAPIException(data=msg)
portal = RANDOM.choice(allowed_portals)
portal_addr = ('%(ip)s:%(port)d' %
{'ip': portal['ip-addr'],
{'ip': netutils.escape_ipv6(portal['ip-addr']),
'port': portal['ip-port']})
tg_portals = ['%(ip)s:%(port)d' % {'ip': p['ip-addr'],
'port': p['ip-port']}
tg_portals = ['%(ip)s:%(port)d' %
{'ip': netutils.escape_ipv6(p['ip-addr']),
'port': p['ip-port']}
for p in allowed_portals]
properties = {'target_discovered': False,
'target_iqn': portal['port-address'],

View File

@ -0,0 +1,5 @@
---
fixes:
- |
`Bug #1918889 <https://bugs.launchpad.net/cinder/+bug/1918889>`_:
Add support for iSCSI IPv6 in XtremIO driver.