summaryrefslogtreecommitdiff
path: root/taskflow/persistence/backends
Commit message (Collapse)AuthorAgeFilesLines
* 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
* | | Add a new `ls_r` methodJoshua Harlow2015-06-041-5/+56
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of having a `ls` method that when used recursively *always* returns the absolute path of items in the fake in memory storage tree and *relative* paths (when used in non-recursive mode) add a new `ls_r` method that can return absolute *or* relative paths. In the future it is highly likely that the the `ls` recursive keyword argument will be removed (so preferring and moving to the `ls_r` should occur earlier rather than later), so this also adds a debtcollector removed keyword argument decorator over the existing `ls` to ensure that users are aware of this change (as well as a adjusted docstring). Fixes bug 1458114 Change-Id: Id2a5869e94ac44679020a14297d1073d1dc2718f
* | Merge "Replace lock_utils lock(s) with fasteners package"Jenkins2015-06-042-5/+5
|\ \
| * | Replace lock_utils lock(s) with fasteners packageJoshua Harlow2015-06-022-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The usage of this package allows us to get rid of the reader/writer lock (since that package provides that) as well as the interprocess lock as all of these are now provided by that package instead. Change-Id: I87990b46d397f6df779de7028bcc40e28621e1ba
* | | Merge "Ensure empty paths raise a value error"Jenkins2015-05-301-0/+3
|\ \ \ | |/ / |/| |
| * | Ensure empty paths raise a value errorJoshua Harlow2015-05-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Empty paths should not be allowed to be set or fetched or normalized so check for those and raise an error when one is encountered. Also add some basic test conditions that ensure the normpath method raises when it should. Change-Id: I7f7e6600f03c67376ba310ab231b2e33cd7528db
* | | Fix updated_at column of sqlalchemy tablesFredrik Bergroth2015-05-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | The column updated_at does not update its value after the refactoring made in 687ec913790653f79badc8f5d656c86792e94271. Closes-Bug: #1457309 Change-Id: Iff45f386b5dc8efc3fe82ca3b1e961a0c23d7ac7
* | | Merge "Avoid creating temporary removal lists"Jenkins2015-05-141-3/+3
|\ \ \ | |_|/ |/| |
| * | Avoid creating temporary removal listsJoshua Harlow2015-05-081-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | Instead of creating a temporary list, only to then iterate over it (and then never again use that temporary list) just use itertools and create an iterator that we use for iterating (therefore avoiding any need to create a temporary list). Part of ongoing blueprint make-things-speedy Change-Id: I5322e5bdf613d485fbc8851c1319a907b425e2dd
* | Merge "Expose in memory backend split staticmethod"Jenkins2015-05-121-2/+5
|\ \
| * | Expose in memory backend split staticmethodJoshua Harlow2015-05-111-2/+5
| |/ | | | | | | | | | | | | | | | | | | | | | | Just like we expose join we should also expose split to ensure that both of these operations can easily performed by users of this backend. This also refactors the internal usage to call into that static method vs calling into the posix path module specific one. Change-Id: I496c730b86f0af6d4b637862a92482c0df6a63b3
* | Merge "Avoid re-normalizing paths when following links"Jenkins2015-05-121-3/+3
|\ \
| * | Avoid re-normalizing paths when following linksJoshua Harlow2015-05-071-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is not any need to re-normalize internal paths once the initial get() or __get_item__() have normalized there path arguments so in _get_item() just tell the fetching function to avoid re-normalizing the paths its provided. This also works for link following since the target placed in the fake inodes metadata is already normalized when it is inserted. Part of blueprint make-things-speedy Change-Id: If31d61b744f8df618c7db3afffc4a118cb17003a