]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Rebrand HP XP driver to now be HPE
authorTakeshi Nishikawa <takeshi.nishikawa.zf@hitachi.com>
Thu, 24 Dec 2015 12:50:03 +0000 (21:50 +0900)
committerTakeshi Nishikawa <takeshi.nishikawa.zf@hitachi.com>
Thu, 24 Dec 2015 12:52:26 +0000 (21:52 +0900)
This patch refactors the HP XP driver to be HPE XP.
This is being done because the company responsible for
this driver is now Hewlett Packard Enterprise (HPE).
The driver is now located in the cinder/volume/drivers/hpe folder.

DocImpact
Implements: blueprint rebrand-hp-xp-driver
Change-Id: Ia16d39b9fec299662c97c236215a4e1aec44171a

cinder/opts.py
cinder/tests/unit/test_hpe_xp_fc.py [moved from cinder/tests/unit/test_hp_xp_fc.py with 96% similarity]
cinder/volume/drivers/hpe/hpe_xp_fc.py [moved from cinder/volume/drivers/san/hp/hp_xp_fc.py with 87% similarity]
cinder/volume/drivers/hpe/hpe_xp_opts.py [new file with mode: 0644]
cinder/volume/drivers/san/hp/hp_xp_opts.py [deleted file]
cinder/volume/manager.py
releasenotes/notes/rebrand-hp-xp-driver-55a716d8f6d40d60.yaml [new file with mode: 0644]
tests-py3.txt

index ad20f46e745474b3d72101e7f7dd1b2229aa2927..bcd0c18c2a23a92a722284490d2b270bf37d4f66 100644 (file)
@@ -100,6 +100,8 @@ from cinder.volume.drivers.hpe import hpe_3par_common as \
     cinder_volume_drivers_hpe_hpe3parcommon
 from cinder.volume.drivers.hpe import hpe_lefthand_iscsi as \
     cinder_volume_drivers_hpe_hpelefthandiscsi
+from cinder.volume.drivers.hpe import hpe_xp_opts as \
+    cinder_volume_drivers_hpe_hpexpopts
 from cinder.volume.drivers.huawei import huawei_driver as \
     cinder_volume_drivers_huawei_huaweidriver
 from cinder.volume.drivers.ibm import flashsystem_common as \
@@ -136,8 +138,6 @@ from cinder.volume.drivers import pure as cinder_volume_drivers_pure
 from cinder.volume.drivers import quobyte as cinder_volume_drivers_quobyte
 from cinder.volume.drivers import rbd as cinder_volume_drivers_rbd
 from cinder.volume.drivers import remotefs as cinder_volume_drivers_remotefs
-from cinder.volume.drivers.san.hp import hp_xp_opts as \
-    cinder_volume_drivers_san_hp_hpxpopts
 from cinder.volume.drivers.san.hp import hpmsa_common as \
     cinder_volume_drivers_san_hp_hpmsacommon
 from cinder.volume.drivers.san import san as cinder_volume_drivers_san_san
@@ -214,9 +214,6 @@ def list_opts():
                 storwize_svc_iscsi_opts,
                 cinder_backup_drivers_glusterfs.glusterfsbackup_service_opts,
                 cinder_backup_drivers_tsm.tsm_opts,
-                cinder_volume_drivers_san_hp_hpxpopts.FC_VOLUME_OPTS,
-                cinder_volume_drivers_san_hp_hpxpopts.COMMON_VOLUME_OPTS,
-                cinder_volume_drivers_san_hp_hpxpopts.HORCM_VOLUME_OPTS,
                 cinder_test.test_opts,
                 cinder_volume_drivers_ibm_gpfs.gpfs_opts,
                 cinder_volume_drivers_violin_v7000common.violin_opts,
@@ -309,6 +306,9 @@ def list_opts():
                 cinder_compute_nova.nova_opts,
                 cinder_volume_drivers_ibm_flashsystemfc.flashsystem_fc_opts,
                 cinder_volume_drivers_prophetstor_options.DPL_OPTS,
