* Update ironic-tempest-plugin from branch 'master'
to c942d60b98b7104bd3aa502d999428f16c95d4ea
- Merge "Unprovision iso ramdisk boot from test"
- Unprovision iso ramdisk boot from test
The boot_iso ramdisk test unfortunately has been discovered to
orphan occupied "nodes" after the test has executed. This change
triggers the test to send a command to force the node to be
unprovisioned at the end of the test.
Closes-Bug: 2055469
Change-Id: Ib525fe099d5884f442cdc375c5a8d230710d20a4
* Update ironic-tempest-plugin from branch 'master'
to 505fa79fd10b7da3292fc20b7988e921b66a0063
- Merge "Delete the CUSTOM_RAID template after test has finished"
- Delete the CUSTOM_RAID template after test has finished
Previously, the tempest plugin would orphan a CUSTOM_RAID
deploy template in the ironic deployment by not removing it
after the test has been completed. This change adds a cleanup
to trigger the deletion of the template, so the test does not
fail upon a second re-execution against the environment.
Closes-Bug: 2055456
Change-Id: I21ea329feb48e56b7f2984f62cdbc41c1a0bd1d0
* Update ironic-tempest-plugin from branch 'master'
to 0eb9ae7445d6b6077d55c54ce9c4337e7d8ebc8a
- Leverage the remote microversion without requiring human config
Tempest plugins are... weird.
The challenge is to have a branchless utility which can be loaded
and help provide feedback if the remote service is correctly
responding as we would expect.
This works great in theory, until you have to either do some
sort of negative test, or plan in advance, or until you have
some sort of mixed state environment. This also weirdly
restraints testing against older versions on older branches,
requiring further care and feeding to keep things passing.
And the way issues like these are resolved, originally, was to
leverage manual human configuration. The problem is, that doesn't
always work and operationally becomes an increased burden.
So the logical path forward is for the plugin to automatically
skip specific tests *based upon* the remote offered API
microversion, much like many of the tests do if a driver or
running configuration does not exist.
This can be done because when we compose tests, we have a minimum
and maximum API version where we know the test is valid, and if
the remote endpoint is outside of that bound.
The result is now the plugin will query the remote endpoint and
collect the minimum and maximum API versions as part of skip
version testing, so if either are defined on a test class, then
we make a decision automatically removing the need to configure
aspects specifically.
Change-Id: I197e6c30c8514e1f72cb1ce3ebad851802632203
* Update ironic-tempest-plugin from branch 'master'
to 72417706034ccce75450e10fcac57100b1f8d1d5
- Invoke tests with fake interfaces
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
* Update ironic-tempest-plugin from branch 'master'
to f5bfe9b319dc76500bd20c18037af01f67125312
- Merge "Test multiple boot interfaces as part of one CI job"
- Test multiple boot interfaces as part of one CI job
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
* Update ironic-tempest-plugin from branch 'master'
to f2b9c74c9cb8459a979d9002aae3c1a41737c77a
- Basic API tests for sharding
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
* Update ironic-tempest-plugin from branch 'master'
to 53039461b0c603c6b7090c46bd35a533707931b0
- Merge "Ensure scope logic is enforced"
- Ensure scope logic is enforced
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
* Update ironic-tempest-plugin from branch 'master'
to 227a519fc9d2986965244dbcd30ed89ac8b53285
- Merge "Add test for dhcp-less vmedia based deployment"
- Add test for dhcp-less vmedia based deployment
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
* Update ironic-tempest-plugin from branch 'master'
to 621ffd654c5e953531ac4a1ad69333adbe1d5938
- Merge "Cleanup py27 support"
- Cleanup py27 support
This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py
Change-Id: Icd0649557b64ff9694ca444bd1d381bb9317992a
* Update ironic-tempest-plugin from branch 'master'
to d8e25ec09f698192f416beacf02093589bb4e8ae
- Add snmp variant of ramdisk iso boot test
Change-Id: I3e3849a9aefcc568dd39f3765d6b8e8784b2771a
* Update ironic-tempest-plugin from branch 'master'
to caae7cc6ec20261d416f49d2b0fa0e819af3adec
- CI: Update job config for 2023.2 being a stable branch
Increment the jobs, in other words:
* Add jobs for 2023.2
* Mark Zed jobs non-voting
* Remove older jobs from the tempest plugin's normal execution
as they were non-voting previously.
Change-Id: I27d852063a74938992c5cd37e45bfecf31aadd41
* Update ironic-tempest-plugin from branch 'master'
to 3c8235ed02c10940fc3889ae04d9ba7a6a8bbb34
- rbac - Fix vif_attach expected return values
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
* Update ironic-tempest-plugin from branch 'master'
to 3c43cf1eb7966a77a160c430be87ea15e67bab04
- CI: Add RBAC specific tempest jobs for main branch exec
Adds configs for Zed, 2023.1, but only runs the job on master
branch for now, while we sort out a policy fix needing to be
backported in ironic.
Gives us some initial feedback and forced testing while we fix
the other issues.
Change-Id: Ic435368a5840aae8dab26a843bd79e0ae2546639
* Update ironic-tempest-plugin from branch 'master'
to c0d1a98555a44f335f0ba63593b42f0ee12f7d1d
- CI: Advance stable jobs to 2023.1
- Create 2023.1 stable jobs
- Move yoga jobs to non-voting
- Remove wallaby non-voting jobs from being executed.
Change-Id: Ie30fd6ac8b208265cd6d56f7e94a69f472b5a7c4
* Update ironic-tempest-plugin from branch 'master'
to c228c68d726c2c11d76dfee78de519accf30d1ca
- Advance tempest plugin tests to Zed (mostly)
Also advances the anaconda job to 2023.1, since it fails
in a very odd way on Zed, and it looks like I might not have
had all of the CI related fixes on Zed.
Change-Id: Ib7142d2bfcf0cae84dbc647a5870a2e1d4768e25
* Update ironic-tempest-plugin from branch 'master'
to f29753262e9aeb49dac9c1566ad0ffe668505770
- Fix rbac tests
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
* Update ironic-tempest-plugin from branch 'master'
to e121d9a943b35f821b3a4ecb1479dfc7cf978bc9
- Merge "Secure RBAC Test"
- Secure RBAC Test
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
* Update ironic-tempest-plugin from branch 'master'
to 5952cbd6da1f49b4ec9690e25d9383bbba9b0e6e
- Split the ramdisk ISO test
I have a feeling that class-level logic involving CONF does not work
because CONF is populated later.
Change-Id: I65c65faf55069a4c9d668e0e0ba06ffc8b6b43ed
* Update ironic-tempest-plugin from branch 'master'
to 5ac31e71ead548508ede771768c59eb845ac7dbc
- Merge "Disable use of the SSH agent for the rescue test"
- Disable use of the SSH agent for the rescue test
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
* Update ironic-tempest-plugin from branch 'master'
to cda96d5ca3f84a5b883fee521bbabbe1c283c2a0
- Prevent protected node tests from orphaning test nodes
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
* Update ironic-tempest-plugin from branch 'master'
to 6457709e6e583ea640a7d54855c1a38c866af6b9
- Merge "OOB inspection timeout fix for iDRAC"
- OOB inspection timeout fix for iDRAC
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
* Update ironic-tempest-plugin from branch 'master'
to e0b4af905e87c68d3c7b7c2827e2f63b58b172fc
- Fix tox4 error
Remove skipsdist that it was never supported and causes breakage
when used with usedevelop.
Change-Id: Ic1cb9d8f0f555e05d35c7e2201187a0b82b48d4c
* Update ironic-tempest-plugin from branch 'master'
to 4684f915b58d2c161295100802dec7076920451f
- Fix typo: BaremetalIdracRedfishConfigurationMolds
Configuration in the class name was mistyped.
Change-Id: I349e4e2e3d7dcb90c25860b34d6be19b458ff584
* Update ironic-tempest-plugin from branch 'master'
to 982d177007ec6da22be467af369dfd4acc54cdbf
- Tempest test for anaconda deploy
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
* Update ironic-tempest-plugin from branch 'master'
to a2c26c6ddf0c764d2cffca16f8597fe5a9084050
- Merge "Add iDRAC Redfish configuration molds test"
- Add iDRAC Redfish configuration molds test
This adds test for idrac-redfish configuration molds for export and
import configuration steps.
Change-Id: If9337f9d7cee6009ce4df53e105b65fbcc95a9ba
* Update ironic-tempest-plugin from branch 'master'
to 41c3ed3c214c6590bf8b081ec71d8865f0345fdf
- Merge "Add iDRAC Redfish sync boot mode test"
- Add iDRAC Redfish sync boot mode test
This adds test for sync boot mode which changes boot mode
from 'bios' to 'uefi' and vice versa using iDRAC redfish
Change-Id: I43241204e71ab7e0d8c8929e216ce9473c3c2e1e
* Update ironic-tempest-plugin from branch 'master'
to 7b1644f3fb7605617e77c66a27735e15436ad52b
- Merge "Swap maintenance fix to cleanup step"
- Swap maintenance fix to cleanup step
Follow-up to I89839ecb0e08555ddcfee0289350fac1923b3958 to
use a cleanup step so the maintenance state is rolled back
regardless.
Change-Id: I52a5c36d8ca1965d866409fee4590cc1d151f238
* Update ironic-tempest-plugin from branch 'master'
to 853164a480abee7e2f9c32837d2559c6ea101f06
- Add iDRAC Redfish firmware update test
This adds test for firmware update using iDRAC redfish.
Change-Id: I87bacfabcaf94b9b80b884d6ab576058e7411f84
* Update ironic-tempest-plugin from branch 'master'
to 50f0a715d5a42b47d8079712ecf46b9365eb0151
- Merge "Add iDRAC RAID cleaning steps tests"
- Add iDRAC RAID cleaning steps tests
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
* Update ironic-tempest-plugin from branch 'master'
to ce437b75234a958a59f4f1cb1f86bfe473c6d599
- remove unicode from code
Change-Id: I23078d93d768deee0e8b93cbe254aea104e21f33
* Update ironic-tempest-plugin from branch 'master'
to 2b2aa6115d664b36104af7bf272bc10c18523f53
- Merge "Undo maintenace state on protected node tests"
- Undo maintenace state on protected node tests
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
* Update ironic-tempest-plugin from branch 'master'
to 0255f1e9c1e9c310cb8aeff212bb524a33b57636
- Merge "Set minimal tempest version to 27.0.0"
- Set minimal tempest version to 27.0.0
As tempest.scenario.manager was announced stable interface in Tempest
27.0.0[1] it can be now reused in plugins.
Some methods replaced in scenario-manager-cleanup effort won't work
with tempest version lower than 27.0.0 therefore minimal tempest
version must be updated in tempest plugins
Etherpad concerning this effort:
https://etherpad.opendev.org/p/tempest-scenario-manager-cleanup
[1] https://docs.openstack.org/releasenotes/tempest/v27.0.0.html#release-notes-27-0-0
Change-Id: I0a9fa64a61e90b9a6ac4786222be6732da247594
* Update ironic-tempest-plugin from branch 'master'
to c4a2e5e139ab95e63bbd2627bc4aec0eedb61645
- Merge "Add more deploy tests for idrac, redfish, ipmi"
- Add more deploy tests for idrac, redfish, ipmi
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
* Update ironic-tempest-plugin from branch 'master'
to caeb5c9dc17b13c92f1b0917bce0d8881a0a4969
- Merge "Add idrac OOB inspection test cases"
- Add idrac OOB inspection test cases
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
* Update ironic-tempest-plugin from branch 'master'
to 3af6253bc96ba1897feb0a88e60bddd0097d05ff
- Merge "Dettaching instance_uuid for standalone TC's"
- Dettaching instance_uuid for standalone TC's
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
* Update ironic-tempest-plugin from branch 'master'
to f904d287a83f1f77a9be400f51f98bc7eb3b1d7c
- Merge "Remove six"
- Remove six
Python 2 is no longer supported, thus usage of six can be removed.
Change-Id: I60259f7b326ac862409b4d8a0591859a0f070e8b
* Update ironic-tempest-plugin from branch 'master'
to 64ad55769eecc98c5f225446319f6ed60c48011d
- Add iDRAC management cleaning steps tests
This adds tests for both the WS-Man and Redfish implementations of the
iDRAC management cleaning steps.
Change-Id: I5dc41782fb905f0d88ff0defb2c950e9ca3d0faa
* Update ironic-tempest-plugin from branch 'master'
to d3360cf3b6ad8b89b9c80fc806dc5d4ba373dd01
- Merge "Add iDRAC BIOS cleaning steps tests"
- Add iDRAC BIOS cleaning steps tests
This adds tests for both the WS-Man and Redfish implementations
of the iDRAC BIOS cleaning steps.
Change-Id: I9e570c5664e48eca55a61a641d2bec9847eb5f25
* Update ironic-tempest-plugin from branch 'master'
to 082919c84aae099ff5085e236a3f36a89e2cddf7
- Remove create_floating_ip & get_server_ip methods
As tempest.scenario.manager was announced stable interface in Tempest 27.0.0[1] it can be now reused in plugins.
Ironic tempest plugin still uses nova-network old interface for floating ip related methods, this patch removes them and use tempests's ones which already use neutron's interface.[2]
Replaced methods:
* create_floating_ip
* get_server_ip
Etherpad concerning this effort:
https://etherpad.opendev.org/p/tempest-scenario-manager-cleanup
[1] https://docs.openstack.org/releasenotes/tempest/v27.0.0.html#release-notes-27-0-0
[2] 6428139de1
Change-Id: I963fe7478c0f3a46c1daa44c4eeff69714cf3ba0