@ -18,6 +18,7 @@ import shutil
import tempfile
import mock
from ironic_lib import utils as ilib_utils
from oslo_concurrency import processutils
from ironic_python_agent import errors
@ -356,15 +357,25 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n
self . fake_dir + ' /run ' ) ,
mock . call ( ' mount ' , ' -t ' , ' sysfs ' , ' none ' ,
self . fake_dir + ' /sys ' ) ,
mock . call ( ( ' chroot %s /bin/sh -c " mount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-install %s " ' %
( self . fake_dir , self . fake_dev ) ) , shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-mkconfig -o '
' /boot/grub/grub.cfg " ' % self . fake_dir ) ,
shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c " umount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ' umount ' , self . fake_dir + ' /dev ' ,
attempts = 3 , delay_on_retry = True ) ,
mock . call ( ' umount ' , self . fake_dir + ' /proc ' ,
@ -405,16 +416,26 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n
self . fake_dir + ' /run ' ) ,
mock . call ( ' mount ' , ' -t ' , ' sysfs ' , ' none ' ,
self . fake_dir + ' /sys ' ) ,
mock . call ( ( ' chroot %s /bin/sh -c " mount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-install %s " ' %
( self . fake_dir , self . fake_prep_boot_part ) ) ,
shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-mkconfig -o '
' /boot/grub/grub.cfg " ' % self . fake_dir ) ,
shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c " umount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ' umount ' , self . fake_dir + ' /dev ' ,
attempts = 3 , delay_on_retry = True ) ,
mock . call ( ' umount ' , self . fake_dir + ' /proc ' ,
@ -464,21 +485,32 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n
self . fake_dir + ' /sys ' ) ,
mock . call ( ' mount ' , self . fake_efi_system_part ,
self . fake_dir + ' /boot/efi ' ) ,
mock . call ( ( ' chroot %s /bin/sh -c " mount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-install %s " ' %
( self . fake_dir , self . fake_dev ) ) , shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-install %s --removable " ' %
( self . fake_dir , self . fake_dev ) ) , shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-mkconfig -o '
' /boot/grub/grub.cfg " ' % self . fake_dir ) ,
shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ' umount ' , self . fake_dir + ' /boot/efi ' ,
attempts = 3 , delay_on_retry = True ) ,
mock . call ( ( ' chroot %s /bin/sh -c " umount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ' umount ' , self . fake_dir + ' /dev ' ,
attempts = 3 , delay_on_retry = True ) ,
mock . call ( ' umount ' , self . fake_dir + ' /proc ' ,
@ -534,19 +566,26 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n
self . fake_dir + ' /sys ' ) ,
mock . call ( ' mount ' , self . fake_efi_system_part ,
self . fake_dir + ' /boot/efi ' ) ,
mock . call ( ( ' chroot %s /bin/sh -c " mount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-install %s " ' %
( self . fake_dir , self . fake_dev ) ) , shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-install %s --removable " ' %
( self . fake_dir , self . fake_dev ) ) , shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ( ' chroot %s /bin/sh -c '
' " grub-mkconfig -o '
' /boot/grub/grub.cfg " ' % self . fake_dir ) ,
shell = True ,
env_variables = { ' PATH ' : ' /sbin:/bin:/usr/sbin ' } ) ,
env_variables = { ' PATH ' :
' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ' umount ' , self . fake_dir + ' /boot/efi ' ,
attempts = 3 , delay_on_retry = True ) ]
mock_execute . assert_has_calls ( expected )
@ -564,6 +603,7 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n
mock_get_part_uuid . side_effect = [ self . fake_root_part ,
self . fake_efi_system_part ]
mock_is_md_device . side_effect = [ False , False ]
environ_mock . get . return_value = ' /sbin '
mock_md_get_raid_devices . return_value = { }
def mount_raise_func ( * args , * * kwargs ) :
@ -577,6 +617,10 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n
efi_system_part_uuid = self . fake_efi_system_part_uuid )
expected = [ mock . call ( ' mount ' , ' /dev/fake2 ' , self . fake_dir ) ,
mock . call ( ( ' chroot %s /bin/sh -c " umount -a -t vfat " ' %
( self . fake_dir ) ) , shell = True ,
env_variables = {
' PATH ' : ' /sbin:/bin:/usr/sbin:/sbin ' } ) ,
mock . call ( ' umount ' , self . fake_dir + ' /dev ' ,
attempts = 3 , delay_on_retry = True ) ,
mock . call ( ' umount ' , self . fake_dir + ' /proc ' ,