So it turns out as highlighted by looking at bug 2054722
that you can end up creating nodes with "fake" hardware nodes
in the default config we test in the gate, which end up with
"fake" as the deploy_interface, but if you try to run the
same test against a production configured ironic deployment,
it fails because it likely ends up with a default of "agent"
as the deploy_interface.
Unfortunately, a review of test logs also reveals that the
same basic problem exists with the network_interface field
*as well*, where tests were written expecting the default
to be a fake or noop interface out of the box.
Note: This depends-on is to be removed before mering, it is
enable additional issues to be identified.
Change-Id: Id0051d9b39bc0f46e3afee5bbfa8a2062114df80
The idea here came out of the 2024.1 PTG held in ?October? 2023,
with the goal of being able to exercise testing of boot interfaces
as a group in a single job, instead of spreading it out amongst
CI jobs with different scenarios.
That doesn't mean different scenarios are wrong, but as we add more
boot interfaces as part of supporting HTTPBoot, we cannot double
our scenarios.
In theory, the hope is we should be able to consolidate down several
secenario jobs into just one test running these jobs.
Change-Id: Id41ee40c36624387216b2cfc1501f01a3217b2af
Validates:
- Unfiltered requests get sharded nodes
- Filtering by a single shard
- Filtering by >1 shards
- Filtering by sharded nodes
- Filtering by unsharded nodes
Change-Id: Id37e8d6db098bb8decae87b6184bab4482321316
Back after we added the new policies, at some point we should
have changed the default state for the tempest tests so they
assume/default to the understanding that Ironic is enforcing
scope and to use the appropriate client when launching tests,
because Ironic restructed it's access model to better align
with the overall community and further enable infrastructure
operators.
Closes-Bug: 2051137
Change-Id: I564af48698d20a150699933bf7e2e829b104ab04
Creating test to help facilitate the fix of bug 2032377 and
ultimately help ensure we have a backwards compatible fix.
The scenario:
* Creates a shiny new network without dhcp, and adds a router.
* Sets that network as the provisioning network for the node.
* Creates a port on that network, assigns that port as the VIF.
* Creates a configuration drive network_data.json file payload
* Triggers deployment, utilizing the aformentioned network_data
payload and configuration drive.
* Once deployment has complete, attempts to ping the remote host.
* Once pingable, and this is configurable, it will then attempt
to rebuild the remote host, basically forcing the condition
covered in bug #2032377.
* Rebuild is completed, and the host is attempted to be pinged,
again.
To facilitate this, three configuration options have been added.
Two are external network settings. Because there is no way in
a devstack configuration of neutron to advertise the next hop
router, we have to have a pre-assigned/configured IP on the
external network we can attach a router to. We also need to know
the external network ID.
Then there is basically a option flag if we wish to exercise the
pattern for bug 2032377. Ideally, this would be always, but with
the complexity and fact a non-stock IPA image is required, one
sort of needs to know and then configure as appropriate.
Change-Id: Ic848b8051e4d863f30d47c833d334afc879e4f20
Client vif_attach only return resp - not body.
On a system without policies enabled the test fail with
too maby values to unpack - which is confusing ...
Change-Id: I36bce09c9ffe31364d738809adabe65a3af8443f
Also disable test_reader_cannot_ipa_heartbeat,
will follow up.
Depends-On: https://review.opendev.org/882597
Change-Id: I966ae89333b6ad553b6f1398d61bc7d8f8b72c74
Fix the exceptions got from test_reader_cannot_get_indicator_state
and test_reader_cannot_ipa_heartbeat.
Also get_indicator_state takes only 2 arguments since the get_one()
function takes only 2 positional arguments besides self, node_uuid
and indicator.
Change-Id: I4b5399562ffddb6e603f457aef1423f1fe7ba93e
Enforce/test the state of each policy's engagement for
baremetal nodes, project reader and system reader.
The tests use a try clause, catches the exception and
checks the response status code match what is expected.
Change-Id: I0b5f8eb881462f5d78f65bd37fbb8b296d9880eb
I have a feeling that class-level logic involving CONF does not work
because CONF is populated later.
Change-Id: I65c65faf55069a4c9d668e0e0ba06ffc8b6b43ed
Paramiko, by default, attempts agent based authentication before
ever attempting password based authentication. But this doesn't
work so well if the environment has an agent running or thinks it
has an agent running, because it breaks the rescue test.
Instead, explicitly tell the tempest and thus paramiko to *not* use
the ssh-agent functionality.
Depends-On: https://review.opendev.org/c/openstack/tempest/+/872566
Change-Id: Ia2870579c7398d359b8d360fe7d1e42abb79b299
While investigating failures where four orphaned nodes
were observed after running the tempest plugin against an
operating environment, it was discovered that each node
was created by the TestProtectedNode class. A review of the
logs indicated that tearDown() was being called, but
resource_cleanup was never being called which houses the
unified resource cleanup. Upon reviewing the pattern
in tempest itself, generally resource_cleanup is used
instead of teardown, however with our class structure,
that doesn't seem to work, so instead we just
explicitly call to unset the protected state for each
node.
We should now be consistent, and the four TestProtectedNode
tests should no longer orphan four nodes when run.
Also added some additional logging to help spotting cases
where orphaned nodes might be occuring, in order to aid
in troubleshooting when reviewing Tempest logs.
Change-Id: I4dc6140f1dbcf1bb891fa522523957c1d8002df4
Make inspection timeout configurable to fix iDRAC driver out of band
inspection intermittent timeout issue for idrac-wsman and idrac-redfish
inspect interface.
For idrac, at least 20 seconds is recommended to be set for inspect
timeout for successful execution of OOB inspection.
Change-Id: Ibdf78d0669d0afb43d32bb71e7710145ffb7c05e
Provides a test and substrate changes to support integration
testing of the anaconda deployment interface from a "standalone"
perspect.
This is present in two forms, a "with stage2 ramdisk" and
"without stage2" test which is enabled, or not depening
on the underlying configuration.
This test also has two modes of operation, the first and
default being primarily a "did anaconda start and can I
ping the machine?" test mode. The second attempts to wait
for the node to reach an active state, although it is not
the default because an anaconda deployment, depending on
mode of use, even with a default configuration can take
a substantial amount of itme. The anaconda deployment
interface is also modeled for highly tuned configurations,
so the prime aspect is "does it boot? does anaconda start?"
Also:
* Removes the explicit requirement that test classes explicitly
declare support for wholedisk_image or not.
Change-Id: I42933d26268b55737fa2508265643c1cd14651ea
This adds test for sync boot mode which changes boot mode
from 'bios' to 'uefi' and vice versa using iDRAC redfish
Change-Id: I43241204e71ab7e0d8c8929e216ce9473c3c2e1e
This adds tests for both the WS-Man and Redfish implementations
of the iDRAC RAID cleaning steps. In this test, storage inventory
input for RAID cleaning is provided by user in JSON format.
The storage inventory is validated against schema once at the
beginning of RAID tests execution and each test checks
test specific requirements before execution.
Change-Id: I183fdc47dbb7a12b2ffb4f8453753dada2d8f5fe
Follow-up to I89839ecb0e08555ddcfee0289350fac1923b3958 to
use a cleanup step so the maintenance state is rolled back
regardless.
Change-Id: I52a5c36d8ca1965d866409fee4590cc1d151f238
As part of the protected from deletion test, we set a node into maintenance
state which allows override actions to be performed for node deletions.
The test is verifying the removal of the node is prevented. This fails upon
the TearDown class execution, resulting in a silent hidden failure which
cannot complete teardown because you cannot unprovision, as is in the
teardown step, a node in maintenance state.
Explicitly unset maintenance, and the world will be happy!
Change-Id: I89839ecb0e08555ddcfee0289350fac1923b3958
This adds deploy tests using iPXE and PXE boot with
agent deploy (direct) for the idrac (idrac-redfish and idrac-wsman
interfaces), redfish and ipmi drivers.
Change-Id: Icd65251f1cc9680cfc3c1a1e8e1603681546d3cd
For standalone test cases, where delete_node is set as False,
the instance_uuid remains attached with the node even after test
case execution.
This affects the serial execution of tempest test cases as
instance_uuid is already associated to node which results in
failure of consecutive test cases.
This dettaches instance_uuid of a node while cleanup.
Change-Id: I854c533ef4f76f3abb589dbcc9c39358ebedc194
This adds test cases for the two out-of-band inspect interfaces
supported by the idrac hardware type, idrac-redfish and idrac-wsman.
Change-Id: I40240888aa1fa7b9ea860189141199ca9672e30b
This adds tests for both the WS-Man and Redfish implementations of the
iDRAC management cleaning steps.
Change-Id: I5dc41782fb905f0d88ff0defb2c950e9ca3d0faa