+                cinder_volume_drivers_hpe_hpexpopts.FC_VOLUME_OPTS,
+                cinder_volume_drivers_hpe_hpexpopts.COMMON_VOLUME_OPTS,
+                cinder_volume_drivers_hpe_hpexpopts.HORCM_VOLUME_OPTS,
                 cinder_volume_drivers_hitachi_hbsdiscsi.volume_opts,
                 cinder_volume_manager.volume_manager_opts,
                 cinder_volume_drivers_nexenta_nexentaedge_iscsi.
similarity index 96%
rename from cinder/tests/unit/test_hp_xp_fc.py
rename to cinder/tests/unit/test_hpe_xp_fc.py
index 58c08d7eafb63888c94fb0665d6f635eb41b1700..3761c7c3f3ab33d8204d015edd5003b0ce27279d 100644 (file)
@@ -21,8 +21,8 @@ from cinder.tests.unit import fake_snapshot
 from cinder.tests.unit import fake_volume
 from cinder.volume import configuration as conf
 from cinder.volume import driver
-from cinder.volume.drivers.san.hp import hp_xp_fc
-from cinder.volume.drivers.san.hp import hp_xp_opts
+from cinder.volume.drivers.hpe import hpe_xp_fc
+from cinder.volume.drivers.hpe import hpe_xp_opts
 
 from oslo_config import cfg
 from oslo_utils import importutils
@@ -35,8 +35,8 @@ EXISTING_POOL_REF = {
 }
 
 
-class HPXPFakeCommon(object):
-    """Fake HPXP Common."""
+class HPEXPFakeCommon(object):
+    """Fake HPEXP Common."""
 
     def __init__(self, conf, storage_protocol, **kwargs):
         self.conf = conf
@@ -50,8 +50,8 @@ class HPXPFakeCommon(object):
             'hba_id': 'wwpns',
             'hba_id_type': 'World Wide Name',
             'msg_id': {'target': 308},
-            'volume_backend_name': 'HPXPFC',
-            'volume_opts': hp_xp_opts.FC_VOLUME_OPTS,
+            'volume_backend_name': 'HPEXPFC',
+            'volume_opts': hpe_xp_opts.FC_VOLUME_OPTS,
             'volume_type': 'fibre_channel',
         }
 
@@ -123,10 +123,10 @@ class HPXPFakeCommon(object):
         if refresh:
             d = {}
             d['volume_backend_name'] = self.driver_info['volume_backend_name']
-            d['vendor_name'] = 'Hewlett-Packard'
-            d['driver_version'] = '1.3.0-0_2015.1'
+            d['vendor_name'] = 'Hewlett Packard Enterprise'
+            d['driver_version'] = '1.1.0'
             d['storage_protocol'] = self.storage_info['protocol']
-            pool_info = POOL_INFO.get(self.conf.hpxp_pool)
+            pool_info = POOL_INFO.get(self.conf.hpexp_pool)
             if pool_info is None:
                 return self._stats
             d['total_capacity_gb'] = pool_info['total_gb']
@@ -231,7 +231,7 @@ class HPXPFakeCommon(object):
             del self.volumes[volume['provider_location']]
 
     def get_pool_id(self):
-        pool = self.conf.hpxp_pool
+        pool = self.conf.hpexp_pool
         if pool.isdigit():
             return int(pool)
         return None
@@ -242,7 +242,7 @@ class HPXPFakeCommon(object):
         if self.storage_info['pool_id'] is None:
             raise exception.VolumeBackendAPIException(
                 data='A pool could not be found. (pool: %(pool)s)' %
-                {'pool': self.conf.hpxp_pool})
+                {'pool': self.conf.hpexp_pool})
 
     def initialize_connection(self, volume, connector):
         ldev = volume.get('provider_location')
@@ -306,8 +306,8 @@ class HPXPFakeCommon(object):
         pass
 
 
