Traceback (most recent call last):
File "/opt/chainguard/openstack-nova-2025.2/bin/nova-api-wsgi", line 6, in <module>
from nova.api.openstack.compute.wsgi import init_application
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/nova/api/openstack/compute/__init__.py", line 21, in <module>
from nova.api.openstack.compute.routes import APIRouterV21 # noqa
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/nova/api/openstack/compute/routes.py", line 20, in <module>
from nova.api.openstack.compute import admin_actions
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/nova/api/openstack/compute/admin_actions.py", line 21, in <module>
from nova.compute import api as compute
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/nova/compute/api.py", line 54, in <module>
from nova import crypto
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/nova/crypto.py", line 48, in <module>
from nova.virt import block_device as driver_block_device
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/nova/virt/block_device.py", line 19, in <module>
from os_brick.initiator import utils as brick_utils
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/os_brick/initiator/utils.py", line 36, in <module>
ISCSI_SUPPORTS_MANUAL_SCAN = check_manual_scan()
^^^^^^^^^^^^^^^^^^^
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/os_brick/initiator/utils.py", line 30, in check_manual_scan
putils.execute('grep', '-F', 'node.session.scan', '/sbin/iscsiadm')
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/oslo_concurrency/processutils.py", line 354, in execute
obj = subprocess.Popen(cmd,
^^^^^^^^^^^^^^^^^^^^^
File "/opt/chainguard/openstack-nova-2025.2/lib/python3.12/site-packages/eventlet/green/subprocess.py", line 56, in __init__
subprocess_orig.Popen.__init__(self, args, 0, *argss, **kwds)
File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.12/subprocess.py", line 1955, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'grep'
Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.