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
Showing
- ironic_tempest_plugin/services/baremetal/base.py 14 additions, 0 deletionsironic_tempest_plugin/services/baremetal/base.py
- ironic_tempest_plugin/tests/api/base.py 11 additions, 0 deletionsironic_tempest_plugin/tests/api/base.py
- ironic_tempest_plugin/tests/scenario/baremetal_manager.py 12 additions, 0 deletionsironic_tempest_plugin/tests/scenario/baremetal_manager.py
Loading
Please register or sign in to comment