VMAX driver and docs - change san_rest_port to san_api_port
This is part of the effort to consolidate and eliminate duplicate configuration tags. san_rest_port will be deprecated in this release and replaced by san_api_port in the next. Change-Id: I5051e39c3bf45a3a4903e94c1597a142321a77e4 Closes-Bug: #1758010
This commit is contained in:
parent
cea466cfe0
commit
017dd6b4bc
cinder
doc/source/configuration/block-storage/drivers
releasenotes/notes
@ -1150,6 +1150,8 @@ class FakeConfiguration(object):
|
|||||||
self.san_password = value
|
self.san_password = value
|
||||||
elif key == 'san_ip':
|
elif key == 'san_ip':
|
||||||
self.san_ip = value
|
self.san_ip = value
|
||||||
|
elif key == 'san_api_port':
|
||||||
|
self.san_api_port = value
|
||||||
elif key == 'san_rest_port':
|
elif key == 'san_rest_port':
|
||||||
self.san_rest_port = value
|
self.san_rest_port = value
|
||||||
elif key == 'vmax_srp':
|
elif key == 'vmax_srp':
|
||||||
@ -5351,7 +5353,30 @@ class VMAXCommonTest(test.TestCase):
|
|||||||
self.assertEqual(ref_dev_id, src_dev_id1)
|
self.assertEqual(ref_dev_id, src_dev_id1)
|
||||||
self.assertEqual(ref_dev_id, src_dev_id2)
|
self.assertEqual(ref_dev_id, src_dev_id2)
|
||||||
|
|
||||||
def test_get_attributes_from_cinder_config(self):
|
def test_get_attributes_from_cinder_config_new(self):
|
||||||
|
kwargs_expected = (
|
||||||
|
{'RestServerIp': '1.1.1.1',
|
||||||
|
'RestServerPort': 8443,
|
||||||
|
'RestUserName': 'smc',
|
||||||
|
'RestPassword': 'smc',
|
||||||
|
'SSLCert': None,
|
||||||
|
'SSLVerify': False,
|
||||||
|
'SerialNumber': self.data.array,
|
||||||
|
'srpName': 'SRP_1',
|
||||||
|
'PortGroup': self.data.port_group_name_i})
|
||||||
|
backup_conf = self.common.configuration
|
||||||
|
configuration = FakeConfiguration(
|
||||||
|
None, 'CommonTests', 1, 1, san_ip='1.1.1.1', san_login='smc',
|
||||||
|
vmax_array=self.data.array, vmax_srp='SRP_1', san_password='smc',
|
||||||
|
san_api_port=8443, vmax_port_groups=[self.data.port_group_name_i])
|
||||||
|
self.common.configuration = configuration
|
||||||
|
kwargs_returned = self.common.get_attributes_from_cinder_config()
|
||||||
|
self.assertEqual(kwargs_expected, kwargs_returned)
|
||||||
|
self.common.configuration = backup_conf
|
||||||
|
kwargs = self.common.get_attributes_from_cinder_config()
|
||||||
|
self.assertIsNone(kwargs)
|
||||||
|
|
||||||
|
def test_get_attributes_from_cinder_config_old(self):
|
||||||
kwargs_expected = (
|
kwargs_expected = (
|
||||||
{'RestServerIp': '1.1.1.1',
|
{'RestServerIp': '1.1.1.1',
|
||||||
'RestServerPort': 8443,
|
'RestServerPort': 8443,
|
||||||
@ -5374,6 +5399,63 @@ class VMAXCommonTest(test.TestCase):
|
|||||||
kwargs = self.common.get_attributes_from_cinder_config()
|
kwargs = self.common.get_attributes_from_cinder_config()
|
||||||
self.assertIsNone(kwargs)
|
self.assertIsNone(kwargs)
|
||||||
|
|
||||||
|
def test_get_attributes_from_cinder_config_with_port_override_old(self):
|
||||||
|
kwargs_expected = (
|
||||||
|
{'RestServerIp': '1.1.1.1',
|
||||||
|
'RestServerPort': 3448,
|
||||||
|
'RestUserName': 'smc',
|
||||||
|
'RestPassword': 'smc',
|
||||||
|
'SSLCert': None,
|
||||||
|
'SSLVerify': False,
|
||||||
|
'SerialNumber': self.data.array,
|
||||||
|
'srpName': 'SRP_1',
|
||||||
|
'PortGroup': self.data.port_group_name_i})
|
||||||
|
configuration = FakeConfiguration(
|
||||||
|
None, 'CommonTests', 1, 1, san_ip='1.1.1.1', san_login='smc',
|
||||||
|
vmax_array=self.data.array, vmax_srp='SRP_1', san_password='smc',
|
||||||
|
san_rest_port=3448, vmax_port_groups=[self.data.port_group_name_i])
|
||||||
|
self.common.configuration = configuration
|
||||||
|
kwargs_returned = self.common.get_attributes_from_cinder_config()
|
||||||
|
self.assertEqual(kwargs_expected, kwargs_returned)
|
||||||
|
|
||||||
|
def test_get_attributes_from_cinder_config_with_port_override_new(self):
|
||||||
|
kwargs_expected = (
|
||||||
|
{'RestServerIp': '1.1.1.1',
|
||||||
|
'RestServerPort': 3448,
|
||||||
|
'RestUserName': 'smc',
|
||||||
|
'RestPassword': 'smc',
|
||||||
|
'SSLCert': None,
|
||||||
|
'SSLVerify': False,
|
||||||
|
'SerialNumber': self.data.array,
|
||||||
|
'srpName': 'SRP_1',
|
||||||
|
'PortGroup': self.data.port_group_name_i})
|
||||||
|
configuration = FakeConfiguration(
|
||||||
|
None, 'CommonTests', 1, 1, san_ip='1.1.1.1', san_login='smc',
|
||||||
|
vmax_array=self.data.array, vmax_srp='SRP_1', san_password='smc',
|
||||||
|
san_api_port=3448, vmax_port_groups=[self.data.port_group_name_i])
|
||||||
|
self.common.configuration = configuration
|
||||||
|
kwargs_returned = self.common.get_attributes_from_cinder_config()
|
||||||
|
self.assertEqual(kwargs_expected, kwargs_returned)
|
||||||
|
|
||||||
|
def test_get_attributes_from_cinder_config_no_port(self):
|
||||||
|
kwargs_expected = (
|
||||||
|
{'RestServerIp': '1.1.1.1',
|
||||||
|
'RestServerPort': 8443,
|
||||||
|
'RestUserName': 'smc',
|
||||||
|
'RestPassword': 'smc',
|
||||||
|
'SSLCert': None,
|
||||||
|
'SSLVerify': False,
|
||||||
|
'SerialNumber': self.data.array,
|
||||||
|
'srpName': 'SRP_1',
|
||||||
|
'PortGroup': self.data.port_group_name_i})
|
||||||
|
configuration = FakeConfiguration(
|
||||||
|
None, 'CommonTests', 1, 1, san_ip='1.1.1.1', san_login='smc',
|
||||||
|
vmax_array=self.data.array, vmax_srp='SRP_1', san_password='smc',
|
||||||
|
vmax_port_groups=[self.data.port_group_name_i])
|
||||||
|
self.common.configuration = configuration
|
||||||
|
kwargs_returned = self.common.get_attributes_from_cinder_config()
|
||||||
|
self.assertEqual(kwargs_expected, kwargs_returned)
|
||||||
|
|
||||||
@mock.patch.object(rest.VMAXRest,
|
@mock.patch.object(rest.VMAXRest,
|
||||||
'get_size_of_device_on_array',
|
'get_size_of_device_on_array',
|
||||||
return_value=2.0)
|
return_value=2.0)
|
||||||
|
@ -73,7 +73,12 @@ vmax_opts = [
|
|||||||
default=False,
|
default=False,
|
||||||
help='Use this value to enable '
|
help='Use this value to enable '
|
||||||
'the initiator_check.'),
|
'the initiator_check.'),
|
||||||
cfg.PortOpt(utils.VMAX_SERVER_PORT,
|
cfg.PortOpt(utils.VMAX_SERVER_PORT_OLD,
|
||||||
|
deprecated_for_removal=True,
|
||||||
|
deprecated_since="13.0.0",
|
||||||
|
deprecated_reason='Unisphere port should now be '
|
||||||
|
'set using the common san_api_port '
|
||||||
|
'config option instead.',
|
||||||
default=8443,
|
default=8443,
|
||||||
help='REST server port number.'),
|
help='REST server port number.'),
|
||||||
cfg.StrOpt(utils.VMAX_ARRAY,
|
cfg.StrOpt(utils.VMAX_ARRAY,
|
||||||
@ -4275,6 +4280,10 @@ class VMAXCommon(object):
|
|||||||
return model_update, vol_model_updates
|
return model_update, vol_model_updates
|
||||||
|
|
||||||
def get_attributes_from_cinder_config(self):
|
def get_attributes_from_cinder_config(self):
|
||||||
|
"""Get all attributes from the configuration file
|
||||||
|
|
||||||
|
:returns: kwargs
|
||||||
|
"""
|
||||||
LOG.debug("Using cinder.conf file")
|
LOG.debug("Using cinder.conf file")
|
||||||
kwargs = None
|
kwargs = None
|
||||||
username = self.configuration.safe_get(utils.VMAX_USER_NAME)
|
username = self.configuration.safe_get(utils.VMAX_USER_NAME)
|
||||||
@ -4293,17 +4302,18 @@ class VMAXCommon(object):
|
|||||||
if port_groups:
|
if port_groups:
|
||||||
random_portgroup = random.choice(self.configuration.safe_get(
|
random_portgroup = random.choice(self.configuration.safe_get(
|
||||||
utils.VMAX_PORT_GROUPS))
|
utils.VMAX_PORT_GROUPS))
|
||||||
|
|
||||||
kwargs = (
|
kwargs = (
|
||||||
{'RestServerIp': self.configuration.safe_get(
|
{'RestServerIp': self.configuration.safe_get(
|
||||||
utils.VMAX_SERVER_IP),
|
utils.VMAX_SERVER_IP),
|
||||||
'RestServerPort': self.configuration.safe_get(
|
'RestServerPort': self._get_unisphere_port(),
|
||||||
utils.VMAX_SERVER_PORT),
|
|
||||||
'RestUserName': username,
|
'RestUserName': username,
|
||||||
'RestPassword': password,
|
'RestPassword': password,
|
||||||
'SSLCert': self.configuration.safe_get('driver_client_cert'),
|
'SSLCert': self.configuration.safe_get('driver_client_cert'),
|
||||||
'SerialNumber': serial_number,
|
'SerialNumber': serial_number,
|
||||||
'srpName': srp_name,
|
'srpName': srp_name,
|
||||||
'PortGroup': random_portgroup})
|
'PortGroup': random_portgroup})
|
||||||
|
|
||||||
if self.configuration.safe_get('driver_ssl_cert_verify'):
|
if self.configuration.safe_get('driver_ssl_cert_verify'):
|
||||||
kwargs.update({'SSLVerify': self.configuration.safe_get(
|
kwargs.update({'SSLVerify': self.configuration.safe_get(
|
||||||
'driver_ssl_cert_path')})
|
'driver_ssl_cert_path')})
|
||||||
@ -4313,6 +4323,20 @@ class VMAXCommon(object):
|
|||||||
kwargs.update({'ServiceLevel': slo, 'Workload': workload})
|
kwargs.update({'ServiceLevel': slo, 'Workload': workload})
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
|
def _get_unisphere_port(self):
|
||||||
|
"""Get unisphere port from the configuration file
|
||||||
|
|
||||||
|
:returns: unisphere port
|
||||||
|
"""
|
||||||
|
if self.configuration.safe_get(utils.VMAX_SERVER_PORT_OLD):
|
||||||
|
return self.configuration.safe_get(utils.VMAX_SERVER_PORT_OLD)
|
||||||
|
elif self.configuration.safe_get(utils.VMAX_SERVER_PORT_NEW):
|
||||||
|
return self.configuration.safe_get(utils.VMAX_SERVER_PORT_NEW)
|
||||||
|
else:
|
||||||
|
LOG.debug("VMAX port is not set, using default port: %s",
|
||||||
|
utils.DEFAULT_PORT)
|
||||||
|
return utils.DEFAULT_PORT
|
||||||
|
|
||||||
def revert_to_snapshot(self, volume, snapshot):
|
def revert_to_snapshot(self, volume, snapshot):
|
||||||
"""Revert volume to snapshot.
|
"""Revert volume to snapshot.
|
||||||
|
|
||||||
|
@ -73,6 +73,8 @@ RDF_ACTIVE = 'active'
|
|||||||
RDF_ACTIVEACTIVE = 'activeactive'
|
RDF_ACTIVEACTIVE = 'activeactive'
|
||||||
RDF_ACTIVEBIAS = 'activebias'
|
RDF_ACTIVEBIAS = 'activebias'
|
||||||
METROBIAS = 'metro_bias'
|
METROBIAS = 'metro_bias'
|
||||||
|
DEFAULT_PORT = 8443
|
||||||
|
|
||||||
# Multiattach constants
|
# Multiattach constants
|
||||||
IS_MULTIATTACH = 'multiattach'
|
IS_MULTIATTACH = 'multiattach'
|
||||||
OTHER_PARENT_SG = 'other_parent_sg_name'
|
OTHER_PARENT_SG = 'other_parent_sg_name'
|
||||||
@ -83,7 +85,8 @@ NO_SLO_SG = 'no_slo_sg'
|
|||||||
VMAX_SERVER_IP = 'san_ip'
|
VMAX_SERVER_IP = 'san_ip'
|
||||||
VMAX_USER_NAME = 'san_login'
|
VMAX_USER_NAME = 'san_login'
|
||||||
VMAX_PASSWORD = 'san_password'
|
VMAX_PASSWORD = 'san_password'
|
||||||
VMAX_SERVER_PORT = 'san_rest_port'
|
VMAX_SERVER_PORT_NEW = 'san_api_port'
|
||||||
|
VMAX_SERVER_PORT_OLD = 'san_rest_port'
|
||||||
VMAX_ARRAY = 'vmax_array'
|
VMAX_ARRAY = 'vmax_array'
|
||||||
VMAX_WORKLOAD = 'vmax_workload'
|
VMAX_WORKLOAD = 'vmax_workload'
|
||||||
VMAX_SRP = 'vmax_srp'
|
VMAX_SRP = 'vmax_srp'
|
||||||
|
@ -164,7 +164,7 @@ VMAX Driver Integration
|
|||||||
| RestServerIp | san_ip | " | Yes | IP address of the |
|
| RestServerIp | san_ip | " | Yes | IP address of the |
|
||||||
| | | | | Unisphere server |
|
| | | | | Unisphere server |
|
||||||
+-----------------+------------------------+---------+----------+---------------------------+
|
+-----------------+------------------------+---------+----------+---------------------------+
|
||||||
| RestServerPort | san_rest_port | 8443 | No | Port of the |
|
| RestServerPort | san_api_port | 8443 | No | Port of the |
|
||||||
| | | | | Unisphere server |
|
| | | | | Unisphere server |
|
||||||
+-----------------+------------------------+---------+----------+---------------------------+
|
+-----------------+------------------------+---------+----------+---------------------------+
|
||||||
| RestUserName | san_login | 'admin' | Yes | Username of the |
|
| RestUserName | san_login | 'admin' | Yes | Username of the |
|
||||||
@ -188,7 +188,7 @@ VMAX Driver Integration
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
``san_rest_port`` is ``8443`` by default but can be changed if
|
``san_api_port`` is ``8443`` by default but can be changed if
|
||||||
necessary. For the purposes of this documentation the default is
|
necessary. For the purposes of this documentation the default is
|
||||||
assumed so the tag will not appear in any of the ``cinder.conf``
|
assumed so the tag will not appear in any of the ``cinder.conf``
|
||||||
extracts below.
|
extracts below.
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- |
|
||||||
|
VMAX driver - configuration tag san_rest_port will be replaced by
|
||||||
|
san_api_port in the next release.
|
Loading…
x
Reference in New Issue
Block a user