summaryrefslogtreecommitdiff
path: root/taskflow/persistence/backends
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Fix parsing of zookeeper jobboard backend options"Zuul2023-04-191-1/+3
|\
| * Fix parsing of zookeeper jobboard backend optionsGregory Thiemonge2023-01-121-1/+3
| | | | | | | | | | | | | | | | Fix the zookeeper backend options when values are passed as strings, a "False" string is now treated as the False boolean. Closes-Bug: #1999174 Change-Id: I048faf06d89ebf980efe0598e647f2ec89f65ada
* | Prepare taskflow for sqlalchemy2Gregory Thiemonge2023-02-271-13/+21
|/ | | | | | | | | * convert_unicode engine option is no longer supported * use positional arguments for select, lists are no longer supported * insert no longer accepts keyword constructor arguments * explicitly convert Rows to dicts Change-Id: I858d60b3d142e8ade8b2c0154872c8bfc19a42ba
* Remove sixTakashi Kajinami2022-05-182-9/+7
| | | | | | | | This library no longer supports Python 2, thus usage of six can be removed. This also removes workaround about pickle library used in Python 2 only. Change-Id: I19d298cf0f402d65f0b142dea0bf35cf992332a9
* Fix atomdetails failure column sizePavlo Shchelokovskyy2022-01-271-0/+36
| | | | | | | | | failure and revert_failure fields in atomdetails is defined as a JSON type, but its data type is 'text' in mysql, which is limited to 64kbytes. JSON data type should have the same size as a LONGTEXT. Closes-Bug: #1959243 Change-Id: I65b6a6d896d3e8aad871dc19b0f8d0eddf48bdd6
* Merge "Use custom JSONType columns"4.6.3Zuul2021-10-261-8/+27
|\
| * Use custom JSONType columnsPavlo Shchelokovskyy2021-07-131-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the JSONType from sqlalchemy_utils is quite brittle as it only does primitive json.dumps on values. This leads to various sorts of StorageFailure exceptions in taskflow when, for example, an unserializable exception bubbles up to the 'failure' field of AtomDetails. This patch sublclasses the JSONType from sqlalchemy_utils and overrides two of its methods that do (de)serialization to work via oslo.serialization functions. They deal with such occurencies much better, for example, by providing 'str' as a fallback default. Change-Id: I3b9e9498b155199a4e707006a0cf22cda0567c06 Related-Bug: #1935957
* | Fix flowdetails meta sizeGregory Thiemonge2021-05-031-0/+34
|/ | | | | | | | | | meta field in flowdetails is defined as a JSON data type, but its data type is 'text' in mysql, which is limited to 64kbytes. JSON data type should have the same size as a LONGTEXT. Closes-Bug: #1926304 Change-Id: I9f89badfc697f0f26245ca7f4c22d62e220be5f9
* Fix deprecated Alembic function args4.6.0Adam Harwell2021-01-281-9/+9
| | | | | | | | create_index and create_foreign_key were using long-deprecated argument names which were finally removed as of 1.5.0: https://alembic.sqlalchemy.org/en/latest/changelog.html#change-da0bea3199b905783ddbd0cde968beec Change-Id: I03405e3d0daf085d0849a6e3effc65ec05ceb7a1
* Stop to use the __future__ module.Hervé Beraud2020-06-022-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The __future__ module [1] was used in this context to ensure compatibility between python 2 and python 3. We previously dropped the support of python 2.7 [2] and now we only support python 3 so we don't need to continue to use this module and the imports listed below. Imports commonly used and their related PEPs: - `division` is related to PEP 238 [3] - `print_function` is related to PEP 3105 [4] - `unicode_literals` is related to PEP 3112 [5] - `with_statement` is related to PEP 343 [6] - `absolute_import` is related to PEP 328 [7] [1] https://docs.python.org/3/library/__future__.html [2] https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html [3] https://www.python.org/dev/peps/pep-0238 [4] https://www.python.org/dev/peps/pep-3105 [5] https://www.python.org/dev/peps/pep-3112 [6] https://www.python.org/dev/peps/pep-0343 [7] https://www.python.org/dev/peps/pep-0328 Change-Id: Ie7c18f2f1b6294e3d19c36112d35f4472ce77e7b
* Use mysql LONGTEXT for atomdetails resultstrain-em3.7.1Ann Taraday2019-08-091-0/+43
| | | | | | | | | | | | | | | With a lot of possible retries using mysql sa.Text for result field atomdetails table is not enough. Updated 'results' column type to LONGTEXT in mysql backend case. PosgreSQL seems not to be affected as postgres text type is not having length limitation. Co-Authored-By: Michael Johnson <johnsomor@gmail.com> Change-Id: I4e44e3288ae49d85c5b5ce8ff26ba83f3b9d2c7b Closes-bug: #1838015
* python3.0 has deprecated LOG.warnxhzhf2017-03-072-5/+5
| | | | | | | | python3.0 has deprecated LOG.warn https://docs.python.org/3/library/logging.html#logging.warning Closes-Bug: #1650843 Change-Id: Ib8473cbdb84547f385e619fe08ed723b1ee7bcdb
* Replace retrying with tenacityGevorg Davoian2016-11-031-9/+7
| | | | | | | | | | | | This patch replaces the legacy retrying library with the newer and more convenient tenacity one, taking into account that: 1) retrying uses milliseconds for wait times, but tenacity uses seconds; 2) retrying has a lot of numeric arguments for specifying behaviour of decorated functions, while tenacity has a few of them, which are specialized objects, thus making the retry-decorator more flexible. Change-Id: I4b165d37b2ecc210f2b94c103b73eaab51529261 Closes-Bug: #1635404
* Use method ensure_tree from oslo.utilsChangBo Guo(gcb)2016-09-251-1/+2
| | | | | | Oslo.utils provides same function and just use it. Change-Id: Iac245d4d98c41edea5294a4d8842db69a42b3794
* Fix some misspellings in the function name and descriptionsPablo Iranzo Gómez2016-06-301-1/+1
| | | | Change-Id: I7e3451feb94b1f25b00c5e7b197bb6b527548306
* Remove deprecated things for 2.0 releaseJoshua Harlow2016-05-101-26/+4
| | | | Change-Id: Id9adbc50bd51adc77ce88f698ad0ea2ee63fc5e2
* Ensure upgrade for sqlalchemy is protected by a lockJoshua Harlow2016-03-201-13/+17
| | | | | | | | | Make sure that upgrade() is thread-safe (as it appears not to be) by using a lock that all connections from the same engine will use. Change-Id: I2b2b1be9e797099c8412fc6819465e550b1b934a Closes-Bug: #1559496
* Merge "Use the retrying lib. to do basic sqlalchemy engine validation"Jenkins2016-01-091-47/+41
|\
| * Use the retrying lib. to do basic sqlalchemy engine validationJoshua Harlow2016-01-051-47/+41
| | | | | | | | | | | | | | | | Instead of a custom loop and backoff just use the retrying library to do this same code and delegate the loop complexity to it instead. Change-Id: Iaf02cc728d2a2cfc7077300e03d7ef25522717b7
* | Merge "Use alembic upgrade function/command directly"Jenkins2016-01-062-26/+15
|\ \
| * | Use alembic upgrade function/command directlyJoshua Harlow2015-06-152-26/+15
| | | | | | | | | | | | | | | | | | | | | Instead of implementing a similar version to what the upgrade function does, just use it directly instead. Change-Id: I61a3c9f09c6e0724f2b55951989171ef4aaafe0c
* | | Merge "Use shared util helper for driver name + config extraction"Jenkins2016-01-051-16/+6
|\ \ \
| * | | Use shared util helper for driver name + config extractionJoshua Harlow2015-12-221-16/+6
| | |/ | |/| | | | | | | Change-Id: I43465b8f5868e64bdf38d2873417a8a4a403a23b
* | | Merge "Move all internal blather usage/calls to trace usage/calls"Jenkins2015-12-231-1/+1
|\ \ \ | |/ / |/| |
| * | Move all internal blather usage/calls to trace usage/callsJoshua Harlow2015-12-171-1/+1
| | | | | | | | | | | | Change-Id: I415a81d3b6b15b17a9a91cc2a0681c159172a4e1
* | | Fix currently broken and inactive mysql testsJoshua Harlow2015-12-221-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 868dd8485456ce78a396b687ec7744dc365f06be added a migration script that caused there to be two heads (starting points) of migrations which would cause alembic to be unable to do the initial schema creation (and upgrade). So this fixes that by correctly making one head only and not skipping tests for a database if it can not be upgraded for whatever reason (which was silencing the test failures). Closes-bug: #1528683 Change-Id: Id571072eec1dc3b6cbb9e868854f6db0b271e5f8
* | Merge "Use the sqlalchemy-utils json type instead of our own"Jenkins2015-12-152-23/+66
|\ \
| * | Use the sqlalchemy-utils json type instead of our ownJoshua Harlow2015-09-092-23/+66
| | | | | | | | | | | | Change-Id: Ie01ea85e74f1daed6bfa5158c0faa476d06873ba
* | | Add in-memory backend delete() in recursive/non-recursive modesJoshua Harlow2015-10-141-8/+27
| | | | | | | | | | | | Change-Id: I957c875bf493b2e38bf82af6faccbab8a4861ade
* | | Fix how the dir persistence backend was not listing logbooksJoshua Harlow2015-09-041-2/+6
|/ / | | | | | | | | | | | | | | | | | | Due to the usage of the os.path.islink check this means that no logbooks would be returned when get_logbooks was called, which is not the behavior we want. Closes-Bug: #1492403 Change-Id: Ife6a5bec777c9e2d820391914ce2c6fbbadf4f79
* | Merge "Use io.open vs raw open"1.17.0Jenkins2015-07-261-4/+4
|\ \
| * | Use io.open vs raw openJoshua Harlow2015-07-101-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The io.open call can take in a encoding so we don't need to read in binary mode, then convert it since it can just do that on our behalf. Change-Id: I0cce2841b40f1566ba07ff95a553cb18ea9059ee
* | | Merge "Update 'make_client' kazoo docs and link to them"Jenkins2015-07-171-0/+10
|\ \ \
| * | | Update 'make_client' kazoo docs and link to themJoshua Harlow2015-07-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the creation of a client is somewhat important and knowing what the options that are transfereed to kazoo are we should explicitly document what keys are and what the values should be. Change-Id: I1a5037b274828190270ea5c402be8b2100306de4
* | | | Merge "Address concurrent mutation of sqlalchemy backend"Jenkins2015-07-171-13/+8
|\ \ \ \
| * | | | Address concurrent mutation of sqlalchemy backendJoshua Harlow2015-06-151-13/+8
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to prevent a thread from closing a backend while another thread is getting a connection (which can result in an engine being created) stop this kind of concurrent mutation by creating a engine (if it was not user provided) in the constructor. In the close the engine dispose is called (which will according to the docs just create a new pool anyway) so there is no need to recreate the full engine object from its same configuration again. Change-Id: Id1fa3001b3ebbe76bbcdb08ed4add6a9e16ea96b
* | | | Merge "Retain atom 'revert' result (or failure)"Jenkins2015-07-152-0/+44
|\ \ \ \
| * | | | Retain atom 'revert' result (or failure)Joshua Harlow2015-07-102-0/+44
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a atom is reverted it can be useful to retain the result of that 'revert' method being called, so that it can be later analyzed (or used for various purposes) so adjust the storage, and actions to enable it to be stored. Change-Id: I38a9a5f3bf7550e924468bb4a86652cb8beb306c
* | | | Update all removal_version from being ? to being 2.0Joshua Harlow2015-07-121-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | Before the 2.0 release it would be great to get these removed so let's mark that version as the version that will no longer have these in it. Change-Id: I66a74d270bf95db005e9febfce1a5e211c7a49f6
* | | Rename logbook module -> models moduleJoshua Harlow2015-07-083-9/+9
| |/ |/| | | | | | | | | | | | | | | | | | | Since this module contains more than the logbook class and really is a our generic models that are used to hold the runtime structure it is more appropriate to place it under a models module and deprecate the usage of the old module by placing a warning there (so that when it is imported that warning is triggered). Change-Id: I79def5ee08f560d38f2c9dcefd0b33becc2a4d36
* | Merge "Make it possible to see the queries executed (in BLATHER mode)"Jenkins2015-07-081-0/+13
|\ \
| * | Make it possible to see the queries executed (in BLATHER mode)Joshua Harlow2015-06-201-0/+13
| | | | | | | | | | | | | | | | | | Part of blueprint make-things-speedy Change-Id: I3ac092e98a492d3a70c7780efb4647d593fa70d1
* | | Merge "Use a class constant for the default path based backend path"Jenkins2015-06-212-4/+8
|\ \ \
| * | | Use a class constant for the default path based backend pathJoshua Harlow2015-06-102-4/+8
| |/ / | | | | | | | | | | | | | | | | | | | | | When no path is provided to a path based backend via configuration use a class constant to provide the default, and override this in backends that support providing defaults. Change-Id: I0a6c88398403a162b113e34abe7e56821d1f02bc
* | | Merge "Use hash path lookup vs path finding"0.11.0Jenkins2015-06-151-12/+11
|\ \ \ | |_|/ |/| |
| * | Use hash path lookup vs path findingJoshua Harlow2015-06-061-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When creating a fake symlink to a path just use hash lookup via `fetch_node` and handle that failing if the destination nodes does not exist vs. fetching the parent and linear searching for the existing target node (which gets slower as the parent node gets more children). This makes the preparing code using the little speed test helper on my not-very-fast box change to be the following: Old (preparing) - Took 29.724 seconds to run New (preparing) - Took 21.343 seconds to run Part of ongoing blueprint make-things-speedy Change-Id: I608b90ae58b4e4b6724b7f1bb8faebd118a1ec79
* | | Merge "Make the default file encoding a class constant with a docstring"Jenkins2015-06-141-1/+7
|\ \ \ | |_|/ |/| |
| * | Make the default file encoding a class constant with a docstringJoshua Harlow2015-06-101-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | Having this exposed makes it easier to know what it is being used for and what the default is (and also makes it show up in generated docs, so people can read all about it). Change-Id: I2e0f85d9c087d220671e2dbf82d497677c462a9e
* | | Merge "Use a lru cache to limit the size of the internal file cache"Jenkins2015-06-101-2/+13
|\ \ \ | |/ /
| * | Use a lru cache to limit the size of the internal file cacheJoshua Harlow2015-06-101-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of having an unbounded internal file cache which will eventually absorb all memory of the running/containing python process have the size of that cache be limited by an optionally provided size (and have eviction be based on how recent a cached entry was used). Fixes bug 1458248 Change-Id: I5e59efc4edd51b05cfb1e67d3e7014e378e352aa