summaryrefslogtreecommitdiff
path: root/oslo_db
Commit message (Collapse)AuthorAgeFilesLines
...
| * Replace use of Engine.scalar()Stephen Finucane2021-08-103-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Resolve the following RemovedIn20Warning warning: The Engine.scalar() method is considered legacy as of the 1.x series of SQLAlchemy and will be removed in 2.0. All statement execution in SQLAlchemy 2.0 is performed by the Connection.execute() method of Connection, or in the ORM by the Session.execute() method of Session; the Result.scalar() method can then be used to return a scalar result. Change-Id: Ic3c9c5bb008b6299f2ed9a59bda0329fab9d554d Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | Merge "Don't use the 'Row.keys()' method"Zuul2021-11-122-6/+1
|\ \ | |/
| * Don't use the 'Row.keys()' methodStephen Finucane2021-08-102-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | Resolve the following RemovedIn20Warning warning: The Row.keys() method is considered legacy as of the 1.x series of SQLAlchemy and will be removed in 2.0. Use the namedtuple standard accessor Row._fields, or for full mapping behavior use row._mapping.keys() Change-Id: I647a57909df56fec7b570ae29efbc731126df14d Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | Merge "Don't use dict-style attribute accesses"Zuul2021-11-124-12/+9
|\ \ | |/
| * Don't use dict-style attribute accessesStephen Finucane2021-08-104-12/+9
| | | | | | | | | | | | | | | | | | | | | | Resolve the following RemovedIn20Warning warning: Using non-integer/slice indices on Row is deprecated and will be removed in version 2.0; please use row._mapping[<key>], or the mappings() accessor on the Result object. Change-Id: I3a4845216914635e5802a70c2b1be757d82b7a49 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | Configure driver for postgresStephen Finucane2021-09-241-2/+1
|/ | | | | | | | | | | | | | | | | Avoid the following warning seen in e.g. nova unit tests: WARNING oslo_db.sqlalchemy.engines [-] URL postgresql://.../foo does not contain a '+drivername' portion, and will make use of a default driver. A full dbname+drivername:// protocol is recommended. The 'psycopg2' driver is chosen since this is the default for SQLAlchemy [1] and therefore what we're currently using. [1] https://docs.sqlalchemy.org/en/14/core/engines.html#postgresql Change-Id: I0f8f358a49a83366d7dec17e7bac346453f3027b Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Don't use plain string SQL statementsStephen Finucane2021-08-102-10/+5
| | | | | | | | | | | Resolve the following RemovedIn20Warning warning: Using plain strings to indicate SQL statements without using the text() construct is deprecated and will be removed in version 2.0. Ensure plain SQL statements are passed using the text() construct. Change-Id: I8acdb54d168afa1a7eac270ad6165faa287311ec Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Replace use of Table.autoload parameterStephen Finucane2021-08-102-6/+1
| | | | | | | | | | | Resolve the following RemovedIn20Warning warning: The autoload parameter is deprecated and will be removed in version 2.0. Please use the autoload_with parameter, passing an engine or connection. Change-Id: Ie039851005c6038591e0e1f6426922ca5b0dcb9a Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Replace use of update.whereclause parameterStephen Finucane2021-08-102-6/+3
| | | | | | | | | | Resolve the following RemovedIn20Warning: The update.whereclause parameter will be removed in SQLAlchemy 2.0. Please refer to the Update.where() method. Change-Id: I50064d16de6e1951b2282fcf9548a0ff2cd0fe55 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Update import of declarative_base()Stephen Finucane2021-08-109-17/+11
| | | | | | | | | | Resolve the following MovedIn20Warning: The ``declarative_base()`` function is now available as sqlalchemy.orm.declarative_base() Change-Id: I5fd707c62d0bfad6e54150c4a3b87aadadbeedb3 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Replace use of update.values parameterStephen Finucane2021-08-102-8/+3
| | | | | | | | | | Resolve the following RemovedIn20Warning warning: The update.values parameter will be removed in SQLAlchemy 2.0. Please refer to the Update.values() method. Change-Id: I426605aa8f4332fd0b7d9f6fa0e97d7e02c7cbdc Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Replace use of insert.values parameterStephen Finucane2021-08-102-15/+10
| | | | | | | | | | Resolve the following RemovedIn20Warning warning: The insert.values parameter will be removed in SQLAlchemy 2.0. Please refer to the Insert.values() method. Change-Id: I52ff0c44039d8d1ee09210d9a990d0e40bbfa411 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Add missing bind argument to callsStephen Finucane2021-08-102-8/+2
| | | | | | | | | | Resolve the following RemovedIn20Warning warning: The ``bind`` argument for schema methods that invoke SQL against an engine or connection will be required in SQLAlchemy 2.0. Change-Id: If9492a3842055dde3841eaeb72fb4c050563b6ac Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Don't pass strings to Connection.execute()Stephen Finucane2021-08-105-49/+66
| | | | | | | | | | | | Resolve the following RemovedIn20Warning warning: Passing a string to Connection.execute() is deprecated and will be removed in version 2.0. Use the text() construct, or the Connection.exec_driver_sql() method to invoke a driver-level SQL string. Change-Id: I1faa8c957649a04aa080518651045b432c6bd372 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Remove use of MetaData.bind argumentStephen Finucane2021-08-094-70/+95
| | | | | | | | | | Resolves the following RemovedIn20Warning warning: The MetaData.bind argument is deprecated and will be removed in SQLAlchemy 2.0. Change-Id: I468048c01455d9dfe12004736c181806dc218e37 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Remove legacy calling style of select()Stephen Finucane2021-07-298-23/+25
| | | | | | | | | | | Resolve the following SADeprecationWarning warning: The legacy calling style of select() is deprecated and will be removed in SQLAlchemy 2.0. Please use the new calling style described at select(). Change-Id: Ic5f7240e790425d2689c6870483748650a49bc3d Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* tests: Enable SQLAlchemy 2.0 deprecation warningsStephen Finucane2021-07-291-0/+114
| | | | | | | | | Well, sort of. We enable them but immediately filter out the ones we're actually seeing, the rationale being that we can address these in a piecemeal fashion without the risk of introducing new issues. Change-Id: I32cad5fd9ddbfd2ff6b62e5e2f87fad6ece7a4c1 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* utils: Deprecate sqlalchemy-migrate-related functionsStephen Finucane2021-07-291-0/+13
| | | | | | | | | These are using private APIs of SQLAlchemy but, more importantly, are not necessary in an alembic-only world. Mark them deprecated for removal. Change-Id: I6efb6e1d35542cd8df922c86e134fe1e0b8c2e52 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* tests: Enable SADeprecationWarning warningsStephen Finucane2021-07-294-17/+63
| | | | | | | | | | | | | | | | | | | | | | | | Highlight use of deprecated SQLAlchemy APIs to ensure we keep on top of things. This requires resolving the following SADeprecationWarning warnings: The from_engine() method on Inspector is deprecated and will be removed in a future release. Please use the sqlalchemy.inspect() function on an Engine or Connection in order to acquire an Inspector. The Column.copy() method is deprecated and will be removed in a future release. The ColumnCollectionConstraint.copy() method is deprecated and will be removed in a future release. There are more warnings to be resolved related to SQLAlchemy 2.0, but those require a special environment option (SQLALCHEMY_WARN_20) to trigger and a lot of work to resolve. We'll address those in a series of follow-ups. Change-Id: I34b395e6d50f4e4151178c327d94308e6f5d5b6e Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* tests: Use common base classStephen Finucane2021-07-2916-128/+147
| | | | | | | | The final step in cleaning up our many base classes. This will allow us to do things consistently across the test suite in future changes. Change-Id: I0bf663fdfd3c8be93e5658493e221d0a7db78832 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* tests: Enfeeble 'oslo_db.tests.utils.BaseTestCase'Stephen Finucane2021-07-293-9/+9
| | | | | | | | | We have quite a few base test classes in use. Start fixing these by removing the logic from one of these. We will remove the class entirely in a future change. Change-Id: I6dae26aeb4b2a5cc4f39ed637807a27e44d40025 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* tests: Clean up base testStephen Finucane2021-07-291-37/+5
| | | | | | | | | | | | This base test isn't actually used by anything but we're going to change that shortly. Before we do, address a longstanding TODO and make it subclass 'oslotest.BaseTestCase'. Because 'oslotest.BaseTestCase' already configures all of the fixtures we're currently using, our own base test class ends up being a simple wrapper. This will also change in the future. Change-Id: I110392586fb032507d122ae9a412a6bba7c5ff2d Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Merge "Drop checks for IBM DB2"Zuul2021-07-296-134/+13
|\
| * Drop checks for IBM DB2Stephen Finucane2021-07-286-134/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This hasn't been supported by any project for many years. Quoting from the nova patch that removed DB2 support [1] This removes db2 support from tree completely. This is an oddball non open database that made doing live data migrations difficult. It is used by 0% of users in the OpenStack User Survey. Supporting commercial software that doesn't have users at the cost of delivering features and fixes to our community is the wrong tradeoff. This corrects that. There's no need to keep this around. [1] Ifeb9929e4515e3483eb65d371126afd7672b92a4 Change-Id: I8c3f23083e09e5ac924e35d1b7b3248a0d074e1b Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | tests: Remove 'ModelsMigrationsSync.check_foreign_keys'Stephen Finucane2021-06-252-301/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'check_foreign_key' method was removed in oslo.db 1.4.0 [1] and re-added but marked as deprecated in 1.4.1 [2] to allow for a deprecation period. That was over 6 years ago so we can now remove it. Meanwhile, the private '_walk_versions', '_migrate_down' and '_migrate_up' methods have been marked as deprecated since oslo.db 0.5.0 (!!!) [3]. We can definitely remove these now. codesearch.o.o reveals no users of any of these methods. [1] I77a2bba2de08125b5a601de03c1d2d5c73fa33ee [2] Id892567bd60d6b4b88765bbfe3cd5c5e75910b25 [3] Ic9358445e60a0dd43a5900e8bda7b12f2bebf679 Change-Id: Idb9596284df3e5d038c939d27fe14fe2cc2f4318 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | concurrency: Deprecate 'TpoolDbapiWrapper'Stephen Finucane2021-06-251-7/+24
| | | | | | | | | | | | | | | | | | This has been marked as experimented since before oslo.db was split out of nova. We've no test coverage and no idea of whether it even works nowadays. It's time to plan for its eventual removal. Change-Id: Ib7a5a6e1124c44a742b003442f815022a866bcbb Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | sqlalchemy: Remove checks for older depsStephen Finucane2021-06-252-17/+1
|/ | | | | | | | | We already state a minimum in our requirements.txt files to prevent use of this package with older alembic and sqlalchemy releases, making these checks simply noise. Remove them. Change-Id: Ie3fbc54aa0c791e6e8ca3164c95051039e82b0e3 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* Merge "types: Set 'cache_ok'"10.0.0Zuul2021-06-251-0/+4
|\
| * types: Set 'cache_ok'Stephen Finucane2021-06-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolves the following warning that has been popping up on tests: SAWarning: TypeDecorator SoftDeleteInteger() will not produce a cache key because the ``cache_ok`` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning. Both SoftDeleteInteger and the various subclasses of 'JsonEncodedType' are hashable and should return a consistent hash and key. For more information, refer to the SQLAlchemy docs [1]. [1] https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok Change-Id: Idf6fd858fad9521c7c5ba82c31b6d3077756abd9 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | Merge "Remove the useless else."Zuul2021-06-231-2/+1
|\ \
| * | Remove the useless else.Daniel Bengtsson2021-06-231-2/+1
| | | | | | | | | | | | | | | | | | We return the value in the if condition, so the else is not necessary. Change-Id: I1de4b7f7f7ea3634e3a2d49704f689205f746085
* | | Merge "Remove the idle_timeout option."Zuul2021-06-234-26/+0
|\ \ \
| * | | Remove the idle_timeout option.Daniel Bengtsson2021-06-234-26/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | The option was replaced 4 years ago[1] by connection_recycle_time. The option is not anymore present in sqlalchemy. It's the good time to remove it. [1] https://opendev.org/openstack/oslo.db/commit/6634218415906192fca891362b8fa0ac50b66284 Change-Id: I0c26c3e14ad9ad9a4f30af80757e369d6042441a
* | | Merge "Replace getargspec with getfullargspec"Zuul2021-06-222-22/+2
|\ \ \ | |_|/ |/| |
| * | Replace getargspec with getfullargspeclikui2021-05-112-22/+2
| |/ | | | | | | | | | | | | | | getargspec() is deprecated since py3 [1] https://docs.python.org/3/library/inspect.html#inspect.getargspec Change-Id: Ie1513f9b4911e54ce6714074eb2dc4052323ef42
* | Added handler for mysql 8.0.19 duplicate key error updateKamlesh Chauvhan2021-06-042-0/+35
|/ | | | | | | | | | | In mysql 8.0.19 , Duplicate key error information is extended to include the table name of the key.Previously, duplicate key error information included only the key value and key name. Unit tests are provided for updated changes. Change-Id: Ic78059b625e73cece355541cb4d89e641abc1103 Closes-Bug: #1896916
* Merge "Remove the sql_max_pool_size option."9.0.0Zuul2021-05-032-8/+0
|\
| * Remove the sql_max_pool_size option.Daniel Bengtsson2021-04-262-8/+0
| | | | | | | | | | | | | | | | The option was replaced 6 years ago[1] by max_pool_size. [1] https://opendev.org/openstack/oslo.db/commit/1b7c295d522e26aa8bf09242dcc1355c3fb1ab3e Change-Id: Ice1a90edc32603c85449b80fe78fd437aa7e8081
* | Merge "Don't use private API to get query criteria"8.6.0Zuul2021-04-281-4/+3
|\ \
| * | Don't use private API to get query criteriaMike Bayer2021-04-281-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Another change for SQLAlchemy 1.4 is the mechanics of how the ``QueryContext`` object works. Update the update_match extension such that it does not rely upon the ``QueryContext`` object and uses public APIs instead. Change-Id: I27e20e59bce8c98b5a507c617364652aa6eb33f5
* | | Merge "Accommodate immutable URL api"Zuul2021-04-284-9/+46
|\ \ \ | |/ /
| * | Accommodate immutable URL apiMike Bayer2020-12-114-9/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SQLAlchemy 1.4 has modified the URL object to be immutable. This patch makes the adjustments needed, using duck-typing to check if the URL object is of the new style. When requirements reach SQLAlchemy 1.4 as the minimum required version, these conditionals should be removed in favor of the noted option in each. Change-Id: Id2f0663b13ed0f81e91a8d44f73d8541015bf844
* | | Merge "remove unicode from code"Zuul2021-04-162-6/+6
|\ \ \ | |_|/ |/| |
| * | remove unicode from codexuanyandong2021-01-032-6/+6
| | | | | | | | | | | | Change-Id: Ia782bc7127a1cb967e2f475065b1fb963b9c184f
* | | Fix the conflict status with hacking.Daniel Bengtsson2021-03-092-18/+6
|/ / | | | | | | | | | | | | | | | | | | | | The conflict is caused by: The user requested flake8 3.8.3 (from /home/zuul/.cache/pre-commit/repozi7hytk7) hacking 3.0.1 depends on flake8<3.8.0 and >=3.6.0 Install the latest version of hacking to fix the conflict error with the pre-commit hook. Change-Id: If1c54502e6e10751fd722694aa5429a08f376798
* | Merge "Deprecate the 'oslo_db.sqlalchemy.migration_cli' module"8.5.0Zuul2020-10-301-0/+7
|\ \
| * | Deprecate the 'oslo_db.sqlalchemy.migration_cli' moduleStephen Finucane2020-10-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This API allowed users to abstract the differences between sqlalchemy-migrate and alembic. However, no one is using it for that and its continued existence necessitates continued support for sqlalchemy-migrate. Deprecate it now and encourage the odd user to switch to alembic directly. Change-Id: Ia5979369f23b38a2c7307f4112651a8bedb45c01 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | | Merge "Deprecate 'oslo_db.sqlalchemy.migration' module"Zuul2020-10-301-0/+10
|\ \ \ | |/ / | | / | |/ |/|
| * Deprecate 'oslo_db.sqlalchemy.migration' moduleStephen Finucane2020-10-301-0/+10
| | | | | | | | | | | | | | | | | | This module hasn't been touched with years and 'sqlalchemy-migrate' is effectively abandoned. It's time to drop support for this an encourage the laggards to switch to alembic and use it directly. Change-Id: I59335b4f318bae2e29ab139cdea089a4d6e14305 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
* | Set create_constraint=True for boolean constraint testMike Bayer2020-06-031-1/+1
|/ | | | | | | | | | | SQLAlchemy will be defaulting create_constraint to False in an upcoming major release [1]. As this test relies upon the CHECK constraint being present, set create_constraint to True. [1] https://github.com/sqlalchemy/sqlalchemy/issues/5367 Change-Id: Ie822172ef797dc1bf8050d9b5cabe6782120ea45