Generally, print should not be used for unit tests, it may pollute
the output stream. Right now, our internal build system is facing
BlockingIOError: [Errno 11] write could not complete without blocking
on prints. Especially ACL tests seem to be a big offender because they
are vary numerous and each may print several times. Many prints in other
tests are cryptic and probably just leftover from debugging.
I only leave the API unit tests where the output is arguably useful.
But I reduce it to one print per call since the input is already known.
Change-Id: Ic5aaf9624f86b39609e2db6157c98cf8e35712fc
Ubuntu focal was in testing runtime as best effort
testing in 2023.1 cycle. In 2023.2, we do not need to
test the focal as such. Removing its testing to more
focus on making Jammy testing more stable.
[0] https://review.opendev.org/c/openstack/tempest/+/884952
Change-Id: Ia3a9bfb6287fd283c3eeb49b43d2c0d12420596d
Two issues have occcured:
1) Zuul has decided some syntax is deprecated and generates an error.
The exlcusionary nature of the syntax is just not supported by RE2
which is the new requirement, so explicitly matching "^master$"
as opposed to "not stable branches".
2) Marking the snmp job as non-voting, the root issue appears to be ipxe
or the VMs, unknown as of yet.
Change-Id: I68aa95eb1ed80a0fde1c29d708ebd606393481aa
Dbapi method _reserve_node_place_lock is a bit of a special
method. It has both a decorator to retry sqlite "database is locked"
issues, and an outer synchronized process fair lock
(from oslo.concurrency.lockutils), which ensures only *one* thread
is working on locks at a time.
Thing is, we can build contention when a stack of heartbeats
come in, because they are forced to execute in serialized fashion.
And whil investigating some metal3 logs, we could see some lock
interactions are basically instant, and when things begin to
get backed up, we start seeing 10+ second gaps where we are
trying to get ahold of the database, and can't lock the node.
And looking at the code for the method, I realized we were *always*
re-querying the node, but never returning it after updating the node.
Apparently, so we can just log *if* there was an issue.
Instead, just consult the result set and then re-query if we must
to determine *who* holds the lock, we now only do so *if* we are
operating without SQLite, because if we are then we can safely
assume the lock came from another thread.
Change-Id: Ie606439670be21cf267eb541ce864711d2097207
Adds service steps on a variety of internal interfaces,
and begins to tie documentation together to provide clarity
on the use and purpose of service steps.
Change-Id: Ifd7241f06648c8d73c1b97fcf08673496f049f45
So it seems we can have weirdness here which
can get lost in the mix because heartbeat operations
get called with spawn_after on the task, and without
an error handler. The net effect seems to be we can
eat errors, which maybe we should log.
Logs a warning now and returns to the caller which will
exit the task.
Change-Id: I8d052e5d26396737bc7d807cbafdc317cfd2f21f
Julia, who has been looking at Metal3 container logs a lot, is tired of
not being able to easily figure out when on the timeline of the git repo
that the container's source code was running from. So instead of guessing
and having to figure out based upon behavior/logs, just log the version
the software believes itself to be using the existing version info,
similar to how we do it with IPA.
Change-Id: I3c76ddfb89b92d3d4bc29b7ccab4362604775568
Ages ago we supported pxelinux. Now, not really since it is long EOL.
And while troubleshooting bug # 2033430, we discovered we had option
210 in the DHCP payload from the server, which ended up being the
folder base path for a tftp client to self reference the structure,
but only with OVN.
Further troubleshooting with the neutron-dhcp-agent and dnsmasq
revealed we never actaully really sent that option to clients.
In other words, meaning it was always redundant. Since excess
information could be part of the problem with grub, we're removing
it.
Change-Id: Iaa2f174b6082fadcab6635ca874fc5fae2fb4842
Eventlet expects to have green versions of every module loaded, including OS. The reasons we originally did not patch os are lost
to time, but there have been many releases of eventlet since, and we should return to a reasonable baseline.
Change-Id: Ia4113124b415bd647e3c984e587828eb5b612eee
Debian bookworm is where our unit tests run for py3.11. This change
permits them to configure and run.
Change-Id: Ic51ca8df82552b9a8b6765cc0237f84e468e2fd8
Adds storage of the json-rpc port number to the conductor hostname
to enable rpc clients to understand which rpc servies they need to
connect to.
Depends-On: https://review.opendev.org/c/openstack/ironic-lib/+/879211
Change-Id: I6021152c83ab5025a9a9e6d8d24c64278c4c1053
Remove the $ in the condition so that we don't attept to
execute the output from ping (i.e PING - unknown command)
Change-Id: Ic90f7c93d9a7b86fbf3f2cdef46bc1b2bbea489d
While the prior sevice steps patch had a huge portion of the
needed code already due to copy-pasta, this change finishes
wiring in the ability for the agent to be launched for service
steps and heartbeat to occur, combined with support to retrieve
service steps from the running agent, ultimately to enable
operators to take a deployed node, and ask Ironic to make changes,
or my more favorite use case, go benchmark it for a while.
Also edits the service steps release note to remove the outstanding
issue, and makes some minor corrections in the code which was copied
but didn't quite have testing wired up yet.
Change-Id: Ibfe42037b520a76539234cf1a5e19afd335ce8a8
Introduce config to allow setting default ramdisks per-architecture.
The hierarchy of the parameters is:
Node config > config by architecture > general config
Change-Id: I95dfece3e8f7bcd3121ac808985cb61997877a51
Update version requirement of python-scciclient
to greater than or equal to 0.15.0.
Since this version 0.15.0, python-scciclient uses
pysnmp lextudio.
Change-Id: I736707027002578ab87577c94b5e6c45ba1c5f72
Adds inspection hooks in the agent inspect interface for processing
data received from the ramdisk at the /v1/continue_inspection
endpoint. The four default configuration hooks 'ramdisk-error',
'validate-interfaces', 'ports' and 'architecture' are added.
(The remaining inspection hooks will be added in further patches.)
Change-Id: I2cf1be465ba7a93fd66881b14972e960acd4dd4e
Story: #2010275