)]}'
{"id":"openstack%2Fblazar~736993","triplet_id":"openstack%2Fblazar~master~Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2","project":"openstack/blazar","branch":"master","topic":"usage-enforcement","hashtags":[],"change_id":"Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2","subject":"Add usage enforcement framework","status":"MERGED","created":"2020-06-19 12:43:31.000000000","updated":"2021-03-24 19:07:03.000000000","submitted":"2021-03-24 19:05:49.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"736993-usage-enforcement","meta_rev_id":"d28d06342e0cc86c63bae773e5e70c415aeb0387","_number":736993,"virtual_id_number":736993,"owner":{"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2021-03-24 19:05:48.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"all":[{"value":0,"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2021-03-24 18:14:37.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"all":[{"value":0,"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2021-03-24 18:14:37.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"}],"reviewers":{"REVIEWER":[{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},{"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-06-19 13:29:11.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-06-29 04:14:17.000000000","updated_by":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"reviewer":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"state":"REVIEWER"},{"updated":"2021-02-24 15:53:35.000000000","updated_by":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"reviewer":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"state":"REVIEWER"}],"messages":[{"id":"8fa02e52a38b71eed617fc36b129d793ae5375df","author":{"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},"date":"2020-06-19 12:43:31.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"65652e04e68993493b8a64e34bd5ac1ed0341c88","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-19 13:29:11.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/368999f16f0e41adacbb888b030c372b : SUCCESS in 11m 15s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/31d34c3f6e514b26b1b56339a9ff549d : SUCCESS in 7m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/796adc0135a5478ab53acc8cf94adb97 : SUCCESS in 6m 48s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c07f0bc916f047908c1af998a4cb1561 : SUCCESS in 9m 05s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/2245732fb6234d08a787039128ac9b1e : SUCCESS in 10m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/875be94d05204e5d99769a3a488b0a1a : FAILURE in 9m 48s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/815437efdd1d430392aa963974af4928 : SUCCESS in 7m 13s\n- blazar-devstack-dsvm https://zuul.opendev.org/t/openstack/build/e74701d287864b99a348916d1704481d : FAILURE in 36m 43s\n- blazar-devstack-dsvm-ipv6-only https://zuul.opendev.org/t/openstack/build/0c19365b650241b38f740320dc38213e : FAILURE in 34m 02s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/06293cb1a77442a9846b093c905e09e9 : FAILURE in 8m 04s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"076ff185f4a38a3daee72814d6148426cb48ab2c","author":{"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},"date":"2020-06-26 21:56:52.000000000","message":"Patch Set 1: Workflow-1","accounts_in_message":[],"_revision_number":1},{"id":"2c1b60361426f6a18cbacbad0a2d5ee1a17f5aa6","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2020-06-29 04:14:17.000000000","message":"Patch Set 1:\n\nrecheck","accounts_in_message":[],"_revision_number":1},{"id":"261db343ee284382a30fbf92c0f520a3e20ecf9e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-29 04:49:43.000000000","message":"Patch Set 1:\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a913821b10124a0995c8dfd978663d47 : SUCCESS in 5m 48s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/69c880b1b0544292b2d19eb43f84a1e1 : SUCCESS in 4m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/93d6fec45ade4cb38c7ae2ea5905d344 : SUCCESS in 5m 26s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ceb73c7cb86d4335a9fb9e7e06e2cb4e : SUCCESS in 5m 46s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/ecad6443414c48849ce1adaf411381e0 : SUCCESS in 5m 27s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d7a6264f7ed84555aae994eb1a698e20 : SUCCESS in 8m 05s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/da64fd1d061e4e909a20201e2cf3d1e1 : SUCCESS in 4m 47s\n- blazar-devstack-dsvm https://zuul.opendev.org/t/openstack/build/3480391368a64e6abc2d355371b0e684 : FAILURE in 32m 08s\n- blazar-devstack-dsvm-ipv6-only https://zuul.opendev.org/t/openstack/build/303e83e81138406cb3f1385be60231bc : FAILURE in 34m 14s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/4405061364a942c4b425010930a06a2b : FAILURE in 6m 07s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"2298876d2ca498ebd145881cf187751681d11b36","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 17:06:10.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"5ce97d174194ae22760798175e201c72f97cee6a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 18:05:00.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7881fc4c45634bf59fb1e249451af1d8 : SUCCESS in 5m 50s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d8b9c5cf9a844bd09d47559e9cf48eb6 : SUCCESS in 6m 07s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9d8254ff2f734010a8f5bc71712fafb8 : SUCCESS in 4m 42s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/b5f283f6199140d99762cba6052c0613 : SUCCESS in 5m 29s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/703af414941044dcbcbc1b70e9f13135 : SUCCESS in 6m 16s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/11932f17310244ed8c27b18d16469ec5 : SUCCESS in 6m 01s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d8dcf0fe07bf49bb8976e3db19244ecb : SUCCESS in 7m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/2a657fddcd7541fea206b75aeed42d7b : SUCCESS in 4m 23s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/1b8f2c5b37e34279ab0d6ff9404bc83e : FAILURE in 32m 29s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/e3bbc249403345ccb1c34b2c3b803dfd : FAILURE in 44m 23s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/430d89bc91e94896b501c500faa59aeb : FAILURE in 4m 54s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"d4ead1e21bcfd3bccbb8c6f6326d0f6c90f4e462","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 18:20:45.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"0cbd0b6a286f566c7c9f1fdaa2d03a96be115d92","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 19:04:22.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/80c941b480584439a901bd7735a91520 : SUCCESS in 6m 48s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/633db085c23b4e2686a41936735c8f0e : SUCCESS in 7m 56s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/21bb18e545164e6594d8e2515d9903c9 : SUCCESS in 5m 05s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/937c9473bc5846e99a8ef40a3a93ab1b : SUCCESS in 6m 09s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/7347beccefc54379a6ded3f7b0634e39 : FAILURE in 38m 44s","accounts_in_message":[],"_revision_number":3},{"id":"37fe3f0e46bc437bd1bf8aa7142cab3835f3c2a9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 19:11:30.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"74d3f0554e5e107f1d999acc12d12d6175ee58bc","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 19:58:07.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/46fdd70d3eeb4aa080defa16af6882f3 : SUCCESS in 5m 02s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/8fd875ea50af4b49ad8b2af3509fa8db : SUCCESS in 10m 53s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/0e11473b79954f98b2543c81e3933307 : SUCCESS in 6m 44s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/593eeb064888411796bc496626a86fdc : SUCCESS in 7m 02s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/507188f3458d495c8ba9467e2e7a9138 : FAILURE in 42m 29s","accounts_in_message":[],"_revision_number":4},{"id":"d9a28d4ace7f92603358bf6bc565d02b15c639f2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 20:16:58.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"1b8d900895221a323fa4c1016f7a1f9dee3aa63a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 21:21:10.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/56e86970a2614dc6936cd14e2ab9ae45 : SUCCESS in 5m 07s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c62a5e496dc6456f9b7d066408291e72 : SUCCESS in 5m 15s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/de1c21ddad89450db73cbed4d02ab91a : SUCCESS in 5m 03s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/119e81b4ae9440459d8cc2821fb4d6af : SUCCESS in 5m 23s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/84a1aee6dcdb4262bbb4a6cd1655ce52 : SUCCESS in 47m 39s","accounts_in_message":[],"_revision_number":5},{"id":"74b30751215ddc3bf4905fdcbcfd71da4e0541c1","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 21:34:35.000000000","message":"Patch Set 5: Code-Review-1\n\nCreating a lease with a longer duration than the configured limit fails with an Internal Server Error. A message can be seen in logs but it is not displayed to users.\n\noslo_messaging.rpc.client.RemoteError: Remote error: MaxLeaseDurationException Lease duration of 86400.0 seconds must be less than or equal to the maximum lease duration of 3600 seconds.","accounts_in_message":[],"_revision_number":5},{"id":"280c606681bc0a9f5db021020d7b2d0a744f85ee","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 22:02:49.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"37afb43d7fe2e510ef4192122d0d6b655f597873","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 22:07:59.000000000","message":"Patch Set 6:\n\n\u003e Patch Set 5: Code-Review-1\n\u003e \n\u003e Creating a lease with a longer duration than the configured limit fails with an Internal Server Error. A message can be seen in logs but it is not displayed to users.\n\u003e \n\u003e oslo_messaging.rpc.client.RemoteError: Remote error: MaxLeaseDurationException Lease duration of 86400.0 seconds must be less than or equal to the maximum lease duration of 3600 seconds.\n\nI fixed this in patch set 6.\n\nMore issues with the lease duration filter:\n\n* it correctly prevents me from creating a longer lease, but I can prolong it\n* lease_extension_window claims to support -1 but no special handling in the code","accounts_in_message":[],"_revision_number":6},{"id":"91fae600646fc7975bf2171238af34fba67661f2","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-02-23 22:08:04.000000000","message":"Patch Set 6: Code-Review-1","accounts_in_message":[],"_revision_number":6},{"id":"985e7ad44e272d6a16b2af76b6c65fc6e99dc572","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 22:52:04.000000000","message":"Patch Set 6: Verified-1\n\n(3 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c277e5096863406797aedb743f5eeb1a : FAILURE in 5m 18s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c9251b25ef1d4003a5d1798eec8a156c : SUCCESS in 5m 14s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/2a1eb19593294ec0a80d2e16fdef6802 : SUCCESS in 5m 30s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/5b0a9dcac8d549f9b9c6643538a28fa6 : SUCCESS in 6m 40s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/0d554618bae643d494a2d52523054ece : SUCCESS in 43m 06s","accounts_in_message":[],"_revision_number":6},{"id":"f53f051cc03e2cafcf339eb30f32a81c692863f1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2021-02-24 15:53:35.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"f9002edffd4e59f1951d5268f47aaa52bc75378c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-24 17:06:06.000000000","message":"Patch Set 7: Verified-1\n\n(5 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/17467052a6944332a04918051c124685 : FAILURE in 5m 48s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/759eddc7437e4399a4baa2cfd42f96b6 : FAILURE in 6m 18s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/e28aca40addc4cdfa025fc6fb56d41a0 : FAILURE in 6m 19s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/ef70788550aa4bdb914e9444cc01f486 : FAILURE in 6m 59s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/3afc8d95149b4877a8eee69cae348594 : FAILURE in 46m 07s","accounts_in_message":[],"_revision_number":7},{"id":"92856ce1f4f5f30f79aee2b1785ffccb5dd60924","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-10 14:50:59.000000000","message":"Topic Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2 removed","accounts_in_message":[],"_revision_number":7},{"id":"78539a3acdc89b4ddbeb173a4fe5fcb9bdec0bbd","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-10 14:53:09.000000000","message":"Topic set to usage-enforcement","accounts_in_message":[],"_revision_number":7},{"id":"c2144755f61f1b9f7d3b5f5e8a4fa9d602bfac4f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-12 15:56:36.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"35410139f0bc4b10ed5141942144572bbd48aa40","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-12 15:56:54.000000000","message":"Patch Set 8: Workflow-1\n\nJust testing for now.","accounts_in_message":[],"_revision_number":8},{"id":"4568bab6e2e8ba554032c9f7fc244dc6ad042192","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-12 16:42:49.000000000","message":"Patch Set 8: Verified-1\n\n(3 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ac8a1163ffa64a34a8d7c9084ccadfa8 : FAILURE in 6m 00s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/e256f8322cfd4d1f8d81e1b0c726d095 : SUCCESS in 6m 58s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/47552e69a0024a249043e7bdfddbb53d : SUCCESS in 6m 05s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/a0880ed6243c4361a14ee57493fe377b : SUCCESS in 7m 36s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/450efd758fc94a0a9d1d8b679adee00b : SUCCESS in 41m 13s","accounts_in_message":[],"_revision_number":8},{"id":"a264c9730243b7dde08bad67df4c75939589e840","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-12 16:53:27.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"6e1aec1c273bfc985ea7eb0f2c674a47c6abe8c5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-12 17:52:25.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f040e6ee1cd447ad98d8047527776461 : SUCCESS in 6m 24s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/4ef77b04c810408a9c1786acac0a99e1 : SUCCESS in 7m 11s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/f2a831076b9a41949dfaddef67ce392f : SUCCESS in 6m 22s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/a0e1b5841bf248168b32bb164b063112 : SUCCESS in 7m 39s (non-voting)\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/9ed1ba58a36447d294ddf8a92403e8f1 : SUCCESS in 50m 44s","accounts_in_message":[],"_revision_number":9},{"id":"eaa62f2fe57d645303e18038ee40ca5299f0d051","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-16 21:18:35.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"1f075050a33c48fae4027be5de12ba076bf7223d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-16 22:06:24.000000000","message":"Patch Set 10: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d4c29b2430e64dd9817ca884805053e8 : SUCCESS in 7m 11s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6f31194bbeaa446197f1435179103d82 : SUCCESS in 10m 28s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ef29a2efa3dc44d387bbaf71ef63a5b6 : SUCCESS in 7m 03s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/834d889c27c04b8292ba1d2c64580f31 : SUCCESS in 7m 13s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/d1ebc786324f40daa0bf9e792c522394 : SUCCESS in 5m 40s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/622893e2748b476d99de58ddad2a7527 : SUCCESS in 7m 03s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1bd815f2cafd4158a8f3c2f3ba9a5ae2 : FAILURE in 10m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/643acfded6824f669b947084cae6bc87 : SUCCESS in 6m 28s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/9168174e081148eb81625acee48cb37a : SUCCESS in 33m 18s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/22082e04c661491fbfb628cf88a556d8 : SUCCESS in 45m 02s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/988fed7ad1724c2ca50f925f82567e90 : FAILURE in 4m 50s (non-voting)","accounts_in_message":[],"_revision_number":10},{"id":"982be877115730f5c6c7aa1ce6980eccad6aa7b2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-17 11:18:44.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"7a3677bd1e1ed36db0696fd586cd55ea56e8ca30","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-17 12:14:16.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/67137ba5580f42ea8ff69500639ac938 : SUCCESS in 7m 35s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8257195d52dd41dba6143b49f7be2497 : SUCCESS in 6m 11s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/21372d29b31544519d8f9df9cd03b765 : SUCCESS in 5m 07s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/50f289e3814a4337949a18755ab46dcc : SUCCESS in 6m 12s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/85d4fc881d794fc2a9a91eef50ffbda8 : SUCCESS in 6m 19s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/fe5e48fb0fde416592df5b85e483ee8a : SUCCESS in 6m 03s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a678ddc907204ac98829af31790fa633 : SUCCESS in 9m 37s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ddb4d5fa858047409ab9bd96181a712d : SUCCESS in 6m 22s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/439445014bdf49b58d217749c5f22b99 : SUCCESS in 35m 47s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/fbd1533ba5f749fe812199b259324186 : SUCCESS in 49m 22s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/f38482ed42554c8086af3d691a6dbf36 : FAILURE in 4m 24s (non-voting)","accounts_in_message":[],"_revision_number":11},{"id":"4ae1cfe2799e33b37a3bdefcb9e63e468ae657c1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-19 17:29:07.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"b267ef3b22918186023b02d8dddd74eee0c4481e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-19 18:34:50.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/907d64a2b9b54067b9d38c0f599a7e66 : SUCCESS in 5m 50s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f00b632b1fd840c6b4271fc52cd3fc79 : SUCCESS in 6m 23s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5ba5f1bd83e54c999c4f34117cd4a44b : SUCCESS in 4m 50s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/cc550f09e5f444ce8f97f09aaa852010 : SUCCESS in 5m 58s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/98be90e47f2d4808ba413c759a79a285 : SUCCESS in 6m 24s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/2038bd5381ef49cba3de8c712999d29c : SUCCESS in 6m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4c035c3aaa71430d890129afbd4c5a9d : SUCCESS in 7m 14s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/88e6685bc1274b9da31c402285e6cb02 : SUCCESS in 4m 55s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/2fd6cba80bbf45758b1bcf81422da612 : SUCCESS in 42m 19s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/101f489cb1a74834af78bbc4ed5fdc23 : SUCCESS in 43m 03s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/e0d3c1026bbe499688abee8369e1dfe1 : FAILURE in 5m 21s (non-voting)","accounts_in_message":[],"_revision_number":12},{"id":"924e18c8edfe8acbbb3f7d3e11191a3beb3f9f90","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-19 21:40:04.000000000","message":"Uploaded patch set 13.","accounts_in_message":[],"_revision_number":13},{"id":"4c2e86580ecd7e08ce3f955478c2aef2e47fc2e8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-19 21:41:00.000000000","message":"Uploaded patch set 14.","accounts_in_message":[],"_revision_number":14},{"id":"f9b23c567f89b97d9d64c6ce315fef0768ee41a8","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-19 21:48:16.000000000","message":"Patch Set 14: Review-Priority+1","accounts_in_message":[],"_revision_number":14},{"id":"d43ad8605b5beaf32591135c3f3fbaccee4d4894","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-19 21:49:52.000000000","message":"Uploaded patch set 15: Commit message was updated.","accounts_in_message":[],"_revision_number":15},{"id":"b69420eda334d487a9cd2cec4cb95e0b6fa5b751","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-19 22:39:59.000000000","message":"Patch Set 15: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/837229ba139f4450826d9cccb85ef069 : SUCCESS in 7m 33s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e4589bb622ca43b792bdcec73496a861 : SUCCESS in 6m 11s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/73a9072eca584903b87b23ec32cdf322 : SUCCESS in 7m 08s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/e98108d750a34bb7bfaf3a7540cc560c : SUCCESS in 6m 59s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/289984eebcd24bf78055826e567c67ef : SUCCESS in 8m 04s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/8c9ecbcbe9f948bc88ffd97872a5de72 : SUCCESS in 9m 05s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5a692118019342da9785fd88550fe274 : SUCCESS in 15m 04s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a5a4d4742efb4cebab0ac2dbb0a64b07 : SUCCESS in 6m 46s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/100c7dc598854777bb1cbc0c11d16832 : SUCCESS in 44m 16s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/66b499b5035040bb9593b272ec2da1ac : SUCCESS in 40m 11s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/9abe6d04695b400e945e3f8815c96199 : FAILURE in 5m 56s (non-voting)","accounts_in_message":[],"_revision_number":15},{"id":"8dfca50a8e18d3ee816e68243b7b46a8912fb8e7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-24 11:33:00.000000000","message":"Uploaded patch set 16.","accounts_in_message":[],"_revision_number":16},{"id":"d4db714852e7db5a920e2184f63a7a0509103189","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 12:14:48.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c4c7615fbc4949df8e05e4d60190e858 : SUCCESS in 6m 11s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fdd142e09dcf48b39fb7b8ae6f61d1b3 : SUCCESS in 6m 43s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/245c459bee4c458ea898afa134c32bba : SUCCESS in 4m 58s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ad2f046503714779a7ed8f48ab1e613f : SUCCESS in 5m 57s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/6ac7f90ad35a4abfb9411cbab0e93a32 : SUCCESS in 7m 07s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/0a9a40f97b4d4f6191de14bf969f3f00 : SUCCESS in 5m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/592e24d4d49448258abe9282081cb1d3 : SUCCESS in 8m 25s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d1734d25abac487b81a3d691c46a01e6 : SUCCESS in 4m 31s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/778416b43a2144fc80af0ee8c27a930d : SUCCESS in 35m 50s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/d8ee7b988d4f470b9c0925b3a351e99d : SUCCESS in 38m 22s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/119edf31147642328bc6ae46000ecb13 : FAILURE in 5m 03s (non-voting)","accounts_in_message":[],"_revision_number":16},{"id":"fc826e3eac7b14065ae97b013d5624fc2d166cef","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-24 14:13:06.000000000","message":"Uploaded patch set 17.","accounts_in_message":[],"_revision_number":17},{"id":"166ea0089a71284659c5c1a534eb0e872e465ba2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-24 14:49:05.000000000","message":"Uploaded patch set 18.","accounts_in_message":[],"_revision_number":18},{"id":"cb828d1e54b8ca6aeee9bec3a68eaa7fa06690f0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 15:45:42.000000000","message":"Patch Set 18: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0b4d6c12ba63499085ac83c7ddcd056c : FAILURE in 5m 39s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/01fbb6608c714c0c936332ba9fb9e18a : FAILURE in 6m 37s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a2edc1e11eda40e399b9e5c10f51279e : SUCCESS in 6m 49s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/7dc5fd4c49324b38809b9cde0cd523d5 : FAILURE in 5m 41s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/98bbf323b3ee44f68e11c61c69fe40fc : FAILURE in 6m 27s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/4d2c4a46bc3e44c084142692c3246338 : FAILURE in 8m 21s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/05103bff7781444e98ccd2efea420dbe : SUCCESS in 9m 25s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/23f9f150250c49f89e9e62383fdb9c1e : SUCCESS in 5m 54s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/80c36e28ff1e4fadae68ea19b653b60e : SUCCESS in 42m 13s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/c17c9d5366a9459784792906450c59b8 : SUCCESS in 43m 36s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/9a07d5e42b434ff0aecae4f2b2286a56 : FAILURE in 5m 30s (non-voting)","accounts_in_message":[],"_revision_number":18},{"id":"6fdcbd27edb14e391fa6286f07c851a8834970d4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-24 15:57:22.000000000","message":"Uploaded patch set 19.","accounts_in_message":[],"_revision_number":19},{"id":"841ba244456b3a27da06ec00f4e2917dfad11c51","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 17:00:35.000000000","message":"Patch Set 19: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6e75d1a54c7844169755b26a5e4f25cc : SUCCESS in 8m 21s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e5d789c484b34147914edee332b8ced5 : SUCCESS in 7m 49s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/af2f858086ce493c885c4ac20b386c45 : SUCCESS in 6m 00s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/09e2cbee7b3c42e0a327661774c72925 : SUCCESS in 9m 30s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/56677fd6839a44f087ba81648663f39f : SUCCESS in 7m 42s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/fc8278f54ac4451cb9c7078c3fa2ebcb : SUCCESS in 8m 37s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5ffda8b71c9d4015ad378d6ea7397a3c : SUCCESS in 9m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/eaa2e8321fe74341b36b6c7491a8c5f2 : SUCCESS in 7m 25s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/9a7d965daef8486786b7058472032ee2 : SUCCESS in 44m 01s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/fc3398a0f57041aeb1c797542efc8da2 : SUCCESS in 43m 40s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/c9c36824c9914168a761b5db4a4251bb : FAILURE in 7m 50s (non-voting)","accounts_in_message":[],"_revision_number":19},{"id":"f8fc706bb0be207179157c4a96d21bfb0c5ce1f0","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2021-03-24 18:14:37.000000000","message":"Patch Set 19: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":19},{"id":"f358efbe9a8c4a89a23e4e8a74c46271b31f4f1e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 18:18:00.000000000","message":"Patch Set 19: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":19},{"id":"580874720f08cd7e5fbf63549569903ff3488409","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 19:05:48.000000000","message":"Patch Set 19: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c7ddf19fb9bb4a81bf60a9ee87022f5b : SUCCESS in 6m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a6bc3d62d5b64f989f8969ed1903d96a : SUCCESS in 6m 23s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/2efffd34f0404a9ead36e78909e1ba1d : SUCCESS in 6m 34s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/49dcec5512fe4f259f1513e4707ee599 : SUCCESS in 6m 47s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/def3e0f4d3a1417887a102c1fa504ff3 : SUCCESS in 11m 30s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1b194a415f474298ae7f7d68b781a3bf : SUCCESS in 6m 18s\n- blazar-tempest-plugin-base https://zuul.opendev.org/t/openstack/build/5b021c4b6b214fa39f75bfbf20213d5e : SUCCESS in 44m 30s\n- blazar-tempest-plugin-ipv6-only https://zuul.opendev.org/t/openstack/build/b84270c9904f4a6abc4b0ab9c0cf8da7 : SUCCESS in 44m 27s","accounts_in_message":[],"_revision_number":19},{"id":"252654fc7454fcfd2b2e26acadf12ab2ac6de2ee","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 19:05:49.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":19},{"id":"d28d06342e0cc86c63bae773e5e70c415aeb0387","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-24 19:07:03.000000000","message":"Patch Set 19:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0d59ed35dfa84df79bf99a39bac1543f : SUCCESS in 50s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/60338e1e1ea74c7b8b8abd929d13933d : SUCCESS in 47s","accounts_in_message":[],"_revision_number":19}],"current_revision_number":19,"current_revision":"d3f77fd0c5a3e09ff52c8563fd07172834372ee7","revisions":{"28329c0fef81647d2fb024efdf20909cd0677715":{"kind":"REWORK","_number":1,"created":"2020-06-19 12:43:31.000000000","uploader":{"_account_id":29270,"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","username":"jakecoll2"},"ref":"refs/changes/93/736993/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/1"}}},"commit":{"parents":[{"commit":"0c3ac1911dcbcb1291001883af0d3ff42654c77a","subject":"Merge \"Switch to newer openstackdocstheme and reno versions\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/0c3ac1911dcbcb1291001883af0d3ff42654c77a"}]}],"author":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-05-08 14:15:22.000000000","tz":-300},"committer":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-06-19 12:43:30.000000000","tz":-300},"subject":"Add Usage Enforcement Filters","message":"Add Usage Enforcement Filters\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/28329c0fef81647d2fb024efdf20909cd0677715"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/28329c0fef81647d2fb024efdf20909cd0677715"}]},"branch":"refs/heads/master"},"cb02386377c6d46b739ea4c10eb0a61ea4ebb6bb":{"kind":"REWORK","_number":2,"created":"2021-02-23 17:06:10.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/2"}}},"commit":{"parents":[{"commit":"d14668ba051180430359d01e9cf22449492394f8","subject":"Drop unused sqlalchemy-migrate requirement","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/d14668ba051180430359d01e9cf22449492394f8"}]}],"author":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-05-08 14:15:22.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-02-23 17:05:32.000000000","tz":60},"subject":"Add Usage Enforcement Filters","message":"Add Usage Enforcement Filters\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/cb02386377c6d46b739ea4c10eb0a61ea4ebb6bb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/cb02386377c6d46b739ea4c10eb0a61ea4ebb6bb"}]},"branch":"refs/heads/master"},"4825ccd19d74882eca9cfb22eba59eeb86e11180":{"kind":"REWORK","_number":3,"created":"2021-02-23 18:20:45.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/3"}}},"commit":{"parents":[{"commit":"d14668ba051180430359d01e9cf22449492394f8","subject":"Drop unused sqlalchemy-migrate requirement","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/d14668ba051180430359d01e9cf22449492394f8"}]}],"author":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-05-08 14:15:22.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-02-23 18:20:35.000000000","tz":60},"subject":"Add Usage Enforcement Filters","message":"Add Usage Enforcement Filters\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/4825ccd19d74882eca9cfb22eba59eeb86e11180"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/4825ccd19d74882eca9cfb22eba59eeb86e11180"}]},"branch":"refs/heads/master"},"99d8cfc1de15c9bb9c6e47eb467a2e6d4012fe2f":{"kind":"REWORK","_number":4,"created":"2021-02-23 19:11:30.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/4"}}},"commit":{"parents":[{"commit":"2d95b84e7db3c26bfd08efe66ea1dcc7654670f3","subject":"Merge \"remove unicode from code\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/2d95b84e7db3c26bfd08efe66ea1dcc7654670f3"}]}],"author":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-05-08 14:15:22.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-02-23 19:09:10.000000000","tz":60},"subject":"Add Usage Enforcement Filters","message":"Add Usage Enforcement Filters\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/99d8cfc1de15c9bb9c6e47eb467a2e6d4012fe2f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/99d8cfc1de15c9bb9c6e47eb467a2e6d4012fe2f"}]},"branch":"refs/heads/master"},"0ee6685a49eb72830d35bee627a4861eef21d6ab":{"kind":"REWORK","_number":5,"created":"2021-02-23 20:16:58.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/5"}}},"commit":{"parents":[{"commit":"2d95b84e7db3c26bfd08efe66ea1dcc7654670f3","subject":"Merge \"remove unicode from code\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/2d95b84e7db3c26bfd08efe66ea1dcc7654670f3"}]}],"author":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-05-08 14:15:22.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-02-23 20:16:50.000000000","tz":60},"subject":"Add Usage Enforcement Filters","message":"Add Usage Enforcement Filters\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/0ee6685a49eb72830d35bee627a4861eef21d6ab"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/0ee6685a49eb72830d35bee627a4861eef21d6ab"}]},"branch":"refs/heads/master"},"fefb78f8f4b3efdc496a0998b44b57551671ab81":{"kind":"REWORK","_number":6,"created":"2021-02-23 22:02:49.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/6"}}},"commit":{"parents":[{"commit":"2d95b84e7db3c26bfd08efe66ea1dcc7654670f3","subject":"Merge \"remove unicode from code\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/2d95b84e7db3c26bfd08efe66ea1dcc7654670f3"}]}],"author":{"name":"jakecoll","email":"jakecoll@uchicago.edu","date":"2020-05-08 14:15:22.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-02-23 22:02:36.000000000","tz":60},"subject":"Add Usage Enforcement Filters","message":"Add Usage Enforcement Filters\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/fefb78f8f4b3efdc496a0998b44b57551671ab81"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/fefb78f8f4b3efdc496a0998b44b57551671ab81"}]},"branch":"refs/heads/master"},"eacc5fc66ff7b9213ed0b7a7071a5a7a77641bca":{"kind":"REWORK","_number":7,"created":"2021-02-24 15:53:35.000000000","uploader":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"ref":"refs/changes/93/736993/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/7"}}},"commit":{"parents":[{"commit":"2d95b84e7db3c26bfd08efe66ea1dcc7654670f3","subject":"Merge \"remove unicode from code\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/2d95b84e7db3c26bfd08efe66ea1dcc7654670f3"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2021-02-24 15:52:55.000000000","tz":-360},"subject":"Add Usage Enforcement Filters (#33)","message":"Add Usage Enforcement Filters (#33)\n\nImplements filter based architexture for usage enforcement. Two filters\nare included initially. MaxReservationsLengthFilter allows operators\nto define the maximum reservation length of a lease in seconds.\nThe ExternalServiceFilter sends lease values and allocation\ncandidates to an external HTTP service where policies can be defined.\nAll filters must be enabled in blazar.conf in an enforcement group.\n\nWhen ending a lease, the allocations currently associated with the\nlease/reservation are sent to the enforcement layers to perform\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is \u003e the lease\u0027s\nrecorded end time, the allocation lookup returns 0 results because\nwe have a filter on the time of the lease/reservation by default,\nwhich starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end\nhook to run multiple times if the first reservation teardown failed.\nIn this circumstance, the end_lease event would be IN_PROGRESS but\nthe reservations would be in an error state. The code only checks\nif any reservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was\nan UNDONE end_lease event; that\u0027s the only time in which we\u0027ll\nactually be responsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with\nthe internal way we track states. It is not enough to check dates,\nbecause it could be that Blazar never got around to actually\nstarting the leases; we should be checking events. This also makes\nthe logic a bit easier to understand.\n\nNOTE::\n  This also fixes something which has probably been a bug for a\n  very long time. The \u0027end\u0027 event was never set to \u0027DONE\u0027 when\n  a lease was terminated early by the user (via a deletion.)\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/eacc5fc66ff7b9213ed0b7a7071a5a7a77641bca"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/eacc5fc66ff7b9213ed0b7a7071a5a7a77641bca"}]},"branch":"refs/heads/master"},"37a4f12fdef72b6bb5873af60d778415c1eb6e1f":{"kind":"REWORK","_number":8,"created":"2021-03-12 15:56:36.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/8"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-12 15:52:21.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nTwo filters are included initially. MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. The\nExternalServiceFilter sends lease values and allocation candidates to an\nexternal HTTP service where policies can be defined. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/37a4f12fdef72b6bb5873af60d778415c1eb6e1f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/37a4f12fdef72b6bb5873af60d778415c1eb6e1f"}]},"branch":"refs/heads/master"},"f55966c63a70c8af3fef5e590ee2271d78027d5e":{"kind":"REWORK","_number":9,"created":"2021-03-12 16:53:27.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/9"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-12 16:53:19.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nTwo filters are included initially. MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. The\nExternalServiceFilter sends lease values and allocation candidates to an\nexternal HTTP service where policies can be defined. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/f55966c63a70c8af3fef5e590ee2271d78027d5e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/f55966c63a70c8af3fef5e590ee2271d78027d5e"}]},"branch":"refs/heads/master"},"6473e5f6716636d1d2444e21e4c71f3958a5c0c7":{"kind":"REWORK","_number":10,"created":"2021-03-16 21:18:35.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/10"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-16 21:18:26.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nTwo filters are included initially. MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. The\nExternalServiceFilter sends lease values and allocation candidates to an\nexternal HTTP service where policies can be defined. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/6473e5f6716636d1d2444e21e4c71f3958a5c0c7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/6473e5f6716636d1d2444e21e4c71f3958a5c0c7"}]},"branch":"refs/heads/master"},"7f9b888f2aca7a6076bcf97d36a981909293a8e4":{"kind":"REWORK","_number":11,"created":"2021-03-17 11:18:44.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/11"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-17 11:18:37.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nTwo filters are included initially. MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. The\nExternalServiceFilter sends lease values and allocation candidates to an\nexternal HTTP service where policies can be defined. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/7f9b888f2aca7a6076bcf97d36a981909293a8e4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/7f9b888f2aca7a6076bcf97d36a981909293a8e4"}]},"branch":"refs/heads/master"},"69957de78585a46851f939d9d6d18df61bf74422":{"kind":"REWORK","_number":12,"created":"2021-03-19 17:29:07.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/12"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-19 17:18:42.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nTwo filters are included initially. MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. The\nExternalServiceFilter sends lease values and allocation candidates to an\nexternal HTTP service where policies can be defined. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/69957de78585a46851f939d9d6d18df61bf74422"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/69957de78585a46851f939d9d6d18df61bf74422"}]},"branch":"refs/heads/master"},"568209b262b66becdd1ee44a20392ea52e2d5a9a":{"kind":"REWORK","_number":13,"created":"2021-03-19 21:40:04.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/13"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-19 21:39:29.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter isincluded initially: MaxLeaseDurationFilter allows operators\nto define the maximum duration of a lease in seconds. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/568209b262b66becdd1ee44a20392ea52e2d5a9a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/568209b262b66becdd1ee44a20392ea52e2d5a9a"}]},"branch":"refs/heads/master"},"255ac69f2837ead1f40ed625dc67f3a430179eb3":{"kind":"REWORK","_number":14,"created":"2021-03-19 21:41:00.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/14"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-19 21:40:51.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter isincluded initially: MaxLeaseDurationFilter allows operators\nto define the maximum duration of a lease in seconds. All filters must\nbe enabled in blazar.conf in the [enforcement] group.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/255ac69f2837ead1f40ed625dc67f3a430179eb3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/255ac69f2837ead1f40ed625dc67f3a430179eb3"}]},"branch":"refs/heads/master"},"78f2c2981bf68dd679587321cd5f06a361b5e0e2":{"kind":"NO_CODE_CHANGE","_number":15,"created":"2021-03-19 21:49:52.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/15"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-19 21:48:59.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter is initially included: MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. All\nfilters must be enabled and configured in the [enforcement] group of\nblazar.conf.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/78f2c2981bf68dd679587321cd5f06a361b5e0e2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/78f2c2981bf68dd679587321cd5f06a361b5e0e2"}]},"branch":"refs/heads/master"},"7753e19dc7ee1663debee6c1474b727eb8372f0b":{"kind":"REWORK","_number":16,"created":"2021-03-24 11:33:00.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/16"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-24 11:32:53.000000000","tz":60},"subject":"Add usage enforcement feature","message":"Add usage enforcement feature\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter is initially included: MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. All\nfilters must be enabled and configured in the [enforcement] group of\nblazar.conf.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/7753e19dc7ee1663debee6c1474b727eb8372f0b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/7753e19dc7ee1663debee6c1474b727eb8372f0b"}]},"branch":"refs/heads/master"},"813514ad64bac9977de1138c3224f90eeced6b5b":{"kind":"REWORK","_number":17,"created":"2021-03-24 14:13:06.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/17"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-24 14:12:24.000000000","tz":60},"subject":"Add usage enforcement framework","message":"Add usage enforcement framework\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter is initially included: MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. All\nfilters must be enabled and configured in the [enforcement] group of\nblazar.conf.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/813514ad64bac9977de1138c3224f90eeced6b5b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/813514ad64bac9977de1138c3224f90eeced6b5b"}]},"branch":"refs/heads/master"},"f767b4331ba1e97b2baa87cff071190998cd49ce":{"kind":"REWORK","_number":18,"created":"2021-03-24 14:49:05.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/18"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-24 14:48:58.000000000","tz":60},"subject":"Add usage enforcement framework","message":"Add usage enforcement framework\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter is initially included: MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. All\nfilters must be enabled and configured in the [enforcement] group of\nblazar.conf.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/f767b4331ba1e97b2baa87cff071190998cd49ce"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/f767b4331ba1e97b2baa87cff071190998cd49ce"}]},"branch":"refs/heads/master"},"d3f77fd0c5a3e09ff52c8563fd07172834372ee7":{"kind":"REWORK","_number":19,"created":"2021-03-24 15:57:22.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/93/736993/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/blazar","ref":"refs/changes/93/736993/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/blazar refs/changes/93/736993/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/blazar refs/changes/93/736993/19"}}},"commit":{"parents":[{"commit":"77cf9028b4331ba809e9be9afa1f45927c838fee","subject":"Change dashes to underscore in setup.cfg","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/77cf9028b4331ba809e9be9afa1f45927c838fee"}]}],"author":{"name":"Jacob Colleran","email":"jakecoll@uchicago.edu","date":"2020-08-10 16:26:49.000000000","tz":-300},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2021-03-24 15:57:13.000000000","tz":60},"subject":"Add usage enforcement framework","message":"Add usage enforcement framework\n\nImplements filter-based architecture for usage enforcement.\n\nOne filter is initially included: MaxLeaseDurationFilter allows\noperators to define the maximum duration of a lease in seconds. All\nfilters must be enabled and configured in the [enforcement] group of\nblazar.conf.\n\nWhen ending a lease, the allocations currently associated with the\nreservations of the lease are sent to the enforcement layer for\nprocessing. This works fine when deleting a lease, but when a lease\nnaturally ends, that is, when the current time is greater than the\nlease\u0027s recorded end time, the allocation lookup returns 0 results\nbecause we have a filter on the time of the lease/reservation by\ndefault, which starts from datetime.now. This is really not what we want\nto do when explicitly filtering on a lease/reservation, so this updates\nthe generic query function to not apply this filtering in this case.\n\nIt turns out, it was possible for usage enforcement\u0027s on_end hook to run\nmultiple times if the first reservation teardown failed. In this\ncircumstance, the end_lease event would be IN_PROGRESS but the\nreservations would be in an error state. The code only checks if any\nreservation is DELETED before trying to run on_end again.\n\nTo fix this, only try to run on_end if we detected that there was an\nUNDONE end_lease event; that\u0027s the only time in which we\u0027ll actually be\nresponsible for running this logic.\n\nThis also updates the delete logic to be a bit more consistent with the\ninternal way we track states. It is not enough to check dates, because\nit could be that Blazar never got around to actually starting the\nleases; we should be checking events. This also makes the logic a bit\neasier to understand.\n\nChange-Id: Ic106bee4fc3f5c401c4f8d8ecb1c4e735560bcc2\nCo-Authored-By: Jason Anderson \u003cjasonanderson@uchicago.edu\u003e\nCo-Authored-By: Pierre Riteau \u003cpierre@stackhpc.com\u003e\nImplements: blueprint flexible-reservation-usage-enforcement\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/d3f77fd0c5a3e09ff52c8563fd07172834372ee7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/blazar/commit/d3f77fd0c5a3e09ff52c8563fd07172834372ee7"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
