Hi Ruby:

I couldn't use your whole changeset since it introduced a different issue.  With your patch, I was seeing the
following error and it never reached the code creating squashfs.img as a directory.  So I removed the patch
and only applied the pxe_util.py changes in cache_ramdisk_kernel() and I've made further progress. 

| last_error | Failed to prepare to deploy: Cannot validate driver deploy. Some parameters were missing in node's instance_info. Missing are: ['root_gb'] |

Is this root_gb a new requirement?  More background: At the moment, I don't have baremetal devices and I'm starting my work by
using VMs bifrost created for me.  Also I'm using the xena branch of bifrost/ironic.

Carol

On Mon, Feb 7, 2022 at 11:56 AM Ruby Loo <opensrloo@gmail.com> wrote:
Hi Carol,

Thanks for reporting this! It is a bug :-( The fix is in https://review.opendev.org/c/openstack/ironic/+/827924.

--ruby

On Fri, Feb 4, 2022 at 11:44 AM Carol Bouchard <cbouchar@redhat.com> wrote:
Ironic folks:

I'm trying to spawn a RHEL7 image using a kickstart file and having issues with stage2 file.
First I used bifrost to initially setup a couple of VMs.  (There is no openstack/glance).
I'm now using one of those VMs to boot up with RHEL7. I changed the VM config
with the following:

| deploy_interface       | anaconda

ironic.conf changes I made are as follows:
enabled_deploy_interfaces = direct,ramdisk,anaconda
[anaconda]
default_ks_template = file:///etc/ironic/ks.cfg.template


The error I'm getting is as follows:
 $ baremetal node show testvm1 --field last_error
| last_error | Deploy step deploy.deploy failed with IsADirectoryError: [Errno 21] Is a directory: '/httpboot/4e41df61-84b1-5856-bfb6-6b5f2cd3dd11/LiveOS/squashfs.img'.
Tail end of traceback is as follows:
 ironic-conductor[]:   ERROR ironic.conductor.utils   File "/opt/stack/bifrost/lib64/python3.9/site-packages/ironic/common/pxe_utils.py", line 1245, in cache_ramdisk_kernel
 ironic-conductor[]:   ERROR ironic.conductor.utils     deploy_utils.fetch_images(ctx, TFTPImageCache(), list(t_pxe_info.values()),
 ironic-conductor[]:   ERROR ironic.conductor.utils   File "/opt/stack/bifrost/lib64/python3.9/site-packages/ironic/drivers/modules/deploy_utils.py", line 240, in fetch_images
 ironic-conductor[]:   ERROR ironic.conductor.utils     cache.fetch_image(href, path, ctx=ctx, force_raw=force_raw)
 ironic-conductor[]:   ERROR ironic.conductor.utils   File "/opt/stack/bifrost/lib64/python3.9/site-packages/ironic/drivers/modules/image_cache.py", line 120, in fetch_image
 ironic-conductor[]:   ERROR ironic.conductor.utils     dest_up_to_date = _delete_dest_path_if_stale(master_path,
 ironic-conductor[]:   ERROR ironic.conductor.utils   File "/opt/stack/bifrost/lib64/python3.9/site-packages/ironic/drivers/modules/image_cache.py", line 460, in _delete_dest_path_if_stale
 ironic-conductor[]:   ERROR ironic.conductor.utils     os.unlink(dest_path)
 ironic-conductor[]:   ERROR ironic.conductor.utils IsADirectoryError: [Errno 21] Is a directory: '/httpboot/4e41df61-84b1-5856-bfb6-6b5f2cd3dd11/LiveOS/squashfs.img'


Please advise.

Carol