[outreachy][cinder] Unable to generate api-ref samples for snapshot transfer
Hi, I am trying to generate api-ref doc from template by running "tox -e snaphot_transfer" but I keep getting the same error pasted in the link https://paste.openstack.org/show/bFPbWKQAKRbIds4R0wWn and I have installed the missing dependency as shown below, anyone have an Idea what the issue could have been? Thanks for your time. [image: image.png]
Hi Toheeb. Thanks for working on this! On 4/6/23 5:09 PM, Toheeb Oyekola wrote:
Hi,
I am trying to generate api-ref doc from template by running "tox -e snaphot_transfer" but I keep getting the same error pasted in the link https://paste.openstack.org/show/bFPbWKQAKRbIds4R0wWn <https://paste.openstack.org/show/bFPbWKQAKRbIds4R0wWn> and I have installed the missing dependency as shown below, anyone have an Idea what the issue could have been?
There are two reasons you might be seeing the ModuleNotFoundError: 1 - dependency missing 2 - you have the dependency, but the module isn't in that version What you're seeing is #2. SQLAlchemy 2.0 doesn't contain the sqlalchemy.databases module: [master] wha'ppen? .tox/venv/bin/pip freeze | grep -i sqlalchemy== SQLAlchemy==2.0.9 [master] wha'ppen? .tox/venv/bin/python Python 3.10.10 ...
from sqlalchemy.databases import sqlite as sa_base Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'sqlalchemy.databases'
But this module does exist in SQLAlchemy 1.4: [master] wha'ppen? .tox/py310/bin/pip freeze | grep -i sqlalchemy== SQLAlchemy==1.4.41 [master] wha'ppen? .tox/py310/bin/python Python 3.10.10 ...
from sqlalchemy.databases import sqlite as sa_base
The cinder tox.ini file uses upper-constraints to force tox to install the appropriate versions of dependencies. Right now, that's SQLAlchemy===1.4.41, which you can see if you search this file: https://opendev.org/openstack/requirements/raw/branch/master/upper-constrain... The cinder tox.ini file uses upper constraints here: https://opendev.org/openstack/cinder/src/commit/42ef47ba26ab15c526afa7eec7f2... I think what may be happening in your case is that you've set up a custom tox testenv named 'snapshot_transfer' and it is using the tox default install_command, that doesn't constrain dependencies, and so you're winding up with SQLAlchemy 2.0. Make sure that it contains this line from the "regular" api-samples testenv: https://opendev.org/openstack/cinder/src/commit/42ef47ba26ab15c526afa7eec7f2... By the way, if you just want to run your new snapshot_transfers tests, you can use the "regular" api-samples testenv like this: tox -e api-samples -- api_sample_tests.test_snapshots That runs all the tests in cinder/tests/functional/api_sample_tests/test_snapshots.py ; just adjust it to the name of your file containing the snapshot transfers tests. Or you may be doing all this stuff already and the problem may be something else entirely.
Thanks for your time.
image.png
participants (2)
-
Brian Rosmaita
-
Toheeb Oyekola