Update git submodules
* Update placement from branch 'master' - Update the incorrect url Change-Id: Ifaa7f48e99fef1145f0fb46a4f35f2d55e0124f4 Closes-Bug: #1810490 - Merge "Correct link rest api history" - Merge "Use os-resource-classes in placement" - Correct link rest api history The link was to nova, to documents that are no longer there, so update to the new location. A change will also be made in nova to add a redirect. Change-Id: Ibfe016f25a29b6810ea09c5d03a01dbf3c53371f - Use os-resource-classes in placement os-resource-classes is a python library in which the standardized resource classes are maintained. It is done as a library so that multiple services (e.g., placement and nova) can use the same stuff. It is used and managed here in the same way the os-traits library is used: At system start up we compare the contents of the resource_classes table with the classes in the library and add any that are missing. CUSTOM resource classes are added with a high id (and always were, even before this change). Because we need to insert standard resource classes with an id of zero, so we need to protect against mysql thinking 0 on a primary key id is "generate the next one". We don't need a similar thing in os-traits because we don't care about the ids there. And we don't need to guard against postgresql or sqlite at this point because they do not have the same behavior. The resource_class_cache of id to string and string to id mappings continues to be maintained, but now it looks solely in the database. As part of confirming that code, it was discovered that the reader context manager was being entered twice, this has been fixed. Locking around every access to the resource class cache is fairly expensive (changes the perfload job from <2s to >5s). Prior to this change we would only go to cache if the resource classes in the query were not standards. Now we always look at the cache so rather than locking around reads and writes we only lock around writes. This should be okay, because as long as we do a get (intead of the previous two separate accesses) on the cache's dict that operation is safe and if it misses (because something else destroyed the cache) the fall through is to refresh the cache, which still has the lock. While updating the database fixture to ensure that the resource classes are synched properly, it was discovered that addCleanup was being called twice with the same args. That has been fixed. In objects/resource_provider.py the ResourceClass field is changed to a StringField. The field definition was in rc_field and we simply don't need it anymore. This is satisfactory because we don't do any validation on the field internal to the objects (but do elsewhere). Based on initial feedback, 'os_resource_classes' is imported as 'orc' throughout to avoid unwieldy length. Change-Id: Ib7e8081519c3b310cd526284db28c623c8410fbe
This commit is contained in:
parent
cbf283cfe5
commit
8a4605b68c
|
@ -1 +1 @@
|
|||
Subproject commit 3d08aaff7f39b32bb067782c52fa2d3e68f0adf2
|
||||
Subproject commit 289b44f5b4e458ccc665c3711ffb1d988bd2f0e6
|
Loading…
Reference in New Issue