-class HPXPFCDriverTest(test.TestCase):
-    """Test HPXPFCDriver."""
+class HPEXPFCDriverTest(test.TestCase):
+    """Test HPEXPFCDriver."""
 
     _VOLUME = {'size': 128,
                'name': 'test1',
@@ -341,22 +341,22 @@ class HPXPFCDriverTest(test.TestCase):
     _TOO_BIG_VOLUME_SIZE = 100000
 
     def __init__(self, *args, **kwargs):
-        super(HPXPFCDriverTest, self).__init__(*args, **kwargs)
+        super(HPEXPFCDriverTest, self).__init__(*args, **kwargs)
 
     def setUp(self):
         self._setup_config()
         self._setup_driver()
-        super(HPXPFCDriverTest, self).setUp()
+        super(HPEXPFCDriverTest, self).setUp()
 
     def _setup_config(self):
         self.configuration = mock.Mock(conf.Configuration)
-        self.configuration.hpxp_storage_id = "00000"
-        self.configuration.hpxp_pool = "30"
+        self.configuration.hpexp_storage_id = "00000"
+        self.configuration.hpexp_pool = "30"
 
     @mock.patch.object(importutils, 'import_object', return_value=None)
     def _setup_driver(self, arg1):
-        self.driver = hp_xp_fc.HPXPFCDriver(configuration=self.configuration)
-        self.driver.common = HPXPFakeCommon(self.configuration, 'FC')
+        self.driver = hpe_xp_fc.HPEXPFCDriver(configuration=self.configuration)
+        self.driver.common = HPEXPFakeCommon(self.configuration, 'FC')
         self.driver.do_setup(None)
 
     # API test cases
@@ -495,9 +495,8 @@ class HPXPFCDriverTest(test.TestCase):
         self.assertTrue(has_volume)
 
     def test_create_volume_from_snapshot_error_on_non_existing_snapshot(self):
-        """Test create_volume_from_snapshot.
+        """Test create_volume_from_snapshot is error on non existing snapshot.
 
-        Test create_volume_from_snapshot is error on non existing snapshot.
         """
         volume2 = fake_volume.fake_db_volume(**self._VOLUME2)
         snapshot = fake_snapshot.fake_db_snapshot(**self._TEST_SNAPSHOT)
@@ -561,11 +560,11 @@ class HPXPFCDriverTest(test.TestCase):
     def test_get_volume_stats(self):
         """Test get_volume_stats."""
         rc = self.driver.get_volume_stats(True)
-        self.assertEqual("Hewlett-Packard", rc['vendor_name'])
+        self.assertEqual("Hewlett Packard Enterprise", rc['vendor_name'])
 
     def test_get_volume_stats_error_on_non_existing_pool_id(self):
         """Test get_volume_stats is error on non existing pool id."""
-        self.configuration.hpxp_pool = 29
+        self.configuration.hpexp_pool = 29
         rc = self.driver.get_volume_stats(True)
         self.assertEqual({}, rc)
 
@@ -829,7 +828,7 @@ class HPXPFCDriverTest(test.TestCase):
 
     def test_do_setup_error_on_invalid_pool_id(self):
         """Test do_setup is error on invalid pool id."""
-        self.configuration.hpxp_pool = 'invalid'
+        self.configuration.hpexp_pool = 'invalid'
 
         self.assertRaises(exception.VolumeBackendAPIException,
                           self.driver.do_setup, None)
similarity index 87%
rename from cinder/volume/drivers/san/hp/hp_xp_fc.py
rename to cinder/volume/drivers/hpe/hpe_xp_fc.py
index ea2f6f4782c8245a9360b6e84ed5eb027a19f002..c60c39eebd366b6acc88468540f11b7e7fdf49f9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 20142015, Hitachi, Ltd.
+# Copyright (C) 2014-2015, Hitachi, Ltd.
 #
 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
 #    not use this file except in compliance with the License. You may obtain
 #    License for the specific language governing permissions and limitations
 #    under the License.
 """
-Fibre channel Cinder volume driver for Hewlett-Packard storage.
+Fibre channel Cinder volume driver for Hewlett Packard Enterprise storage.
 
 """
 
 from oslo_utils import importutils
 
 from cinder.volume import driver
-from cinder.volume.drivers.san.hp import hp_xp_opts as opts
+from cinder.volume.drivers.hpe import hpe_xp_opts as opts
 from cinder.zonemanager import utils as fczm_utils
 
-_DRIVER_DIR = 'cinder.volume.drivers.san.hp'
-_DRIVER_CLASS = 'hp_xp_horcm_fc.HPXPHORCMFC'
+_DRIVER_DIR = 'cinder.volume.drivers.hpe'
+_DRIVER_CLASS = 'hpe_xp_horcm_fc.HPEXPHORCMFC'
 
 
-class HPXPFCDriver(driver.FibreChannelDriver):
-    """OpenStack Fibre Channel driver to enable HP XP storage."""
+class HPEXPFCDriver(driver.FibreChannelDriver):
+    """OpenStack Fibre Channel driver to enable HPE XP storage."""
 
     def __init__(self, *args, **kwargs):
         """Initialize the driver."""
-        super(HPXPFCDriver, self).__init__(*args, **kwargs)
+        super(HPEXPFCDriver, self).__init__(*args, **kwargs)
 
         self.configuration.append_config_values(opts.FC_VOLUME_OPTS)
         self.configuration.append_config_values(opts.COMMON_VOLUME_OPTS)
@@ -80,7 +80,7 @@ class HPXPFCDriver(driver.FibreChannelDriver):
         Call copy_volume_data() of super class and
         carry out original postprocessing.
         """
-        super(HPXPFCDriver, self).copy_volume_data(
+        super(HPEXPFCDriver, self).copy_volume_data(
             context, src_vol, dest_vol, remote)
         self.common.copy_volume_data(context, src_vol, dest_vol, remote)
 
@@ -90,7 +90,7 @@ class HPXPFCDriver(driver.FibreChannelDriver):
         Call copy_image_to_volume() of super class and
         carry out original postprocessing.
         """
-        super(HPXPFCDriver, self).copy_image_to_volume(
+        super(HPEXPFCDriver, self).copy_image_to_volume(
             context, volume, image_service, image_id)
         self.common.copy_image_to_volume(
             context, volume, image_service, image_id)
@@ -101,7 +101,7 @@ class HPXPFCDriver(driver.FibreChannelDriver):
         Call restore_backup() of super class and
         carry out original postprocessing.
         """
-        super(HPXPFCDriver, self).restore_backup(
+        super(HPEXPFCDriver, self).restore_backup(
             context, backup, volume, backup_service)
         self.common.restore_backup(context, backup, volume, backup_service)
 
@@ -110,7 +110,7 @@ class HPXPFCDriver(driver.FibreChannelDriver):
         self.common.extend_volume(volume, new_size)
 
     def manage_existing(self, volume, existing_ref):
-        """Manage an existing HP XP storage volume.
+        """Manage an existing HPE XP storage volume.
 
         existing_ref is a dictionary of the form:
 
@@ -128,7 +128,7 @@ class HPXPFCDriver(driver.FibreChannelDriver):
         self.common.unmanage(volume)
 
     def do_setup(self, context):
-        """Setup and verify HP XP storage connection."""
+        """Setup and verify HPE XP storage connection."""
         self.common.do_setup(context)
 
     def ensure_export(self, context, volume):
diff --git a/cinder/volume/drivers/hpe/hpe_xp_opts.py b/cinder/volume/drivers/hpe/hpe_xp_opts.py
new file mode 100644 (file)
index 0000000..7d6bfb4
--- /dev/null
@@ -0,0 +1,116 @@
+# Copyright (C) 2015, Hitachi, Ltd.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+"""HPE XP driver options."""
+
+from oslo_config import cfg
+
+FC_VOLUME_OPTS = [
+    cfg.BoolOpt(
+        'hpexp_zoning_request',
+        default=False,
+        help='Request for FC Zone creating host group',
+        deprecated_name='hpxp_zoning_request'),
+]
+
+COMMON_VOLUME_OPTS = [
+    cfg.StrOpt(
+        'hpexp_storage_cli',
+        help='Type of storage command line interface',
+        deprecated_name='hpxp_storage_cli'),
+    cfg.StrOpt(
+        'hpexp_storage_id',
+        help='ID of storage system',
+        deprecated_name='hpxp_storage_id'),
+    cfg.StrOpt(
+        'hpexp_pool',
+        help='Pool of storage system',
+        deprecated_name='hpxp_pool'),
+    cfg.StrOpt(
+        'hpexp_thin_pool',
+        help='Thin pool of storage system',
+        deprecated_name='hpxp_thin_pool'),
+    cfg.StrOpt(
+        'hpexp_ldev_range',
+        help='Logical device range of storage system',
+        deprecated_name='hpxp_ldev_range'),
+    cfg.StrOpt(
+        'hpexp_default_copy_method',
+        default='FULL',
+        help='Default copy method of storage system. '
+             'There are two valid values: "FULL" specifies that a full copy; '
+             '"THIN" specifies that a thin copy. Default value is "FULL"',
+        deprecated_name='hpxp_default_copy_method'),
+    cfg.IntOpt(
+        'hpexp_copy_speed',
+        default=3,
+        help='Copy speed of storage system',
+        deprecated_name='hpxp_copy_speed'),
+    cfg.IntOpt(
+        'hpexp_copy_check_interval',
+        default=3,
+        help='Interval to check copy',
+        deprecated_name='hpxp_copy_check_interval'),
+    cfg.IntOpt(
+        'hpexp_async_copy_check_interval',
+        default=10,
+        help='Interval to check copy asynchronously',
+        deprecated_name='hpxp_async_copy_check_interval'),
+    cfg.ListOpt(
+        'hpexp_target_ports',
+        help='Target port names for host group or iSCSI target',
+        deprecated_name='hpxp_target_ports'),
+    cfg.ListOpt(
+        'hpexp_compute_target_ports',
+        help=(
+            'Target port names of compute node '
+            'for host group or iSCSI target'),
+        deprecated_name='hpxp_compute_target_ports'),
+    cfg.BoolOpt(
+        'hpexp_group_request',
+        default=False,
+        help='Request for creating host group or iSCSI target',
+        deprecated_name='hpxp_group_request'),
+]
+
+HORCM_VOLUME_OPTS = [
+    cfg.ListOpt(
+        'hpexp_horcm_numbers',
+        default=["200", "201"],
+        help='Instance numbers for HORCM',
+        deprecated_name='hpxp_horcm_numbers'),
+    cfg.StrOpt(
+        'hpexp_horcm_user',
+        help='Username of storage system for HORCM',
+        deprecated_name='hpxp_horcm_user'),
+    cfg.BoolOpt(
+        'hpexp_horcm_add_conf',
+        default=True,
+        help='Add to HORCM configuration',
+        deprecated_name='hpxp_horcm_add_conf'),
+    cfg.StrOpt(
+        'hpexp_horcm_resource_name',
+        default='meta_resource',
+        help='Resource group name of storage system for HORCM',
+        deprecated_name='hpxp_horcm_resource_name'),
+    cfg.BoolOpt(
+        'hpexp_horcm_name_only_discovery',
+        default=False,
+        help='Only discover a specific name of host group or iSCSI target',
+        deprecated_name='hpxp_horcm_name_only_discovery'),
+]
+
+CONF = cfg.CONF
+CONF.register_opts(FC_VOLUME_OPTS)
+CONF.register_opts(COMMON_VOLUME_OPTS)
+CONF.register_opts(HORCM_VOLUME_OPTS)
diff --git a/cinder/volume/drivers/san/hp/hp_xp_opts.py b/cinder/volume/drivers/san/hp/hp_xp_opts.py
deleted file mode 100644 (file)
index 9190eff..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright (C) 2015, Hitachi, Ltd.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-"""HP XP driver options."""
-
-from oslo_config import cfg
-
-FC_VOLUME_OPTS = [
-    cfg.BoolOpt(
-        'hpxp_zoning_request',
-        default=False,
-        help='Request for FC Zone creating host group'),
-]
-
-COMMON_VOLUME_OPTS = [
-    cfg.StrOpt(
-        'hpxp_storage_cli',
-        help='Type of storage command line interface'),
-    cfg.StrOpt(
-        'hpxp_storage_id',
-        help='ID of storage system'),
-    cfg.StrOpt(
-        'hpxp_pool',
-        help='Pool of storage system'),
-    cfg.StrOpt(
-        'hpxp_thin_pool',
-        help='Thin pool of storage system'),
-    cfg.StrOpt(
-        'hpxp_ldev_range',
-        help='Logical device range of storage system'),
-    cfg.StrOpt(
-        'hpxp_default_copy_method',
-        default='FULL',
-        help='Default copy method of storage system. '
-             'There are two valid values: "FULL" specifies that a full copy; '
-             '"THIN" specifies that a thin copy. Default value is "FULL"'),
-    cfg.IntOpt(
-        'hpxp_copy_speed',
-        default=3,
-        help='Copy speed of storage system'),
-    cfg.IntOpt(
-        'hpxp_copy_check_interval',
-        default=3,
-        help='Interval to check copy'),
-    cfg.IntOpt(
-        'hpxp_async_copy_check_interval',
-        default=10,
-        help='Interval to check copy asynchronously'),
-    cfg.ListOpt(
-        'hpxp_target_ports',
-        help='Target port names for host group or iSCSI target'),
-    cfg.ListOpt(
-        'hpxp_compute_target_ports',
-        help=(
-            'Target port names of compute node '
-            'for host group or iSCSI target')),
-    cfg.BoolOpt(
-        'hpxp_group_request',
-        default=False,
-        help='Request for creating host group or iSCSI target'),
-]
-
-HORCM_VOLUME_OPTS = [
-    cfg.ListOpt(
-        'hpxp_horcm_numbers',
-        default=["200", "201"],
-        help='Instance numbers for HORCM'),
-    cfg.StrOpt(
-        'hpxp_horcm_user',
-        help='Username of storage system for HORCM'),
-    cfg.BoolOpt(
-        'hpxp_horcm_add_conf',
-        default=True,
-        help='Add to HORCM configuration'),
-    cfg.StrOpt(
-        'hpxp_horcm_resource_name',
-        default='meta_resource',
-        help='Resource group name of storage system for HORCM'),
-    cfg.BoolOpt(
-        'hpxp_horcm_name_only_discovery',
-        default=False,
-        help='Only discover a specific name of host group or iSCSI target'),
-]
-
-CONF = cfg.CONF
-CONF.register_opts(FC_VOLUME_OPTS)
-CONF.register_opts(COMMON_VOLUME_OPTS)
-CONF.register_opts(HORCM_VOLUME_OPTS)
index b9fd6b9804d32e7d25d5c2caf94cc8bd6b568af3..a64bf0ac0e57b5b411fc5cfb40f96f2e09dfa980 100644 (file)
@@ -129,6 +129,8 @@ MAPPING = {
     'cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver',
     'cinder.volume.drivers.san.hp.hp_lefthand_iscsi.HPLeftHandISCSIDriver':
     'cinder.volume.drivers.hpe.hpe_lefthand_iscsi.HPELeftHandISCSIDriver',
+    'cinder.volume.drivers.san.hp.hp_xp_fc.HPXPFCDriver':
+    'cinder.volume.drivers.hpe.hpe_xp_fc.HPEXPFCDriver',
 }
 
 
diff --git a/releasenotes/notes/rebrand-hp-xp-driver-55a716d8f6d40d60.yaml b/releasenotes/notes/rebrand-hp-xp-driver-55a716d8f6d40d60.yaml
new file mode 100644 (file)
index 0000000..3a51871
--- /dev/null
@@ -0,0 +1,3 @@
+---
+upgrade:
+  - HP drivers have been rebranded to HPE. Existing configurations will continue to work with the legacy name, but will need to be updated by the next release.
index 3563646ad14c75fb37ab57f0bd8340cc6e564267..b505f3ca83265fb987b5b3732bddd17ab52900da 100644 (file)
@@ -90,7 +90,7 @@ cinder.tests.unit.test_hitachi_hnas_backend
 cinder.tests.unit.test_hitachi_hnas_iscsi
 cinder.tests.unit.test_hitachi_hnas_nfs
 cinder.tests.unit.test_hpe3par
-cinder.tests.unit.test_hp_xp_fc
+cinder.tests.unit.test_hpe_xp_fc
 cinder.tests.unit.test_hpelefthand
 cinder.tests.unit.test_huawei_drivers
 cinder.tests.unit.test_huawei_drivers_compatibility