diff --git a/nova_powervm/tests/virt/powervm/test_media.py b/nova_powervm/tests/virt/powervm/test_media.py index 10387b03..262c0b9e 100644 --- a/nova_powervm/tests/virt/powervm/test_media.py +++ b/nova_powervm/tests/virt/powervm/test_media.py @@ -82,8 +82,16 @@ class TestConfigDrivePowerVM(test.TestCase): iso_path, file_name = cfg_dr_builder._create_cfg_dr_iso(mock_instance, mock_files, mock_net) - self.assertEqual('config_fake_instance.iso', file_name) - self.assertEqual('/tmp/cfgdrv/config_fake_instance.iso', iso_path) + self.assertEqual('cfg_fake_instance.iso', file_name) + self.assertEqual('/tmp/cfgdrv/cfg_fake_instance.iso', iso_path) + # Make sure the length is limited properly + mock_instance.name = 'fake-instance-with-name-that-is-too-long' + iso_path, file_name = cfg_dr_builder._create_cfg_dr_iso(mock_instance, + mock_files, + mock_net) + self.assertEqual('cfg_fake_instance_with_name_that_.iso', file_name) + self.assertEqual('/tmp/cfgdrv/cfg_fake_instance_with_name_that_.iso', + iso_path) @mock.patch('nova_powervm.virt.powervm.media.ConfigDrivePowerVM.' '_create_cfg_dr_iso') diff --git a/nova_powervm/virt/powervm/disk/driver.py b/nova_powervm/virt/powervm/disk/driver.py index b9cf942e..6bd67285 100644 --- a/nova_powervm/virt/powervm/disk/driver.py +++ b/nova_powervm/virt/powervm/disk/driver.py @@ -23,6 +23,7 @@ import six from nova.i18n import _LW from nova import image +import pypowervm.const as pvm_const import pypowervm.tasks.scsi_mapper as tsk_map import pypowervm.util as pvm_util import pypowervm.wrappers.virtual_io_server as pvm_vios @@ -224,7 +225,9 @@ class DiskAdapter(object): prefix = '%s_' % (disk_type[0] if short else disk_type) base = ('%s_%s' % (instance.name[:8], instance.uuid[:4]) if short else instance.name) - return pvm_util.sanitize_file_name_for_api(base, prefix=prefix) + return pvm_util.sanitize_file_name_for_api( + base, prefix=prefix, max_len=pvm_const.MaxLen.VDISK_NAME if short + else pvm_const.MaxLen.FILENAME_DEFAULT) @staticmethod def _get_image_name(image_meta): diff --git a/nova_powervm/virt/powervm/media.py b/nova_powervm/virt/powervm/media.py index 6587546b..38987d4f 100644 --- a/nova_powervm/virt/powervm/media.py +++ b/nova_powervm/virt/powervm/media.py @@ -24,6 +24,7 @@ import os from oslo_config import cfg from oslo_log import log as logging +from pypowervm import const as pvm_const from pypowervm.tasks import scsi_mapper as tsk_map from pypowervm.tasks import storage as tsk_stg from pypowervm import util as pvm_util @@ -92,7 +93,8 @@ class ConfigDrivePowerVM(object): os.mkdir(im_path) file_name = pvm_util.sanitize_file_name_for_api( - instance.name, prefix='config_', suffix='.iso') + instance.name, prefix='cfg_', suffix='.iso', + max_len=pvm_const.MaxLen.VOPT_NAME) iso_path = os.path.join(im_path, file_name) with configdrive.ConfigDriveBuilder(instance_md=inst_md) as cdb: LOG.info(_LI("Config drive ISO being built for instance %(inst)s "