Merge "Use ironic-lib's util methods"

This commit is contained in:
Jenkins 2016-01-06 17:45:38 +00:00 committed by Gerrit Code Review
commit 69c33f7ed5
22 changed files with 66 additions and 214 deletions

View File

@ -6,8 +6,5 @@
iscsiadm: CommandFilter, iscsiadm, root
# ironic/common/utils.py
mkswap: CommandFilter, mkswap, root
mkfs: CommandFilter, mkfs, root
mount: CommandFilter, mount, root
umount: CommandFilter, umount, root
dd: CommandFilter, dd, root

View File

@ -23,6 +23,7 @@ import os
import shutil
from ironic_lib import disk_utils
from ironic_lib import utils as ironic_utils
import jinja2
from oslo_concurrency import processutils
from oslo_config import cfg
@ -119,7 +120,8 @@ def create_vfat_image(output_file, files_info=None, parameters=None,
creating filesystem, copying files, etc.
"""
try:
utils.dd('/dev/zero', output_file, 'count=1', "bs=%dKiB" % fs_size_kib)
ironic_utils.dd('/dev/zero', output_file, 'count=1',
"bs=%dKiB" % fs_size_kib)
except processutils.ProcessExecutionError as e:
raise exception.ImageCreationFailed(image_type='vfat', error=e)
@ -129,7 +131,7 @@ def create_vfat_image(output_file, files_info=None, parameters=None,
# The label helps ramdisks to find the partition containing
# the parameters (by using /dev/disk/by-label/ir-vfd-dev).
# NOTE: FAT filesystem label can be up to 11 characters long.
utils.mkfs('vfat', output_file, label="ir-vfd-dev")
ironic_utils.mkfs('vfat', output_file, label="ir-vfd-dev")
utils.mount(output_file, tmpdir, '-o', 'umask=0')
except processutils.ProcessExecutionError as e:
raise exception.ImageCreationFailed(image_type='vfat', error=e)

View File

@ -16,6 +16,7 @@
import os
from ironic_lib import utils as ironic_utils
import jinja2
from oslo_config import cfg
from oslo_log import log as logging
@ -84,7 +85,7 @@ def _link_mac_pxe_configs(task):
"""
def create_link(mac_path):
utils.unlink_without_raise(mac_path)
ironic_utils.unlink_without_raise(mac_path)
relative_source_path = os.path.relpath(
pxe_config_file_path, os.path.dirname(mac_path))
utils.create_link_without_raise(relative_source_path, mac_path)
@ -120,7 +121,7 @@ def _link_ip_address_pxe_configs(task, hex_form):
for port_ip_address in ip_addrs:
ip_address_path = _get_pxe_ip_address_path(port_ip_address,
hex_form)
utils.unlink_without_raise(ip_address_path)
ironic_utils.unlink_without_raise(ip_address_path)
relative_source_path = os.path.relpath(
pxe_config_file_path, os.path.dirname(ip_address_path))
utils.create_link_without_raise(relative_source_path,
@ -276,18 +277,18 @@ def clean_up_pxe_config(task):
except exception.InvalidIPv4Address:
continue
# Cleaning up config files created for grub2.
utils.unlink_without_raise(ip_address_path)
ironic_utils.unlink_without_raise(ip_address_path)
# Cleaning up config files created for elilo.
utils.unlink_without_raise(hex_ip_path)
ironic_utils.unlink_without_raise(hex_ip_path)
else:
for mac in driver_utils.get_node_mac_addresses(task):
utils.unlink_without_raise(_get_pxe_mac_path(mac))
ironic_utils.unlink_without_raise(_get_pxe_mac_path(mac))
# TODO(lucasagomes): Backward compatibility with :hexraw,
# to be removed in Mitaka.
# see: https://bugs.launchpad.net/ironic/+bug/1441710
if CONF.pxe.ipxe_enabled:
utils.unlink_without_raise(_get_pxe_mac_path(mac,
delimiter=''))
ironic_utils.unlink_without_raise(_get_pxe_mac_path(mac,
delimiter=''))
utils.rmtree_without_raise(os.path.join(get_root_dir(),
task.node.uuid))

View File

@ -32,7 +32,6 @@ import netaddr
from oslo_concurrency import processutils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import excutils
from oslo_utils import timeutils
import paramiko
import pytz
@ -463,60 +462,6 @@ def tempdir(**kwargs):
LOG.error(_LE('Could not remove tmpdir: %s'), e)
def mkfs(fs, path, label=None):
"""Format a file or block device
:param fs: Filesystem type (examples include 'swap', 'ext3', 'ext4'
'btrfs', etc.)
:param path: Path to file or block device to format
:param label: Volume label to use
"""
# NOTE(jlvillal): This function has been moved to ironic-lib. And is
# planned to be deleted here. If need to modify this function, please also
# do the same modification in ironic-lib
if fs == 'swap':
args = ['mkswap']
else:
args = ['mkfs', '-t', fs]
# add -F to force no interactive execute on non-block device.
if fs in ('ext3', 'ext4'):
args.extend(['-F'])
if label:
if fs in ('msdos', 'vfat'):
label_opt = '-n'
else:
label_opt = '-L'
args.extend([label_opt, label])
args.append(path)
try:
execute(*args, run_as_root=True, use_standard_locale=True)
except processutils.ProcessExecutionError as e:
with excutils.save_and_reraise_exception() as ctx:
if os.strerror(errno.ENOENT) in e.stderr:
ctx.reraise = False
LOG.exception(_LE('Failed to make file system. '
'File system %s is not supported.'), fs)
raise exception.FileSystemNotSupported(fs=fs)
else:
LOG.exception(_LE('Failed to create a file system '
'in %(path)s. Error: %(error)s'),
{'path': path, 'error': e})
def unlink_without_raise(path):
# NOTE(jlvillal): This function has been moved to ironic-lib. And is
# planned to be deleted here. If need to modify this function, please also
# do the same modification in ironic-lib
try:
os.unlink(path)
except OSError as e:
if e.errno == errno.ENOENT:
return
else:
LOG.warning(_LW("Failed to unlink %(path)s, error: %(e)s"),
{'path': path, 'e': e})
def rmtree_without_raise(path):
try:
if os.path.isdir(path):
@ -588,32 +533,6 @@ def umount(loc, *args):
execute(*args, run_as_root=True, check_exit_code=[0])
def dd(src, dst, *args):
"""Execute dd from src to dst.
:param src: the input file for dd command.
:param dst: the output file for dd command.
:param args: a tuple containing the arguments to be
passed to dd command.
:raises: processutils.ProcessExecutionError if it failed
to run the process.
"""
# NOTE(jlvillal): This function has been moved to ironic-lib. And is
# planned to be deleted here. If need to modify this function, please also
# do the same modification in ironic-lib
LOG.debug("Starting dd process.")
execute('dd', 'if=%s' % src, 'of=%s' % dst, *args,
use_standard_locale=True, run_as_root=True, check_exit_code=[0])
def is_http_url(url):
# NOTE(jlvillal): This function has been moved to ironic-lib. And is
# planned to be deleted here. If need to modify this function, please also
# do the same modification in ironic-lib
url = url.lower()
return url.startswith('http://') or url.startswith('https://')
def check_dir(directory_to_check=None, required_space=1):
"""Check a directory is usable.

View File

@ -26,6 +26,7 @@ import signal
import subprocess
import time
from ironic_lib import utils as ironic_utils
from oslo_concurrency import processutils
from oslo_config import cfg
from oslo_log import log as logging
@ -136,7 +137,7 @@ def _stop_console(node_uuid):
"but pid file exists while trying to stop "
"shellinabox console."), node_uuid)
finally:
utils.unlink_without_raise(_get_console_pid_file(node_uuid))
ironic_utils.unlink_without_raise(_get_console_pid_file(node_uuid))
def make_persistent_password_file(path, password):

View File

@ -18,6 +18,7 @@ Boot Interface for iLO drivers and its supporting methods.
import os
import tempfile
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import excutils
@ -32,7 +33,6 @@ from ironic.common.i18n import _LW
from ironic.common import image_service
from ironic.common import images
from ironic.common import swift
from ironic.common import utils
from ironic.conductor import utils as manager_utils
from ironic.drivers import base
from ironic.drivers.modules import deploy_utils
@ -223,7 +223,7 @@ def _clean_up_boot_iso_for_instance(node):
ilo_boot_iso_name = os.path.basename(result.path)
boot_iso_path = os.path.join(
CONF.deploy.http_root, ilo_boot_iso_name)
utils.unlink_without_raise(boot_iso_path)
ironic_utils.unlink_without_raise(boot_iso_path)
def _parse_deploy_info(node):

View File

@ -20,6 +20,7 @@ import os
import shutil
import tempfile
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import importutils
@ -325,7 +326,7 @@ def destroy_floppy_image_from_web_server(node):
object_name = _get_floppy_image_name(node)
image_path = os.path.join(CONF.deploy.http_root, object_name)
utils.unlink_without_raise(image_path)
ironic_utils.unlink_without_raise(image_path)
def attach_vmedia(node, device, url):

View File

@ -21,6 +21,7 @@ Ironic Native IPMI power manager.
import os
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import excutils
@ -605,7 +606,7 @@ class NativeIPMIShellinaboxConsole(base.ConsoleInterface):
console_cmd)
except exception.ConsoleError:
with excutils.save_and_reraise_exception():
utils.unlink_without_raise(path)
ironic_utils.unlink_without_raise(path)
def stop_console(self, task):
"""Stop the remote console session for the node.
@ -617,7 +618,7 @@ class NativeIPMIShellinaboxConsole(base.ConsoleInterface):
console_utils.stop_shellinabox_console(task.node.uuid)
finally:
password_file = _console_pwfile_path(task.node.uuid)
utils.unlink_without_raise(password_file)
ironic_utils.unlink_without_raise(password_file)
def get_console(self, task):
"""Get the type and connection information about the console.

View File

@ -36,6 +36,7 @@ import subprocess
import tempfile
import time
from ironic_lib import utils as ironic_utils
from oslo_concurrency import processutils
from oslo_config import cfg
from oslo_log import log as logging
@ -1126,7 +1127,7 @@ class IPMIShellinaboxConsole(base.ConsoleInterface):
ipmi_cmd)
except (exception.ConsoleError, exception.ConsoleSubprocessFailed):
with excutils.save_and_reraise_exception():
utils.unlink_without_raise(path)
ironic_utils.unlink_without_raise(path)
def stop_console(self, task):
"""Stop the remote console session for the node.
@ -1137,7 +1138,7 @@ class IPMIShellinaboxConsole(base.ConsoleInterface):
try:
console_utils.stop_shellinabox_console(task.node.uuid)
finally:
utils.unlink_without_raise(
ironic_utils.unlink_without_raise(
_console_pwfile_path(task.node.uuid))
def get_console(self, task):

View File

@ -20,6 +20,7 @@ import os
import shutil
import tempfile
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import importutils
@ -32,7 +33,6 @@ from ironic.common.i18n import _LE
from ironic.common.i18n import _LI
from ironic.common import images
from ironic.common import states
from ironic.common import utils
from ironic.conductor import utils as manager_utils
from ironic.drivers import base
from ironic.drivers.modules import deploy_utils
@ -421,7 +421,7 @@ def _remove_share_file(share_filename):
"""
share_fullpathname = os.path.join(
CONF.irmc.remote_image_share_name, share_filename)
utils.unlink_without_raise(share_fullpathname)
ironic_utils.unlink_without_raise(share_fullpathname)
def _attach_virtual_cd(node, bootable_iso_filename):

View File

@ -16,6 +16,7 @@
import os
from ironic_lib import disk_utils
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import fileutils
@ -281,7 +282,7 @@ def destroy_images(node_uuid):
:param node_uuid: the uuid of the ironic node.
"""
utils.unlink_without_raise(_get_image_file_path(node_uuid))
ironic_utils.unlink_without_raise(_get_image_file_path(node_uuid))
utils.rmtree_without_raise(_get_image_dir_path(node_uuid))
InstanceImageCache().clean_up()

View File

@ -18,6 +18,7 @@ PXE Boot Interface
import os
import shutil
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import fileutils
@ -33,7 +34,6 @@ from ironic.common import image_service as service
from ironic.common import paths
from ironic.common import pxe_utils
from ironic.common import states
from ironic.common import utils
from ironic.drivers import base
from ironic.drivers.modules import agent
from ironic.drivers.modules import deploy_utils
@ -360,7 +360,7 @@ def _clean_up_pxe_env(task, images_info):
"""
for label in images_info:
path = images_info[label][1]
utils.unlink_without_raise(path)
ironic_utils.unlink_without_raise(path)
pxe_utils.clean_up_pxe_config(task)
TFTPImageCache().clean_up()

View File

@ -19,6 +19,7 @@ import os
import shutil
from ironic_lib import disk_utils
from ironic_lib import utils as ironic_utils
import mock
from oslo_concurrency import processutils
from oslo_config import cfg
@ -284,10 +285,10 @@ class FsImageTestCase(base.TestCase):
@mock.patch.object(images, '_create_root_fs', autospec=True)
@mock.patch.object(utils, 'tempdir', autospec=True)
@mock.patch.object(utils, 'write_to_file', autospec=True)
@mock.patch.object(utils, 'dd', autospec=True)
@mock.patch.object(ironic_utils, 'dd', autospec=True)
@mock.patch.object(utils, 'umount', autospec=True)
@mock.patch.object(utils, 'mount', autospec=True)
@mock.patch.object(utils, 'mkfs', autospec=True)
@mock.patch.object(ironic_utils, 'mkfs', autospec=True)
def test_create_vfat_image(
self, mkfs_mock, mount_mock, umount_mock, dd_mock, write_mock,
tempdir_mock, create_root_fs_mock):
@ -319,10 +320,10 @@ class FsImageTestCase(base.TestCase):
@mock.patch.object(images, '_create_root_fs', autospec=True)
@mock.patch.object(utils, 'tempdir', autospec=True)
@mock.patch.object(utils, 'dd', autospec=True)
@mock.patch.object(ironic_utils, 'dd', autospec=True)
@mock.patch.object(utils, 'umount', autospec=True)
@mock.patch.object(utils, 'mount', autospec=True)
@mock.patch.object(utils, 'mkfs', autospec=True)
@mock.patch.object(ironic_utils, 'mkfs', autospec=True)
def test_create_vfat_image_always_umount(
self, mkfs_mock, mount_mock, umount_mock, dd_mock,
tempdir_mock, create_root_fs_mock):
@ -338,7 +339,7 @@ class FsImageTestCase(base.TestCase):
umount_mock.assert_called_once_with('tempdir')
@mock.patch.object(utils, 'dd', autospec=True)
@mock.patch.object(ironic_utils, 'dd', autospec=True)
def test_create_vfat_image_dd_fails(self, dd_mock):
dd_mock.side_effect = processutils.ProcessExecutionError
@ -346,8 +347,8 @@ class FsImageTestCase(base.TestCase):
images.create_vfat_image, 'tgt_file')
@mock.patch.object(utils, 'tempdir', autospec=True)
@mock.patch.object(utils, 'dd', autospec=True)
@mock.patch.object(utils, 'mkfs', autospec=True)
@mock.patch.object(ironic_utils, 'dd', autospec=True)
@mock.patch.object(ironic_utils, 'mkfs', autospec=True)
def test_create_vfat_image_mkfs_fails(self, mkfs_mock, dd_mock,
tempdir_mock):
@ -361,10 +362,10 @@ class FsImageTestCase(base.TestCase):
@mock.patch.object(images, '_create_root_fs', autospec=True)
@mock.patch.object(utils, 'tempdir', autospec=True)
@mock.patch.object(utils, 'dd', autospec=True)
@mock.patch.object(ironic_utils, 'dd', autospec=True)
@mock.patch.object(utils, 'umount', autospec=True)
@mock.patch.object(utils, 'mount', autospec=True)
@mock.patch.object(utils, 'mkfs', autospec=True)
@mock.patch.object(ironic_utils, 'mkfs', autospec=True)
def test_create_vfat_image_umount_fails(
self, mkfs_mock, mount_mock, umount_mock, dd_mock,
tempdir_mock, create_root_fs_mock):

View File

@ -184,7 +184,7 @@ class TestPXEUtils(db_base.DbTestCase):
self.assertEqual(six.text_type(expected_template), rendered_template)
@mock.patch('ironic.common.utils.create_link_without_raise', autospec=True)
@mock.patch('ironic.common.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic.drivers.utils.get_node_mac_addresses', autospec=True)
def test__write_mac_pxe_configs(self, get_macs_mock, unlink_mock,
create_link_mock):
@ -210,7 +210,7 @@ class TestPXEUtils(db_base.DbTestCase):
create_link_mock.assert_has_calls(create_link_calls)
@mock.patch('ironic.common.utils.create_link_without_raise', autospec=True)
@mock.patch('ironic.common.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic.drivers.utils.get_node_mac_addresses', autospec=True)
def test__write_mac_ipxe_configs(self, get_macs_mock, unlink_mock,
create_link_mock):
@ -243,7 +243,7 @@ class TestPXEUtils(db_base.DbTestCase):
create_link_mock.assert_has_calls(create_link_calls)
@mock.patch('ironic.common.utils.create_link_without_raise', autospec=True)
@mock.patch('ironic.common.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic.common.dhcp_factory.DHCPFactory.provider',
autospec=True)
def test__link_ip_address_pxe_configs(self, provider_mock, unlink_mock,
@ -372,7 +372,7 @@ class TestPXEUtils(db_base.DbTestCase):
self.ipxe_options_uefi)
@mock.patch('ironic.common.utils.rmtree_without_raise', autospec=True)
@mock.patch('ironic.common.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
def test_clean_up_pxe_config(self, unlink_mock, rmtree_mock):
address = "aa:aa:aa:aa:aa:aa"
object_utils.create_test_port(self.context, node_id=self.node.id,
@ -538,7 +538,7 @@ class TestPXEUtils(db_base.DbTestCase):
self._dhcp_options_for_instance_ipxe(task, boot_file)
@mock.patch('ironic.common.utils.rmtree_without_raise', autospec=True)
@mock.patch('ironic.common.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic.common.dhcp_factory.DHCPFactory.provider')
def test_clean_up_pxe_config_uefi(self, provider_mock, unlink_mock,
rmtree_mock):
@ -563,7 +563,7 @@ class TestPXEUtils(db_base.DbTestCase):
os.path.join(CONF.pxe.tftp_root, self.node.uuid))
@mock.patch('ironic.common.utils.rmtree_without_raise')
@mock.patch('ironic.common.utils.unlink_without_raise')
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic.common.dhcp_factory.DHCPFactory.provider')
def test_clean_up_pxe_config_uefi_instance_info(self,
provider_mock, unlink_mock,
@ -588,7 +588,7 @@ class TestPXEUtils(db_base.DbTestCase):
os.path.join(CONF.pxe.tftp_root, self.node.uuid))
@mock.patch('ironic.common.utils.rmtree_without_raise', autospec=True)
@mock.patch('ironic.common.utils.unlink_without_raise', autospec=True)
@mock.patch('ironic_lib.utils.unlink_without_raise', autospec=True)
def test_clean_up_ipxe_config_uefi(self, unlink_mock, rmtree_mock):
self.config(ipxe_enabled=True, group='pxe')
address = "aa:aa:aa:aa:aa:aa"

View File

@ -43,18 +43,6 @@ class BareMetalUtilsTestCase(base.TestCase):
s = utils.random_alnum(100)
self.assertEqual(100, len(s))
def test_unlink(self):
with mock.patch.object(os, "unlink", autospec=True) as unlink_mock:
unlink_mock.return_value = None
utils.unlink_without_raise("/fake/path")
unlink_mock.assert_called_once_with("/fake/path")
def test_unlink_ENOENT(self):
with mock.patch.object(os, "unlink", autospec=True) as unlink_mock:
unlink_mock.side_effect = OSError(errno.ENOENT)
utils.unlink_without_raise("/fake/path")
unlink_mock.assert_called_once_with("/fake/path")
def test_create_link(self):
with mock.patch.object(os, "symlink", autospec=True) as symlink_mock:
symlink_mock.return_value = None
@ -472,57 +460,6 @@ class GenericUtilsTestCase(base.TestCase):
self.assertFalse(utils.is_valid_no_proxy(proxy9))
class MkfsTestCase(base.TestCase):
@mock.patch.object(utils, 'execute', autospec=True)
def test_mkfs(self, execute_mock):
utils.mkfs('ext4', '/my/block/dev')
utils.mkfs('msdos', '/my/msdos/block/dev')
utils.mkfs('swap', '/my/swap/block/dev')
expected = [mock.call('mkfs', '-t', 'ext4', '-F', '/my/block/dev',
run_as_root=True,
use_standard_locale=True),
mock.call('mkfs', '-t', 'msdos', '/my/msdos/block/dev',
run_as_root=True,
use_standard_locale=True),
mock.call('mkswap', '/my/swap/block/dev',
run_as_root=True,
use_standard_locale=True)]
self.assertEqual(expected, execute_mock.call_args_list)
@mock.patch.object(utils, 'execute', autospec=True)
def test_mkfs_with_label(self, execute_mock):
utils.mkfs('ext4', '/my/block/dev', 'ext4-vol')
utils.mkfs('msdos', '/my/msdos/block/dev', 'msdos-vol')
utils.mkfs('swap', '/my/swap/block/dev', 'swap-vol')
expected = [mock.call('mkfs', '-t', 'ext4', '-F', '-L', 'ext4-vol',
'/my/block/dev', run_as_root=True,
use_standard_locale=True),
mock.call('mkfs', '-t', 'msdos', '-n', 'msdos-vol',
'/my/msdos/block/dev', run_as_root=True,
use_standard_locale=True),
mock.call('mkswap', '-L', 'swap-vol',
'/my/swap/block/dev', run_as_root=True,
use_standard_locale=True)]
self.assertEqual(expected, execute_mock.call_args_list)
@mock.patch.object(utils, 'execute', autospec=True)
def test_mkfs_with_unsupported_fs(self, execute_mock):
execute_mock.side_effect = iter([processutils.ProcessExecutionError(
stderr=os.strerror(errno.ENOENT))])
self.assertRaises(exception.FileSystemNotSupported,
utils.mkfs, 'foo', '/my/block/dev')
@mock.patch.object(utils, 'execute', autospec=True)
def test_mkfs_with_unexpected_error(self, execute_mock):
execute_mock.side_effect = iter([processutils.ProcessExecutionError(
stderr='fake')])
self.assertRaises(processutils.ProcessExecutionError, utils.mkfs,
'ext4', '/my/block/dev', 'ext4-vol')
class TempFilesTestCase(base.TestCase):
def test_tempdir(self):
@ -652,17 +589,6 @@ class TempFilesTestCase(base.TestCase):
mock_stat.assert_called_once_with("/fake/path")
class IsHttpUrlTestCase(base.TestCase):
def test_is_http_url(self):
self.assertTrue(utils.is_http_url('http://127.0.0.1'))
self.assertTrue(utils.is_http_url('https://127.0.0.1'))
self.assertTrue(utils.is_http_url('HTTP://127.1.2.3'))
self.assertTrue(utils.is_http_url('HTTPS://127.3.2.1'))
self.assertFalse(utils.is_http_url('Zm9vYmFy'))
self.assertFalse(utils.is_http_url('11111111'))
class GetUpdatedCapabilitiesTestCase(base.TestCase):
def test_get_updated_capabilities(self):

View File

@ -17,6 +17,7 @@
import tempfile
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
import six
@ -27,7 +28,6 @@ from ironic.common.glance_service import service_utils
from ironic.common import image_service
from ironic.common import images
from ironic.common import swift
from ironic.common import utils
from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic.drivers.modules import deploy_utils
@ -395,7 +395,7 @@ class IloBootPrivateMethodsTestCase(db_base.DbTestCase):
'boot-object')
self.assertTrue(log_mock.called)
@mock.patch.object(utils, 'unlink_without_raise', spec_set=True,
@mock.patch.object(ironic_utils, 'unlink_without_raise', spec_set=True,
autospec=True)
def test__clean_up_boot_iso_for_instance_on_webserver(self, unlink_mock):

View File

@ -19,6 +19,7 @@ import os
import shutil
import tempfile
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
from oslo_utils import importutils
@ -28,7 +29,6 @@ from ironic.common import boot_devices
from ironic.common import exception
from ironic.common import images
from ironic.common import swift
from ironic.common import utils
from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic.drivers.modules import deploy_utils
@ -718,7 +718,7 @@ class IloCommonMethodsTestCase(db_base.DbTestCase):
copy_mock.assert_called_once_with(source, image_path)
self.assertFalse(chmod_mock.called)
@mock.patch.object(utils, 'unlink_without_raise', spec_set=True,
@mock.patch.object(ironic_utils, 'unlink_without_raise', spec_set=True,
autospec=True)
@mock.patch.object(ilo_common, '_get_floppy_image_name', spec_set=True,
autospec=True)

View File

@ -20,6 +20,7 @@ import os
import shutil
import tempfile
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
import six
@ -30,7 +31,6 @@ from ironic.common.glance_service import service_utils
from ironic.common.i18n import _
from ironic.common import images
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic.drivers.modules import deploy_utils
@ -620,7 +620,7 @@ class IRMCDeployPrivateMethodsTestCase(db_base.DbTestCase):
[mock.call(_get_floppy_image_name_mock(task.node)),
mock.call(_get_deploy_iso_name_mock(task.node))])
@mock.patch.object(utils, 'unlink_without_raise', spec_set=True,
@mock.patch.object(ironic_utils, 'unlink_without_raise', spec_set=True,
autospec=True)
def test__remove_share_file(self, unlink_without_raise_mock):
CONF.irmc.remote_image_share_name = '/'

View File

@ -26,12 +26,12 @@ import string
import subprocess
import tempfile
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
from oslo_utils import netutils
from ironic.common import exception
from ironic.common import utils
from ironic.drivers.modules import console_utils
from ironic.drivers.modules import ipmitool as ipmi
from ironic.tests.unit.db import base as db_base
@ -106,7 +106,7 @@ class ConsoleUtilsTestCase(db_base.DbTestCase):
def test__get_console_pid(self, mock_exec):
tmp_file_handle = tempfile.NamedTemporaryFile()
tmp_file = tmp_file_handle.name
self.addCleanup(utils.unlink_without_raise, tmp_file)
self.addCleanup(ironic_utils.unlink_without_raise, tmp_file)
with open(tmp_file, "w") as f:
f.write("12345\n")
@ -121,7 +121,7 @@ class ConsoleUtilsTestCase(db_base.DbTestCase):
def test__get_console_pid_not_a_num(self, mock_exec):
tmp_file_handle = tempfile.NamedTemporaryFile()
tmp_file = tmp_file_handle.name
self.addCleanup(utils.unlink_without_raise, tmp_file)
self.addCleanup(ironic_utils.unlink_without_raise, tmp_file)
with open(tmp_file, "w") as f:
f.write("Hello World\n")
@ -137,7 +137,7 @@ class ConsoleUtilsTestCase(db_base.DbTestCase):
console_utils._get_console_pid,
self.info['uuid'])
@mock.patch.object(utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(os, 'kill', autospec=True)
@mock.patch.object(console_utils, '_get_console_pid', autospec=True)
def test__stop_console(self, mock_pid, mock_kill, mock_unlink):
@ -151,7 +151,7 @@ class ConsoleUtilsTestCase(db_base.DbTestCase):
signal.SIGTERM)
mock_unlink.assert_called_once_with(pid_file)
@mock.patch.object(utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(os, 'kill', autospec=True)
@mock.patch.object(console_utils, '_get_console_pid', autospec=True)
def test__stop_console_nopid(self, mock_pid, mock_kill, mock_unlink):
@ -167,7 +167,7 @@ class ConsoleUtilsTestCase(db_base.DbTestCase):
self.assertFalse(mock_kill.called)
mock_unlink.assert_called_once_with(pid_file)
@mock.patch.object(utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(os, 'kill', autospec=True)
@mock.patch.object(console_utils, '_get_console_pid', autospec=True)
def test__stop_console_shellinabox_not_running(self, mock_pid,
@ -183,7 +183,7 @@ class ConsoleUtilsTestCase(db_base.DbTestCase):
signal.SIGTERM)
mock_unlink.assert_called_once_with(pid_file)
@mock.patch.object(utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(os, 'kill', autospec=True)
@mock.patch.object(console_utils, '_get_console_pid', autospec=True)
def test__stop_console_exception(self, mock_pid, mock_kill, mock_unlink):

View File

@ -20,7 +20,7 @@ import time
import types
from ironic_lib import disk_utils
from ironic_lib import utils as lib_utils
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
from oslo_utils import uuidutils
@ -784,7 +784,7 @@ class PhysicalWorkTestCase(tests_base.TestCase):
self.assertFalse(disk_utils_mock.get_dev_block_size.called)
self.assertEqual(root_uuid, uuid_dict_returned['root uuid'])
@mock.patch.object(lib_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
def test_deploy_partition_image_with_configdrive(self, mock_unlink):
"""Check loosely all functions are called with right args."""
address = '127.0.0.1'

View File

@ -19,6 +19,7 @@ import os
import tempfile
from ironic_lib import disk_utils
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
from oslo_utils import fileutils
@ -386,7 +387,7 @@ class IscsiDeployMethodsTestCase(db_base.DbTestCase):
'disk'),
image_path)
@mock.patch.object(utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(utils, 'rmtree_without_raise', autospec=True)
@mock.patch.object(iscsi_deploy, 'InstanceImageCache', autospec=True)
def test_destroy_images(self, mock_cache, mock_rmtree, mock_unlink):

View File

@ -19,6 +19,7 @@ import os
import shutil
import tempfile
from ironic_lib import utils as ironic_utils
import mock
from oslo_config import cfg
from oslo_serialization import jsonutils as json
@ -30,7 +31,6 @@ from ironic.common import exception
from ironic.common.glance_service import base_image_service
from ironic.common import pxe_utils
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
from ironic.drivers.modules import deploy_utils
from ironic.drivers.modules import pxe
@ -486,7 +486,7 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase):
self.assertFalse(mock_log.called)
@mock.patch.object(utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(ironic_utils, 'unlink_without_raise', autospec=True)
@mock.patch.object(pxe_utils, 'clean_up_pxe_config', autospec=True)
@mock.patch.object(pxe, 'TFTPImageCache', autospec=True)
class CleanUpPxeEnvTestCase(db_base.DbTestCase):