)]}'
{"id":"openstack%2Fswift~212824","triplet_id":"openstack%2Fswift~master~Id11c391da545bc3851a5b687f4b06e0d9239bdcd","project":"openstack/swift","branch":"master","topic":"dark_data_03","hashtags":[],"change_id":"Id11c391da545bc3851a5b687f4b06e0d9239bdcd","subject":"Let developers/operators add watchers to object audit","status":"ABANDONED","created":"2015-08-13 22:38:03.000000000","updated":"2021-01-05 21:35:01.000000000","total_comment_count":40,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"1b1b507eb7f1f822cf1a5414c1a6d5bfe4b818bc","_number":212824,"virtual_id_number":212824,"owner":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"tag":"autogenerated:zuul:check","value":1,"date":"2020-01-16 18:23:09.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":-1,"date":"2020-01-16 16:02:35.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-08-19 11:56:29.000000000","updated_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"reviewer":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"state":"REVIEWER"},{"updated":"2015-12-21 22:14:04.000000000","updated_by":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"reviewer":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"state":"REVIEWER"},{"updated":"2015-12-22 00:21:42.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2016-01-20 21:55:51.000000000","updated_by":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"reviewer":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"state":"REVIEWER"},{"updated":"2016-01-21 02:02:07.000000000","updated_by":{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},"reviewer":{"_account_id":14766,"name":"Kazuhiro MIYAHARA","email":"miyahara.kazuhiro@lab.ntt.co.jp","username":"miyahara"},"state":"REVIEWER"},{"updated":"2016-02-02 17:51:25.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"},{"updated":"2016-02-18 00:04:21.000000000","updated_by":{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},"reviewer":{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},"state":"REVIEWER"},{"updated":"2016-02-26 08:30:47.000000000","updated_by":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2016-07-07 15:14:22.000000000","updated_by":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"reviewer":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"state":"REVIEWER"},{"updated":"2019-02-01 15:03:10.000000000","updated_by":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"reviewer":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"state":"REVIEWER"},{"updated":"2019-12-17 01:46:48.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2020-01-11 15:56:57.000000000","updated_by":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"reviewer":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"state":"REVIEWER"},{"updated":"2020-01-15 17:57:15.000000000","updated_by":{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},"reviewer":{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},"state":"REVIEWER"},{"updated":"2020-01-16 18:23:09.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"}],"messages":[{"id":"4ef857235b9c678733c79df8e108c7ea5da67a2e","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-08-13 22:38:03.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"95e9499b60b29cbcf8c03fe9bfcac93f27b5dcab","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-08-13 23:39:18.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/1/check/gate-swift-pep8/8d39cf0/ : SUCCESS in 1m 40s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/1/check/gate-swift-docs/cfdb1be//doc/build/html/ : SUCCESS in 3m 19s\n- gate-swift-python27 http://logs.openstack.org/24/212824/1/check/gate-swift-python27/965fee5/ : SUCCESS in 6m 01s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/1/check/gate-swift-tox-func/8250b1a/ : SUCCESS in 5m 15s (non-voting)\n- gate-swift-python34 http://logs.openstack.org/24/212824/1/check/gate-swift-python34/bf51503/ : FAILURE in 3m 13s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/1/check/gate-tempest-dsvm-full/6a9795c/ : SUCCESS in 57m 15s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/1/check/gate-grenade-dsvm/53eabf5/ : SUCCESS in 49m 39s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/1/check/gate-swift-dsvm-functional/dbea367/ : SUCCESS in 32m 51s","accounts_in_message":[],"_revision_number":1},{"id":"0ff74bc5cc25135529306c93208011b272cdb5d3","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2015-08-14 00:09:51.000000000","message":"Patch Set 1:\n\nBuild succeeded \n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/778/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2136/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/181/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"8502578fc2cffebfa5488ea28a68f0043494a8a8","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2015-08-19 11:56:29.000000000","message":"Patch Set 1: Code-Review+1\n\n(1 comment)\n\nThis is a great idea, I really like it! I used the following code to test this:\n\nhttp://paste.openstack.org/show/421752/\n\nHowever, I would like to be able to use the object location in the watcher as well. For example, I might be interested to do some computation on the object data itself.","accounts_in_message":[],"_revision_number":1},{"id":"d0b63ac49751fa7d19b9d3f75cec4bf56e958ae4","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-08-19 22:04:51.000000000","message":"Patch Set 1:\n\nI thought about adding access to the object data, but I have a super-top-secret plan to someday use splice() and MD5 sockets to do etag checks in the kernel instead of going through the Python interpreter for efficiency, and letting watchers see object data makes my future self\u0027s life harder. :)","accounts_in_message":[],"_revision_number":1},{"id":"b0c7b367da1ff7285f0c3e94b245fb263e0df52b","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-08-25 17:18:00.000000000","message":"Patch Set 1: Workflow-1\n\nDarrell Bishop pointed out that this could really use some process-level isolation to protect the auditor from long-running watchers. I\u0027ll throw that together and see what it looks like.","accounts_in_message":[],"_revision_number":1},{"id":"87db50f22fd5ea5b76c95443b8614b3a6cf58704","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-09-18 21:17:14.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"b336cb2c2e873565748591c417b7928892684400","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-09-18 22:11:43.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/2/check/gate-swift-pep8/50c76d0/ : SUCCESS in 2m 03s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/2/check/gate-swift-docs/2473f03//doc/build/html/ : SUCCESS in 3m 52s\n- gate-swift-python27 http://logs.openstack.org/24/212824/2/check/gate-swift-python27/4691dda/ : SUCCESS in 4m 21s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/2/check/gate-swift-tox-func/ff283c3/ : SUCCESS in 5m 49s (non-voting)\n- gate-swift-python34 http://logs.openstack.org/24/212824/2/check/gate-swift-python34/9af63c6/ : FAILURE in 3m 07s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/2/check/gate-tempest-dsvm-full/73d46de/ : SUCCESS in 52m 20s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/2/check/gate-grenade-dsvm/7ade21a/ : SUCCESS in 37m 14s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/2/check/gate-swift-dsvm-functional/7bc7cee/ : SUCCESS in 27m 31s","accounts_in_message":[],"_revision_number":2},{"id":"9e22174c6a1d80fac5a295221b67511071ee5970","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2015-09-18 22:44:39.000000000","message":"Patch Set 2:\n\nBuild succeeded \n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1217/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2576/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/620/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/195/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"51127b8b5562e4bb592e293791d8ba1b53ecae14","author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"date":"2015-09-21 13:01:11.000000000","message":"Patch Set 2:\n\nsomehow I feel uneasy about generically extending the role of the auditor to also do some user defined function even w/some protections for misbehaving watchers.  Feels like this should almost be a separate optional daemon or the auditor converted to a \"an object walker\" or something where auditing is a watcher. I dunno, feel free to ignore me...","accounts_in_message":[],"_revision_number":2},{"id":"2af12208572258a2c4b422334292489f34e5b500","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-09-21 15:30:16.000000000","message":"Patch Set 2:\n\nIt\u0027s mostly because the auditor has such a huge IO cost. By doing this here, we can get it for free (with respect to IO), whereas a standalone filesystem-walker will incur another big pile of IO.","accounts_in_message":[],"_revision_number":2},{"id":"76d49ff8d31c5d3c47295524d1501ff19484df48","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-10-28 02:51:01.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"7185041edebb750ce1f490542f764c1967a0c94a","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-10-28 02:51:50.000000000","message":"Patch Set 3:\n\nI threw the policy index in there too. That way the watcher code can get the policy without having to go ask the container servers. (The object auditor gets it from the filenames on disk, FWIW)","accounts_in_message":[],"_revision_number":3},{"id":"6b1a5fa30460fbe83aabb75c7f77c54327065ed7","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2015-10-28 03:36:03.000000000","message":"Patch Set 3:\n\nBuild succeeded \n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2912/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/956/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1553/ssbench : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/669/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"98a797ce93bcfd8ad596d6342e586418b1836fda","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-10-28 03:43:58.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/3/check/gate-swift-pep8/465bbd1/ : SUCCESS in 3m 27s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/3/check/gate-swift-docs/9863c90//doc/build/html/ : SUCCESS in 3m 16s\n- gate-swift-python27 http://logs.openstack.org/24/212824/3/check/gate-swift-python27/b08eee7/ : SUCCESS in 4m 55s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/3/check/gate-swift-tox-func/05eaa74/ : SUCCESS in 5m 34s\n- gate-swift-python34 http://logs.openstack.org/24/212824/3/check/gate-swift-python34/5dac144/ : FAILURE in 2m 59s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/3/check/gate-tempest-dsvm-full/1ac53c4/ : SUCCESS in 41m 28s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/3/check/gate-grenade-dsvm/49dcc81/ : SUCCESS in 49m 05s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/3/check/gate-swift-dsvm-functional/f8d85b1/ : SUCCESS in 28m 14s","accounts_in_message":[],"_revision_number":3},{"id":"de1534ba82d56ecc1333dff591688de3eab01517","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-11-19 22:54:21.000000000","message":"Patch Set 3: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":3},{"id":"a430a1cb99d7b2249193e9e9b86823de7654d699","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-11-19 23:09:39.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"f9b3b07f8ec228acceff2e4f0f883a8b922191ce","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-11-19 23:10:23.000000000","message":"Patch Set 4:\n\nThe only conflict was in the import lines. Nothing interesting changed.","accounts_in_message":[],"_revision_number":4},{"id":"df161484f4531b122d29776515d90e4a526cc5b0","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2015-11-19 23:36:01.000000000","message":"Patch Set 4:\n\nI think this is less useful w/o a fix for lp bug #212824 - but if that *was* fixed, then yeah - I\u0027d think this would be useful to work on.\n\nI\u0027m confused if this gets called by the zbf scan or the md5 scan - or both?  I also think the subprocesses could die (and become a zomebie if we never wait on it) but the objects keep getting stuffed int the IPC queue?\n\nThis needs docs.\n\nIf you have any example project (maybe on github) that implements this interface that\u0027d be useful to get me started too - otherwise I have to write some to review this - which I\u0027ll probably have to do anyway - but I was sort of assuming you already wrote something when you were testing this that I could just crib?","accounts_in_message":[],"_revision_number":4},{"id":"0a41d6b42ff928b732c82919d5b153ad8f68821a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-11-20 00:53:56.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/4/check/gate-swift-pep8/cb468d2/ : SUCCESS in 2m 49s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/4/check/gate-swift-docs/96029bd//doc/build/html/ : SUCCESS in 2m 48s\n- gate-swift-python27 http://logs.openstack.org/24/212824/4/check/gate-swift-python27/5f79657/ : SUCCESS in 4m 24s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/4/check/gate-swift-tox-func/ad6be2c/ : SUCCESS in 5m 41s\n- gate-swift-python34 http://logs.openstack.org/24/212824/4/check/gate-swift-python34/23c187c/ : FAILURE in 3m 11s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/4/check/gate-tempest-dsvm-full/e8b3d20/ : SUCCESS in 42m 39s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/4/check/gate-grenade-dsvm/35685e2/ : SUCCESS in 55m 54s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/4/check/gate-swift-dsvm-functional/5700f41/ : SUCCESS in 28m 52s","accounts_in_message":[],"_revision_number":4},{"id":"7f5ebf57e35adf59c229060daecb0dbd244876ce","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2015-11-20 01:09:39.000000000","message":"Patch Set 4:\n\nBuild Failed \n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/3126/ : FAILURE\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1170/ : FAILURE\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1767/ssbench : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/887/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":4},{"id":"57b68173802872f002cf8a967d95dff6855f43cb","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2015-12-21 22:14:04.000000000","message":"Patch Set 4:\n\nclay, which bug? That looks like a non-swift bug number","accounts_in_message":[],"_revision_number":4},{"id":"3516d1df3d4b01af63bbd9d320514c19875db559","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-12-22 00:15:47.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"67dcf14b332f0e98e8d656539c0d11d4d7e60e35","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2015-12-22 00:16:42.000000000","message":"Patch Set 5:\n\nI just added a debug-logging statement so you can see how many watchers were found. Helps if you\u0027re not sure if you got the configuration right or not.\n\nNo other changes.","accounts_in_message":[],"_revision_number":5},{"id":"6421982342446b67bde5ba5c2cd1a5422d1f8d28","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2015-12-22 00:21:42.000000000","message":"Patch Set 5:\n\n(1 comment)\n\nthis isn\u0027t an operator feature at this point - it\u0027s a developer hook for building operator features\n\nstill think lp bug #1183656 should be fixed first","accounts_in_message":[],"_revision_number":5},{"id":"15d930cbfa7c51ab2ec78a5fae247113f5701ae6","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2015-12-22 01:04:10.000000000","message":"Patch Set 5:\n\nBuild succeeded \n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1255/probetests/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1537/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2133/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/3498/ : SUCCESS","accounts_in_message":[],"_revision_number":5},{"id":"ad94d954fd5b21b5c712e1f693fc5edddd1f0fa8","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-12-22 01:16:00.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/5/check/gate-swift-pep8/0784f42/ : SUCCESS in 1m 14s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/5/check/gate-swift-docs/841ef7e//doc/build/html/ : SUCCESS in 2m 40s\n- gate-swift-python27 http://logs.openstack.org/24/212824/5/check/gate-swift-python27/11569c5/ : SUCCESS in 4m 21s\n- gate-swift-python34 http://logs.openstack.org/24/212824/5/check/gate-swift-python34/32beffe/ : SUCCESS in 2m 48s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/5/check/gate-swift-tox-func/c67ed50/ : SUCCESS in 4m 04s\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/5/check/gate-tempest-dsvm-full/872af8c/ : SUCCESS in 58m 54s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/5/check/gate-grenade-dsvm/badb990/ : SUCCESS in 50m 22s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/5/check/gate-swift-dsvm-functional/9326bf1/ : SUCCESS in 37m 44s","accounts_in_message":[],"_revision_number":5},{"id":"48d65e4022f2be319f6255e9839d138079949a45","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-06 22:37:42.000000000","message":"Patch Set 5:\n\n(7 comments)\n\nHaven\u0027t really started playing around with it, but I\u0027ve got a few thoughts from reading.","accounts_in_message":[],"_revision_number":5},{"id":"c422b4597ef58895fc318ef80b154eb14d5628d2","author":{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},"date":"2016-01-09 02:42:26.000000000","message":"Patch Set 5:\n\nThis is a great idea and neat new feature. It’s been very useful in my Get Accounts by Cluster patch too, thanks Samuel!\n\nI have played with the code and agree with the points Tim brought up.\n\nI’m glad you’ve added to the commit message with more details, I’d love to see some of that go into the docs. Working out the code and making my own watchers was tricky without an example, once you linked the skeleton example (https://github.com/smerritt/basic-audit-watcher) that helped a lot. I can see how a bit more logging would also be useful, while debugging I added a logs all over the place.\n\n“audit_type” is a bit vague and gets more confusing when you bring in the idea of Account and Container audit watchers. A bit of abstraction could go a long way for this patch. The code is already flexible and can be used for Accounts without much tweaking, the see_object method and parameters would need changing but otherwise seems to work well :)\n\nI can’t say much about the expected time/load for auditing or watcher processes because I’ve been testing a pretty basic watcher on a pretty empty saio, but I it looks to be a much neater and more efficient solution than adding more file-system crawlers.","accounts_in_message":[],"_revision_number":5},{"id":"bd04666e28e972f348a788fa1d8d3c749df83ac9","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-14 13:15:34.000000000","message":"Patch Set 5: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":5},{"id":"b78090f87a8be82ba3cd87ed67744a60baff9329","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2016-01-14 22:58:34.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"6afc525e8c3e744b750c8b3a98bbebbdeb017444","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-15 00:19:01.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/6/check/gate-swift-pep8/469166e/ : SUCCESS in 1m 30s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/6/check/gate-swift-docs/cb1b2b3//doc/build/html/ : SUCCESS in 2m 31s\n- gate-swift-python27 http://logs.openstack.org/24/212824/6/check/gate-swift-python27/3f12335/ : SUCCESS in 4m 04s\n- gate-swift-python34 http://logs.openstack.org/24/212824/6/check/gate-swift-python34/a21c9b5/ : SUCCESS in 2m 33s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/6/check/gate-swift-tox-func/f38f043/ : SUCCESS in 4m 04s\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/6/check/gate-tempest-dsvm-full/2ca1903/ : SUCCESS in 53m 18s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/6/check/gate-grenade-dsvm/fcce1b5/ : SUCCESS in 41m 48s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/6/check/gate-swift-dsvm-functional/e2a91a7/ : SUCCESS in 30m 12s","accounts_in_message":[],"_revision_number":6},{"id":"818bb505e428eb3c1dd897b71a4b5e40fee501e5","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-01-15 01:13:16.000000000","message":"Patch Set 6:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1721/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1440/probetests/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2317/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/3680/ : SUCCESS","accounts_in_message":[],"_revision_number":6},{"id":"3de47b6687f1fdbeb9f70f83dbb511f3f0e474d2","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-18 13:01:10.000000000","message":"Patch Set 6: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":6},{"id":"514488922bb52804c4574962ad44d91146144a22","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2016-01-19 22:26:02.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"385fa4194a358110bbda83f25d6d8c8d19050624","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-19 23:39:27.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/7/check/gate-swift-pep8/0707068/ : SUCCESS in 1m 35s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/7/check/gate-swift-docs/3da6be7//doc/build/html/ : SUCCESS in 2m 55s\n- gate-swift-python27 http://logs.openstack.org/24/212824/7/check/gate-swift-python27/af1d124/ : SUCCESS in 4m 18s\n- gate-swift-python34 http://logs.openstack.org/24/212824/7/check/gate-swift-python34/838892c/ : SUCCESS in 2m 37s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/7/check/gate-swift-tox-func/56f60f4/ : SUCCESS in 4m 25s\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/7/check/gate-tempest-dsvm-full/b625da2/ : SUCCESS in 50m 53s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/7/check/gate-grenade-dsvm/2574b0d/ : SUCCESS in 43m 53s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/7/check/gate-swift-dsvm-functional/633fc05/ : SUCCESS in 37m 08s","accounts_in_message":[],"_revision_number":7},{"id":"03a66912c6a15cc308df3b74401f211c39bee6ea","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-01-20 14:40:17.000000000","message":"Patch Set 7:\n\nBuild succeeded \n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1805/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/1524/probetests/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2401/ssbench : SUCCESS\n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/3764/ : SUCCESS","accounts_in_message":[],"_revision_number":7},{"id":"fa11a6eb599d9fe58970b5903412b0d952e4c98e","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-23 00:31:55.000000000","message":"Patch Set 7: Code-Review-1\n\n(3 comments)\n\nI implemented a little toy thing at https://gist.github.com/tipabu/436033be2749daa248be -- seems to work as expected.\n\nThere are definitely a few ergonomic issues, though.","accounts_in_message":[],"_revision_number":7},{"id":"c0d94c0cbe0c7d6a6018babdd11c73cf882e5fa6","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-01-27 17:13:43.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"495576f78b394db57a60390891e95b1af3abd1cd","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2016-02-02 17:51:25.000000000","message":"Patch Set 7: Code-Review-1\n\n(8 comments)\n\nSorry it took me so long to get to review this. The idea is nice. I have a few comments inline, a couple of blockers (the Full reference, passing the conf dict to alien code) and would really like to be able to construct a diskfile in a watcher.\n\nI didn\u0027t look through the tests yet.","accounts_in_message":[],"_revision_number":7},{"id":"029bd1644d7f492a3e9d15bdf3e147675ced8af9","author":{"_account_id":18978,"name":"Catherine Northcott","email":"catherine@northcott.nz","username":"Zyric"},"date":"2016-02-18 00:04:21.000000000","message":"Patch Set 7:\n\n(1 comment)\n\nJust a small suggestion to help with code sharing.","accounts_in_message":[],"_revision_number":7},{"id":"f270fc519297b1809ede25ae76ddc30afe3e5799","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2016-02-25 19:13:04.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"3e4e3cc240bf07fc6dedc51a7dfc3ca1e86c155f","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2016-02-25 20:18:24.000000000","message":"Patch Set 8: Workflow-1\n\nstill got that one stupid test","accounts_in_message":[],"_revision_number":8},{"id":"c62e5a0f2195787a5df4c5dd808eb0fdd2dd9095","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2016-02-25 20:39:04.000000000","message":"Patch Set 8:\n\n(5 comments)","accounts_in_message":[],"_revision_number":8},{"id":"8ae3cba11a3f36607eddcb809e4aa5c4b8fab4ee","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-02-25 21:35:09.000000000","message":"Patch Set 8:\n\nBuild succeeded \n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/4333/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2971/ssbench : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2107/probetests/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2378/ : SUCCESS","accounts_in_message":[],"_revision_number":8},{"id":"3a29357eb95b42b81f386c5b9f35cdbdaf5b2d2d","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2016-02-26 06:57:30.000000000","message":"Patch Set 8: Code-Review-1\n\nThe python27 test for this is running again and again and suddenly crashes, see http://paste.openstack.org/show/488308/\n\nSomething looks very broken here - could you test this locally before you push next time, pleasE?","accounts_in_message":[],"_revision_number":8},{"id":"f804417ae17df8faaf7f5ec0f56f41c4a4d8d4bc","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2016-02-26 07:37:08.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"0e19f0592ec01b3be8c2e64985d9d5716d676b76","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2016-02-26 07:39:11.000000000","message":"Patch Set 9: Code-Review-1\n\nThis was running for 11 hours in the gate, starting the python27 every few minutes and failing. I took the liberty to add a return and comment to get us pass this test - and stop chewing nodes\n\nThe testsuite works fine on my own system,I suggest you reach out to #openstack-infra to get help debugging the failure when you push this next time.","accounts_in_message":[],"_revision_number":9},{"id":"5450d28e83e3ac7cf3bdcb2fe427f85a0c77d7d3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-02-26 08:12:28.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/24/212824/9/check/gate-swift-pep8/b951ca4/ : SUCCESS in 57s\n- gate-swift-docs http://docs-draft.openstack.org/24/212824/9/check/gate-swift-docs/8157b25//doc/build/html/ : SUCCESS in 1m 48s\n- gate-swift-python27 http://logs.openstack.org/24/212824/9/check/gate-swift-python27/626db15/ : SUCCESS in 3m 49s\n- gate-swift-python34 http://logs.openstack.org/24/212824/9/check/gate-swift-python34/507b39e/ : SUCCESS in 2m 16s\n- gate-swift-tox-func http://logs.openstack.org/24/212824/9/check/gate-swift-tox-func/1f33fb9/ : SUCCESS in 3m 03s\n- gate-swift-tox-func-in-process-fast-post http://logs.openstack.org/24/212824/9/check/gate-swift-tox-func-in-process-fast-post/f031188/ : SUCCESS in 3m 04s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/24/212824/9/check/gate-tempest-dsvm-full/e52085a/ : SUCCESS in 33m 24s\n- gate-grenade-dsvm http://logs.openstack.org/24/212824/9/check/gate-grenade-dsvm/6e284fc/ : SUCCESS in 34m 34s\n- gate-swift-dsvm-functional http://logs.openstack.org/24/212824/9/check/gate-swift-dsvm-functional/4037461/ : SUCCESS in 21m 09s","accounts_in_message":[],"_revision_number":9},{"id":"ce30ef7a178ebee281f8745d82fb05e3e7a4ca1a","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-02-26 08:30:47.000000000","message":"Patch Set 9:\n\nBuild succeeded \n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/4335/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2973/ssbench : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2109/probetests/ : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/212824/2380/ : SUCCESS","accounts_in_message":[],"_revision_number":9},{"id":"b2ed340e5407a39b8a16381cb4eb51cf931e9dbe","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-22 19:49:02.000000000","message":"Patch Set 9: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":9},{"id":"c13131d653a06acd3ec6b82bdbd6b1780c5dc3dd","author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"date":"2016-07-07 15:14:22.000000000","message":"Patch Set 9:\n\nI\u0027m wondering if using watchers would be a better approach to the work that Alan was doing with refactoring expiring objects and integrating into the auditor: https://review.openstack.org/#/c/252085/6\n\nThe watcher would probably need the DiskFile as acoles had mentioned.","accounts_in_message":[],"_revision_number":9},{"id":"617f33ae90302952c35fbec7d9fcbef44bbe16fc","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2016-07-07 15:39:12.000000000","message":"Removed the following votes:\n\n* Code-Review-1 by Andreas Jaeger \u003cjaegerandi@gmail.com\u003e\n","accounts_in_message":[],"_revision_number":9},{"id":"dc000b075b4fb041a2797fc6d1f3f690979c6961","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2017-12-18 05:01:59.000000000","message":"Removed reviewer Jenkins with the following votes:\n\n* Verified-1 by Jenkins (3)\n","accounts_in_message":[],"_revision_number":9},{"id":"bede60555498345e262f9fb3f8f99873577b2b0e","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2018-07-30 22:39:04.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"7d5866381a8e3f31268a1253d2075c30da9aa5ff","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-07-31 00:12:42.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\n\n- build-openstack-sphinx-docs http://logs.openstack.org/24/212824/10/check/build-openstack-sphinx-docs/1f263de/html/ : SUCCESS in 4m 28s\n- openstack-tox-pep8 http://logs.openstack.org/24/212824/10/check/openstack-tox-pep8/acd21ec/ : SUCCESS in 4m 37s\n- legacy-swift-dsvm-functional http://logs.openstack.org/24/212824/10/check/legacy-swift-dsvm-functional/66ff6d8/ : SUCCESS in 28m 36s\n- legacy-swift-dsvm-functional-identity-v3-only http://logs.openstack.org/24/212824/10/check/legacy-swift-dsvm-functional-identity-v3-only/966b70b/ : SUCCESS in 29m 26s (non-voting)\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/24/212824/10/check/legacy-tempest-dsvm-neutron-full/04096d1/ : SUCCESS in 1h 32m 02s\n- neutron-grenade http://logs.openstack.org/24/212824/10/check/neutron-grenade/0792f2a/ : SUCCESS in 1h 02m 41s\n- swift-tox-py27 http://logs.openstack.org/24/212824/10/check/swift-tox-py27/6a13de1/ : SUCCESS in 12m 19s\n- swift-tox-py35 http://logs.openstack.org/24/212824/10/check/swift-tox-py35/700c08a/ : SUCCESS in 4m 42s\n- swift-tox-func http://logs.openstack.org/24/212824/10/check/swift-tox-func/07aea59/ : SUCCESS in 8m 21s\n- swift-tox-func-encryption http://logs.openstack.org/24/212824/10/check/swift-tox-func-encryption/8e3ae18/ : SUCCESS in 9m 23s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/24/212824/10/check/swift-tox-func-domain-remap-staticweb/40fe6c1/ : SUCCESS in 8m 43s\n- swift-tox-func-ec http://logs.openstack.org/24/212824/10/check/swift-tox-func-ec/d9068b1/ : SUCCESS in 8m 24s\n- swift-tox-func-s3api http://logs.openstack.org/24/212824/10/check/swift-tox-func-s3api/f9e6bf3/ : SUCCESS in 10m 38s\n- swift-probetests-centos-7 http://logs.openstack.org/24/212824/10/check/swift-probetests-centos-7/74d0fe1/ : SUCCESS in 25m 16s\n- openstack-tox-lower-constraints http://logs.openstack.org/24/212824/10/check/openstack-tox-lower-constraints/314d6ca/ : SUCCESS in 7m 54s","accounts_in_message":[],"_revision_number":10},{"id":"a781d5e4ea2cb4fd5a612af44f581a957d428a13","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2018-07-31 23:35:08.000000000","message":"Patch Set 10:\n\n(1 comment)\n\nJust a reminder...","accounts_in_message":[],"_revision_number":10},{"id":"4bd950daaa5834a2625257222e268161e3f24675","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-01-03 22:39:08.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"cef29f43076b2be4222812438cad7efd5182fdce","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-01-03 23:33:25.000000000","message":"Patch Set 11: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs http://logs.openstack.org/24/212824/11/check/openstack-tox-docs/86eef17/html/ : SUCCESS in 4m 00s\n- swift-tox-py27 http://logs.openstack.org/24/212824/11/check/swift-tox-py27/33bb90d/ : FAILURE in 10m 11s\n- swift-tox-py35 http://logs.openstack.org/24/212824/11/check/swift-tox-py35/b4cda7c/ : SUCCESS in 5m 57s\n- swift-tox-py36 http://logs.openstack.org/24/212824/11/check/swift-tox-py36/d69a859/ : SUCCESS in 6m 03s (non-voting)\n- swift-tox-func http://logs.openstack.org/24/212824/11/check/swift-tox-func/37e9bfe/ : SUCCESS in 8m 24s\n- swift-tox-func-encryption http://logs.openstack.org/24/212824/11/check/swift-tox-func-encryption/0ae9731/ : SUCCESS in 8m 55s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/24/212824/11/check/swift-tox-func-domain-remap-staticweb/be56b8e/ : SUCCESS in 7m 55s\n- swift-tox-func-ec http://logs.openstack.org/24/212824/11/check/swift-tox-func-ec/375785a/ : SUCCESS in 8m 45s\n- swift-tox-func-s3api http://logs.openstack.org/24/212824/11/check/swift-tox-func-s3api/cd65047/ : SUCCESS in 11m 12s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/24/212824/11/check/swift-tox-func-s3api-ceph-s3tests-tempauth/cf6bdee/ : SUCCESS in 13m 34s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/24/212824/11/check/swift-probetests-centos-7/9bff799/ : SUCCESS in 32m 17s\n- swift-dsvm-functional http://logs.openstack.org/24/212824/11/check/swift-dsvm-functional/c9df302/ : SUCCESS in 29m 56s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/24/212824/11/check/swift-dsvm-functional-ipv6/0b3f628/ : SUCCESS in 32m 30s\n- swift-tox-lower-constraints http://logs.openstack.org/24/212824/11/check/swift-tox-lower-constraints/5eadb73/ : FAILURE in 10m 43s\n- openstack-tox-pep8 http://logs.openstack.org/24/212824/11/check/openstack-tox-pep8/92b38ca/ : SUCCESS in 5m 07s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/24/212824/11/check/swift-multinode-rolling-upgrade/c119ca5/ : SUCCESS in 16m 39s","accounts_in_message":[],"_revision_number":11},{"id":"b2a731918e3c7a108b80c07f5d53230b8110a340","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-01-03 23:43:55.000000000","message":"Patch Set 11: Workflow-1\n\n(2 comments)\n\nHuh.\n\n $ TMP\u003d/srv/node1/sdb1/tmp/ nosetests test/unit/obj/test_auditor.py:TestAuditor.test_crashy_watchers\n test_crashy_watchers (test.unit.obj.test_auditor.TestAuditor) ... ok\n \n ----------------------------------------------------------------------\n Ran 1 test in 0.339s\n \n OK\n\n...but...\n\n $ TMP\u003d/srv/node1/sdb1/tmp/ nosetests test/unit/common/test_wsgi.py:TestWSGI.test_run_server_strategy_plumbing test/unit/obj/test_auditor.py:TestAuditor.test_crashy_watchers\n test_run_server_strategy_plumbing (test.unit.common.test_wsgi.TestWSGI) ... ok\n test_crashy_watchers (test.unit.obj.test_auditor.TestAuditor) ... FAIL\n \n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n FAIL: test_crashy_watchers (test.unit.obj.test_auditor.TestAuditor)\n ----------------------------------------------------------------------\n Traceback (most recent call last):\n   File \"/usr/local/lib/python2.7/dist-packages/mock/mock.py\", line 1305, in patched\n     return func(*args, **keywargs)\n   File \"/vagrant/swift/test/unit/obj/test_auditor.py\", line 1779, in test_crashy_watchers\n     [\"__init__\", \"start\", \"see_object\", \"see_object\", \"end\"])\n AssertionError: Lists differ: [\u0027__init__\u0027, \u0027start\u0027, \u0027see_obj... !\u003d [\u0027__init__\u0027, \u0027start\u0027, \u0027see_obj...\n \n Second list contains 1 additional elements.\n First extra element 4:\n \u0027end\u0027\n \n - [\u0027__init__\u0027, \u0027start\u0027, \u0027see_object\u0027, \u0027see_object\u0027]\n + [\u0027__init__\u0027, \u0027start\u0027, \u0027see_object\u0027, \u0027see_object\u0027, \u0027end\u0027]\n ?                                                 +++++++\n \n -------------------- \u003e\u003e begin captured stdout \u003c\u003c ---------------------\n test DEBUG: Loaded entry point \u0027crashy_init\u0027\n test DEBUG: Loaded entry point \u0027crashy_processing\u0027\n test DEBUG: Loaded entry point \u0027hard_exit\u0027\n test DEBUG: Loaded entry point \u0027working\u0027\n test DEBUG: 4 audit watcher(s) loaded\n test INFO: Begin object audit \"once\" mode (ZBF)\n test INFO: Object audit (ZBF). Since Thu Jan  3 23:41:43 2019: Locally: 1 passed, 0 quarantined, 0 errors, files/sec: 302.10, bytes/sec: 0.00, Total time: 0.00, Auditing time: 0.00, Rate: 0.00\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects-2/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects-2/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects-2/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects-1/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects-1/auditor_status_ZBF.json\n test DEBUG: Skipping the update of recently changed /srv/node1/sdb1/tmp/tmplDR1U3/tmp_test_object_auditor/node/sda/objects-1/auditor_status_ZBF.json\n test INFO: Object audit (ZBF) \"once\" mode completed: 0.01s. Total quarantined: 0, Total errors: 0, Total files/sec: 277.31, Total bytes/sec: 0.00, Auditing time: 0.00, Rate: 0.43\n test INFO: Object audit stats: {\"1024\": 1, \"10240\": 1, \"10\": 0, \"100\": 0, \"OVER\": 0}\n \n --------------------- \u003e\u003e end captured stdout \u003c\u003c ----------------------","accounts_in_message":[],"_revision_number":11},{"id":"aeba3b178ee0d5d3f13413a6827d7fbb532978e3","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-01-04 01:43:58.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"9085d70216bd8d45ac83fdd605b92df42b3f6e2a","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-01-04 02:20:22.000000000","message":"Patch Set 12: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs http://logs.openstack.org/24/212824/12/check/openstack-tox-docs/7de0ec1/html/ : SUCCESS in 4m 00s\n- swift-tox-py27 http://logs.openstack.org/24/212824/12/check/swift-tox-py27/6154d08/ : SUCCESS in 9m 58s\n- swift-tox-py35 http://logs.openstack.org/24/212824/12/check/swift-tox-py35/4e283a1/ : SUCCESS in 5m 01s\n- swift-tox-py36 http://logs.openstack.org/24/212824/12/check/swift-tox-py36/872a82a/ : SUCCESS in 4m 52s (non-voting)\n- swift-tox-func http://logs.openstack.org/24/212824/12/check/swift-tox-func/defd01e/ : FAILURE in 9m 08s\n- swift-tox-func-encryption http://logs.openstack.org/24/212824/12/check/swift-tox-func-encryption/bb76f0c/ : FAILURE in 9m 27s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/24/212824/12/check/swift-tox-func-domain-remap-staticweb/bb16185/ : SUCCESS in 7m 34s\n- swift-tox-func-ec http://logs.openstack.org/24/212824/12/check/swift-tox-func-ec/22b351b/ : SUCCESS in 8m 24s\n- swift-tox-func-s3api http://logs.openstack.org/24/212824/12/check/swift-tox-func-s3api/7372396/ : SUCCESS in 8m 54s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/24/212824/12/check/swift-tox-func-s3api-ceph-s3tests-tempauth/21e95b8/ : SUCCESS in 11m 54s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/24/212824/12/check/swift-probetests-centos-7/132f0dd/ : FAILURE in 26m 53s\n- swift-dsvm-functional http://logs.openstack.org/24/212824/12/check/swift-dsvm-functional/73e2b5e/ : SUCCESS in 20m 47s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/24/212824/12/check/swift-dsvm-functional-ipv6/b17aa1c/ : SUCCESS in 21m 48s\n- swift-tox-lower-constraints http://logs.openstack.org/24/212824/12/check/swift-tox-lower-constraints/f1aab35/ : FAILURE in 9m 54s\n- openstack-tox-pep8 http://logs.openstack.org/24/212824/12/check/openstack-tox-pep8/33709b4/ : SUCCESS in 4m 24s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/24/212824/12/check/swift-multinode-rolling-upgrade/9c4a79f/ : FAILURE in 15m 43s","accounts_in_message":[],"_revision_number":12},{"id":"0f95142e731cee654015e926d48f3b865f49ead1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-01-04 17:00:20.000000000","message":"Patch Set 12:\n\nrecheck","accounts_in_message":[],"_revision_number":12},{"id":"687c0a8dcc0f11abad5855cf116fdc172306c3f5","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-01-04 18:42:31.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs http://logs.openstack.org/24/212824/12/check/openstack-tox-docs/570a33d/html/ : SUCCESS in 3m 50s\n- swift-tox-py27 http://logs.openstack.org/24/212824/12/check/swift-tox-py27/06288bb/ : SUCCESS in 11m 33s\n- swift-tox-py35 http://logs.openstack.org/24/212824/12/check/swift-tox-py35/3a42002/ : SUCCESS in 5m 25s\n- swift-tox-py36 http://logs.openstack.org/24/212824/12/check/swift-tox-py36/94378d5/ : SUCCESS in 5m 41s (non-voting)\n- swift-tox-func http://logs.openstack.org/24/212824/12/check/swift-tox-func/13e9153/ : SUCCESS in 8m 56s\n- swift-tox-func-encryption http://logs.openstack.org/24/212824/12/check/swift-tox-func-encryption/c5ea182/ : SUCCESS in 9m 20s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/24/212824/12/check/swift-tox-func-domain-remap-staticweb/3231d51/ : SUCCESS in 12m 57s\n- swift-tox-func-ec http://logs.openstack.org/24/212824/12/check/swift-tox-func-ec/42b98a4/ : SUCCESS in 10m 20s\n- swift-tox-func-s3api http://logs.openstack.org/24/212824/12/check/swift-tox-func-s3api/623233c/ : SUCCESS in 11m 09s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/24/212824/12/check/swift-tox-func-s3api-ceph-s3tests-tempauth/59fa87c/ : SUCCESS in 12m 32s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/24/212824/12/check/swift-probetests-centos-7/06e31ae/ : SUCCESS in 35m 02s\n- swift-dsvm-functional http://logs.openstack.org/24/212824/12/check/swift-dsvm-functional/d6ffae4/ : SUCCESS in 28m 49s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/24/212824/12/check/swift-dsvm-functional-ipv6/d7c7392/ : SUCCESS in 28m 07s\n- swift-tox-lower-constraints http://logs.openstack.org/24/212824/12/check/swift-tox-lower-constraints/a46d2fa/ : SUCCESS in 11m 02s\n- openstack-tox-pep8 http://logs.openstack.org/24/212824/12/check/openstack-tox-pep8/3a20d96/ : SUCCESS in 5m 28s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/24/212824/12/check/swift-multinode-rolling-upgrade/09bd531/ : SUCCESS in 17m 40s","accounts_in_message":[],"_revision_number":12},{"id":"7ff56ccd4b88404cc031ff2bf4f79767469a68b6","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2019-02-01 15:03:10.000000000","message":"Patch Set 12:\n\n(3 comments)","accounts_in_message":[],"_revision_number":12},{"id":"ef35d0b2c59e281a7a16fb317d69e626c5448bb3","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-02-01 17:31:45.000000000","message":"Patch Set 12:\n\n(3 comments)\n\nThanks for the review Romain! I\u0027ll try to get a fresh patchset up sometime next week. Honestly, I still haven\u0027t really functionally tested it since the rebase -- I haven\u0027t looked hard at the ergonomics in nearly three years now!","accounts_in_message":[],"_revision_number":12},{"id":"90736be679218c39830a59af30f0e74c40a1b8d5","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-11-05 08:40:30.000000000","message":"Uploaded patch set 13.","accounts_in_message":[],"_revision_number":13},{"id":"c9a5a82d4a87fa5f345e806311017f50749c921b","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-11-05 09:39:02.000000000","message":"Patch Set 12:\n\n(3 comments)","accounts_in_message":[],"_revision_number":12},{"id":"ebce0963f2a6ec3cfb1a5f6cb89f6245c98a8f51","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-11-05 09:48:58.000000000","message":"Uploaded patch set 14.","accounts_in_message":[],"_revision_number":14},{"id":"8085e825053cb3dc7a854904da23d78267229190","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-05 10:54:37.000000000","message":"Patch Set 14: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fdd8efeb8c7f429d9ca325164f0370f7 : SUCCESS in 6m 44s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/a6e35ea03a58428b8b520754170c4193 : SUCCESS in 52m 05s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/97fbd7a47e294604b98e80383ce5546e : SUCCESS in 1h 03m 37s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/896637dbcbcc49a587cae093537f48e5 : SUCCESS in 16m 52s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/6eec7bbfeb924ac2b22527d7648a0797 : SUCCESS in 16m 08s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/dcf82de60d2741fdb2abc6cdcf03f52a : SUCCESS in 23m 45s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/09dc52cb3c4e43a4b07756c44c3111ee : FAILURE in 16m 35s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/115c8c63a0f044938a703a13960c0117 : FAILURE in 24m 56s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/31e07f79008f43828944d01c220ba0e6 : SUCCESS in 22m 33s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/4842bf788c1c413393c4d35095928cd9 : SUCCESS in 10m 49s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/b868ff5abb3440148464da01864d05da : SUCCESS in 22m 27s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/12dfee52597343aaa630369552ceb584 : SUCCESS in 10m 18s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/773fa622435745428eed3a5db8ce0c7e : SUCCESS in 15m 12s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/b58f7e6e89dd419a866ba814fbf524d2 : SUCCESS in 12m 40s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/ba4c8a2581864535be03ccb41223a2dd : SUCCESS in 17m 31s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/8153c521ee804f6e8a1c0ab7167a6e39 : SUCCESS in 20m 07s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/e9c90ebe5b7841cf8d1b4b68dda13d03 : SUCCESS in 15m 53s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/d428ce90c6f84daa9fe675da19977bfe : SUCCESS in 16m 53s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1e93b3cf47f74f32b8eda7c57106f9f3 : SUCCESS in 26m 27s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/1943ced361744800ac0cb0019b44b712 : FAILURE in 32m 13s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/181706282b0648208454485941e63d22 : SUCCESS in 40m 47s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/297fe1d4c09c460ca6d720d24b9eadc9 : SUCCESS in 32m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e9860074aa924579add46bd729037f47 : SUCCESS in 27m 50s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/720c9df0cd594795bbeb06792f0c85d8 : SUCCESS in 12m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e195149961954ff4b2b9d735fc9916e3 : SUCCESS in 5m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/abb8078ec6c848e58acca799f7301203 : SUCCESS in 18m 12s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2f48db38c5bd43108debaf311d870a45 : SUCCESS in 58m 22s","accounts_in_message":[],"_revision_number":14},{"id":"38f89e105ab46fb0ddbd6efbf26ade2a39e113a1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-11-05 14:02:22.000000000","message":"Uploaded patch set 15.","accounts_in_message":[],"_revision_number":15},{"id":"cc1847f705fffc1aa4df386d6d8d11dbc4b67113","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-05 15:26:54.000000000","message":"Patch Set 15: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/de23c55e37ba4cbeb92ada6077323dcb : SUCCESS in 9m 07s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/352d98b44d07464db55c421290b9e12f : SUCCESS in 1h 06m 20s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/37cad940a26146f4abb6170f7d9c4563 : SUCCESS in 51m 08s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6e749799f17644bd9433a6f446b4100e : SUCCESS in 9m 25s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/d232f78ee73d47fe88ade0646d0734a4 : SUCCESS in 9m 38s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/171d60140e7646ec84ecb8d7b4b3357c : SUCCESS in 11m 45s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/3bdd21a234f248df9743d2674ef926af : FAILURE in 17m 07s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/60eb95b1190042d792366de812c791ba : FAILURE in 28m 54s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/c1ff8575e9f94e639c5de92a958c4805 : SUCCESS in 15m 30s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/68bc8c2fa4e14e5aab86e11e28ccc389 : SUCCESS in 10m 39s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/a2be850b5d42424d8fcc7753404ec39a : SUCCESS in 10m 43s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/64b4684bd7e0426992e1ef01712cade5 : SUCCESS in 27m 14s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/c25d9084b3754187b57e432e94c4936b : SUCCESS in 14m 02s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/a1b5d5aa56fe4652ad5d47eb8dce8db7 : SUCCESS in 27m 40s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/749acdf62ab1498a897d3d8fc1264eaa : SUCCESS in 11m 39s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/4c3168a8e997403f92fc43b113063f1f : SUCCESS in 27m 45s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/c992d2e4941f4008b7b1df8227e206ae : SUCCESS in 27m 44s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/d430b72c1dea4f6b8e2a9069610637be : SUCCESS in 32m 01s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b6eb57f209e0425da49d159eb6db4212 : SUCCESS in 15m 01s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/b46b184d8584466cba2f8134bdbc83b0 : SUCCESS in 44m 56s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/864d0a482a004fa498c1155b6fa14b5d : SUCCESS in 44m 30s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/b0404cb8a2cb4d7d88b6228d2366ba24 : SUCCESS in 29m 56s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/0a8db015edbf47e0bc010f0b46656849 : SUCCESS in 43m 56s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d99e8376144140699e8e845fd2d1c50e : SUCCESS in 27m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ca939d1fd4a04737937127e9536b1812 : SUCCESS in 6m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6553a5dea68d481f954e70ec1f7c0b4e : SUCCESS in 21m 01s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d6d2980bd99c4738bd1469d66624aaeb : SUCCESS in 1h 18m 20s","accounts_in_message":[],"_revision_number":15},{"id":"83f28551a6b1e06cbf8884942692c7daf10d83f3","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-11-05 23:51:40.000000000","message":"Uploaded patch set 16.","accounts_in_message":[],"_revision_number":16},{"id":"f42841c0d6f2b11ef24701bd7ef4be9a62776d8a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-06 00:55:20.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3266c357065c4ca1b42a6265b4e3260e : SUCCESS in 6m 49s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/214b9a07720e4311ab4c784203a8aae5 : SUCCESS in 49m 29s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/47609cfb3d0b42dbac6691495aa3b59e : SUCCESS in 48m 36s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4cc29d80db45461180141e1a79d4bbd5 : SUCCESS in 8m 06s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/14faa6ef32c94060b9150c3b07d9cc52 : SUCCESS in 7m 47s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/995b75e2ae2d4fdd97657aa632782a1e : SUCCESS in 10m 37s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/7d7c2af9777c4b69933c168d6bf4a871 : SUCCESS in 14m 24s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f3aeacf050344036874e9d47c78e13a7 : SUCCESS in 11m 01s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/e02a5fa897b2441596569834d09d19d6 : SUCCESS in 36m 48s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/2d267d3172404c7dacdb350865421f6d : SUCCESS in 8m 55s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/6702333a5dc54934a9901d00452dc521 : SUCCESS in 9m 47s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/cf7fa1ec6f6f486ab26e64cc6786e139 : SUCCESS in 9m 36s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/56d86b0e819c464599e7ab146d08c60c : SUCCESS in 11m 53s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/1d9c850f94294bf8a034dafd20d47ab1 : SUCCESS in 9m 13s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/559939d1acce47e4af60eefe77790607 : SUCCESS in 10m 05s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/e9b00492e24e45f79109d0af31e8fe92 : SUCCESS in 9m 27s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/c123e4956a3f498a9e86a43fb5b6de2e : SUCCESS in 13m 04s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/1aa19cbf989a4ec889aecaaf84dca7fc : SUCCESS in 15m 51s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/ef6d19f37c3746b186b9c45b2cccff73 : SUCCESS in 14m 55s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/524190e8a43446c283369b124605c3f5 : SUCCESS in 33m 28s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a9077bc3422f48e1bde96fbd7ea0caa5 : SUCCESS in 28m 29s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/87fc0f75df6048b190d24b3b7a610d3c : SUCCESS in 27m 17s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e4df51169e8c45bda79d72b7f82913a9 : SUCCESS in 28m 19s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6da4a5a0efc243c3bb8ec2a6c20d9fcb : SUCCESS in 12m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/25e65c69feb24c9e88315c3b4a935b23 : SUCCESS in 7m 13s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/81ed866170c14ae69025db93d84a1d2e : SUCCESS in 17m 46s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7017cf74e84b479b8751ebb9076ea6ea : SUCCESS in 58m 08s","accounts_in_message":[],"_revision_number":16},{"id":"772e7c1383e3a2899881cf48e740c6ab219dafb2","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-13 17:58:46.000000000","message":"Uploaded patch set 17: Patch Set 16 was rebased.","accounts_in_message":[],"_revision_number":17},{"id":"7a1db61183bb8e4a26bdd3bf53cae483e5a924b6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-13 19:06:32.000000000","message":"Patch Set 17: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6c7cfbde8a2f4d18a96ea13696f492b4 : SUCCESS in 8m 24s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/3252aef128b843319741502775d8abf8 : SUCCESS in 1h 03m 09s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8cf9526797b64790b29f6c2280ea8e5a : SUCCESS in 1h 01m 03s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7908a11e9a4e41cd82bbb8c3460f752e : SUCCESS in 10m 31s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/6cdbd61a61ef406f90d23114954ac203 : SUCCESS in 10m 41s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/d223b026f1c246efa2ea7d457e36debe : SUCCESS in 15m 11s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/dc4b819c812f4b6aaf630d345864dc1e : SUCCESS in 22m 43s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/7208df5d52e84aa78c537b478bebf0d2 : SUCCESS in 22m 24s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/0d112c97a7ca48fbbf181428e6bfdb1d : SUCCESS in 20m 54s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/ae48af5a522442d0a50aedec9067ae5d : SUCCESS in 20m 31s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/70aa0fe826b04fd1a149b543774e2cd5 : SUCCESS in 21m 03s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/ddd4a5a6cda3410090b75caf71630c85 : SUCCESS in 13m 23s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/0af2b51162d14c3aa92bb2da40da3be2 : SUCCESS in 19m 12s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/08310bef915e45b185847fa255322206 : SUCCESS in 16m 48s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/97aff176e16c4ef7b46c4f0c6be22bae : SUCCESS in 14m 38s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/68200fbfcbd6479ab0472c9c2536d120 : SUCCESS in 14m 24s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/149d457d7c13463fb53e76496aba02c5 : SUCCESS in 13m 42s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/ed44c4023e084ae2a515553f5a6b6612 : SUCCESS in 16m 19s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/88417611ecfb407a8745341c4e3a8698 : SUCCESS in 25m 26s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/b224d0d6f78d46d1b104738c57f50c08 : FAILURE in 37m 52s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5e80d413a6344c8695711de0ba7a5f9d : SUCCESS in 29m 46s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/dbce6f4371784597bc51df7c17182625 : SUCCESS in 31m 07s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4e03e691a30446e8b6fc3d4bf88031e4 : SUCCESS in 30m 19s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/cf070bcd7da64d0cbd744b3e48b8582f : SUCCESS in 18m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/138fba0782ea47dd8460c157c976e84e : SUCCESS in 7m 31s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/83b9319c4e4a461c90f430d430e4a7c1 : SUCCESS in 19m 12s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0468833ff07c45f18622972dd5ab931c : SUCCESS in 1h 00m 07s","accounts_in_message":[],"_revision_number":17},{"id":"ad30fe884fe83325b9010642f91cc0bed0d800e2","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-13 19:08:50.000000000","message":"Patch Set 17: Code-Review-1\n\nhold on a moment, the example has a syntax error. Let me respin it...","accounts_in_message":[],"_revision_number":17},{"id":"534acd11f70134b465f4ba8047219192f461c022","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-13 19:12:07.000000000","message":"Uploaded patch set 18.","accounts_in_message":[],"_revision_number":18},{"id":"af9bfef734c044e6e7b9fff4134e05b9ad960c3a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-13 20:39:51.000000000","message":"Patch Set 18: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/21b60e4bc16d428b810412065cbc5662 : SUCCESS in 9m 00s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/8c3cb03bb28849a4981af75b4d79995c : SUCCESS in 51m 00s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/00ae2b1893c1460e8b40bb734c72ec36 : SUCCESS in 46m 02s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/56a61cb429f542b9a1152fd68f08c962 : SUCCESS in 11m 21s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/aebf05d76fb94e68a18fe66d96125378 : SUCCESS in 11m 26s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a718402731644530a30a1fa5f5655192 : SUCCESS in 13m 51s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/d25c06b3ae454b188726bb028afda829 : SUCCESS in 11m 49s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4b30b712840d4d5d9809231a0b06b342 : SUCCESS in 14m 51s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/00c1635a65da480cb5e314300e83d777 : SUCCESS in 16m 09s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/27b0409d69514dc6a5231c4c363fe1e7 : FAILURE in 23m 23s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/2b2c18968c0a439eb89cbf0dc13ef314 : SUCCESS in 12m 40s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/9378663a52274901ad668d26124fe6a2 : SUCCESS in 17m 12s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/0b0281ccb821413b882187b687e2efe5 : SUCCESS in 12m 16s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/11e60d7dd1b944ac96c0520ce030b29c : SUCCESS in 10m 03s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/0397c7e56cb845cf8707a628649f00cc : SUCCESS in 14m 12s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/5617fe0ad38b425fa636a0218f63bd57 : SUCCESS in 20m 02s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/28bb32bdffb34f0a8b52a8bfea11e651 : SUCCESS in 13m 27s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/1afa1a5912034886bd7ed05149f6408a : SUCCESS in 17m 34s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/84e53019678e4da48ae1cfb94b5393b1 : SUCCESS in 27m 24s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/3eb54c76e17b414fb0f663ce1c699bb7 : SUCCESS in 36m 57s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/e00eaa4ee4894bd9b986a073384291c9 : SUCCESS in 36m 25s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/3272474a42714b9f9e9921a6d770f250 : SUCCESS in 29m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3f96d9e7b3314146b68e87b3c21728a1 : SUCCESS in 39m 22s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/da1a43aee91248bb9dccf6c75b354b13 : SUCCESS in 19m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d91a35dc14d142cf972723eb06a59722 : SUCCESS in 8m 22s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/38e14cf87f4749d8bb5ae1e4b5f767d9 : SUCCESS in 22m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/017071b5fe0a453ba180738508f8e678 : SUCCESS in 1h 18m 35s","accounts_in_message":[],"_revision_number":18},{"id":"697aba4a0c611f7dd2e82433d6b4db92371b087f","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-12-17 01:46:48.000000000","message":"Patch Set 18:\n\nrecheck","accounts_in_message":[],"_revision_number":18},{"id":"303437d706c639bfe2df5cdb3364b98c91ab75d6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-17 03:02:23.000000000","message":"Patch Set 18: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/75990592c488489d8c5660f4c8750736 : SUCCESS in 7m 12s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/97b48005c86642a7b226f120f618ca19 : SUCCESS in 55m 40s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/dda069b45d094191aa58f2175d6d9062 : SUCCESS in 51m 57s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a4647e43ac56408bbe6eff968789a60f : SUCCESS in 9m 38s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/72d9a0f734af4739a05ca9dcb5428f9d : SUCCESS in 10m 55s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a5ae88ee9e4a4883826d2aebc04d67da : SUCCESS in 11m 21s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/fd2c32977ec54a58906e79fbfab724e0 : SUCCESS in 13m 15s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/7d18c9b8fdd148fdb478b1f065f70f31 : SUCCESS in 12m 30s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/7c401a4bbcf94ccdb833f20dad2d8e17 : SUCCESS in 11m 27s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/f239239a1e78429db32771e7353d9925 : SUCCESS in 10m 53s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/3d2fffa6a64a4a9e888a3c30c8a390ff : SUCCESS in 9m 18s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/82b4505314ec4ddfa9148834e22c584a : SUCCESS in 9m 54s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/444eef76db494bc6a9773e11fffcbf59 : SUCCESS in 12m 37s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/c830a16c61514939987f108bed966165 : SUCCESS in 9m 30s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/ed51f8ced7304eecb5adbd9b595fc3d6 : SUCCESS in 9m 57s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/54d2a9cd586a4889841101e42169bf67 : SUCCESS in 12m 17s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/a0125ae23ee24356bf041099af3c91e6 : SUCCESS in 11m 17s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/dc56c4b3f5994fe5b90c568933804bef : SUCCESS in 12m 44s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9e0419ebec08420f9791be508ed9ddd7 : SUCCESS in 16m 57s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/b8a550d422ca458aa3f2b7a10d591354 : SUCCESS in 32m 58s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/87a28a4d0dfa47229318ba0b62e9b1c6 : SUCCESS in 28m 27s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/9bc3a3fffcac463ba781502ae6dd604d : SUCCESS in 33m 47s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/5af7584cb0194771b780d38825d5ee7e : SUCCESS in 28m 45s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d528c7ef40874960931da912b32c18f0 : SUCCESS in 12m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a562f318e1d649e0b8b38910d2942104 : SUCCESS in 5m 29s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f4a111e898fe41118425c1f20623d1db : SUCCESS in 21m 30s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/08ced179b90d4223bb915a7edf282049 : SUCCESS in 1h 10m 13s","accounts_in_message":[],"_revision_number":18},{"id":"060a491697abae3dc7a86977c40b8341b824a943","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2020-01-06 06:03:07.000000000","message":"Uploaded patch set 19: Patch Set 18 was rebased.","accounts_in_message":[],"_revision_number":19},{"id":"fd1823d76fedbe078b464ab4713c6fe342b3e49f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-06 08:20:55.000000000","message":"Patch Set 19: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5f9737be96e849dcbf21be9af699a594 : SUCCESS in 9m 50s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/c20042135e2b47e28da55aefbdaaa7d5 : SUCCESS in 1h 00m 19s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/076a0293ed614ba685301992cc3b6a51 : SUCCESS in 54m 47s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/79fbaeb62487498f9c649722839d3a9e : SUCCESS in 10m 31s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/27ff1cd588cb4024ab71bc1e910205de : SUCCESS in 13m 40s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/4e99e343f3d54a9680c321fbe7306553 : SUCCESS in 16m 57s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/7da95dcde5c5423cba9958091cbb656e : SUCCESS in 13m 54s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8b17f6251370450e90343e268e573100 : SUCCESS in 16m 49s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/67c7c6292fce4a94a4394cf250faa221 : SUCCESS in 14m 07s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/11be299736ce4b0580fef174f8ff76c8 : SUCCESS in 9m 29s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/720834e7aea54e558b3f460d10cca1a9 : SUCCESS in 10m 05s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/2f61685d3f194b44a66d27a2153307fe : SUCCESS in 14m 49s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/cd696c8b0ed14a9abe5009e02c8c6c1a : SUCCESS in 16m 22s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/e7c858687ada4c8b94bb6add4f09e97e : SUCCESS in 12m 23s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/56e9f70cf30a469385bcf853df62d5ef : SUCCESS in 10m 34s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/3e2ab8c72a0b4852b4084f738ff290c4 : SUCCESS in 12m 39s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/5a0f30a47d814f2b90fcec53e8751acb : SUCCESS in 12m 53s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/afefd74d3d584e36b805ea0a6eaaab29 : SUCCESS in 16m 58s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/4e5742d3a10d454bb77ca6f242a81bcf : SUCCESS in 22m 31s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/e3b34c2b5eeb4da194f109f84eee5178 : FAILURE in 43m 31s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/624a16686294437ebe44d0f25db74782 : SUCCESS in 32m 22s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/c47eb21dccb84c88a5709e47bac7525e : SUCCESS in 30m 51s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2127ce5056b74874b0e6d21c9f139e66 : SUCCESS in 31m 06s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/47070bacae634bce84509d688c0aca9c : SUCCESS in 14m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4c61f800673841e0809b6b7fa0a11bc0 : SUCCESS in 6m 18s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/ff4dca93b55942c38127a6564c615cdd : SUCCESS in 18m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e64fa84d387349edb5bc6bb38eabe0d4 : SUCCESS in 1h 05m 27s","accounts_in_message":[],"_revision_number":19},{"id":"1af9933e57da09f5d3db614d6443993018b88600","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2020-01-07 00:52:44.000000000","message":"Uploaded patch set 20: Patch Set 19 was rebased.","accounts_in_message":[],"_revision_number":20},{"id":"9d931a64d6d18e38e13318ba42cbd87ea873be6c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-07 02:03:11.000000000","message":"Patch Set 20: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ace28b02441a4f74a46e0a21f68c62b8 : SUCCESS in 7m 40s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/7f24dfe159604fcbb06cc7c8ce8dcd55 : SUCCESS in 58m 55s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4dec9ac8da5046f69c3862fe121a9e02 : SUCCESS in 56m 54s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/89b384e09c124ba8b3107aaa39f3b9ed : SUCCESS in 9m 09s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/83d4fa77858444e7b0a8232992ffbc99 : SUCCESS in 9m 57s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/147291e4fdab4b8c8f1d34e76c3ca24c : SUCCESS in 11m 41s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/ba00bcb4547f432bbb41f95e3988b1c9 : SUCCESS in 11m 50s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8a14086f76754516b99bcfcb3ccc59c8 : SUCCESS in 13m 14s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/8ec84caaad7b4902b1435715bc4b6c0e : SUCCESS in 9m 35s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/8b20a541ec0c4134af6c60a56fcab78e : SUCCESS in 10m 59s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/9e8eb1c6ffed46dc8350b21323aebaac : SUCCESS in 11m 11s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/aac14935a95842bf8c3fe235e473d017 : SUCCESS in 10m 13s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/38beb0220c8c4a9f8e96d625b985f695 : SUCCESS in 14m 06s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/a5732ff475314baa9cc634a5e6d5aa4b : SUCCESS in 11m 01s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/2b96c9aeb6bc451b90352c39d101653c : SUCCESS in 14m 04s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/82cd628ff0ea4d46a4f71013eda94fac : SUCCESS in 10m 06s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/0549e742d16b408b8e1028a3ff413a4a : SUCCESS in 13m 33s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/368c22897d8d4381ac375e21d495df7c : SUCCESS in 13m 35s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/d6041eba0cd44a5ebe55ff4ca5a73e36 : SUCCESS in 16m 18s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/25337d1ffacc487f878f2aa95f6a3de5 : SUCCESS in 44m 08s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0b7d349b75874572a135f6ede1d881cc : SUCCESS in 38m 40s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/b6ac7d1578024bc1a7fc3a9b2bf95304 : SUCCESS in 31m 03s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/5420e46784804c0293257dee42d1a52a : SUCCESS in 28m 40s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1227951263c64c148d75b602c3a21bb0 : SUCCESS in 11m 15s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1d7b49b28fcc4140b2d85a79b23bcc55 : SUCCESS in 6m 14s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/38cde8a7fb574c19ad01bb72136745af : SUCCESS in 18m 09s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/669f9876c801481197db8010c596c11e : SUCCESS in 1h 05m 17s","accounts_in_message":[],"_revision_number":20},{"id":"44617653c1e61f47fc715074a2a03d0f892dd075","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2020-01-11 15:56:57.000000000","message":"Patch Set 20: Code-Review-1\n\nI played with this a little and suddenly I really don\u0027t like that isolation in a separate process. What is the point?\n\nIf someone have a misbehaving plugin, then in the end it must be debugged. Trying to isolate it and let auditor continue adds no value.\n\nThe only scenario when it might be of value is when the plugin is supplied by a 3rd party that is outside of the operator\u0027s control and is some proprietary software. Then, the operator might wish to put up with crashes and whatnot, in exchange of the plugin working at least somewhat. This is the only upside.\n\nBut in the bargain, we get a massive problem with plugins running asynchronously. If plugin is trying to talk to anyone else in the cluster (such as a container or account server), and is even a little slow, then auditor outruns it and you have millions of these objects in the queue.\n\nBut it\u0027s not like you\u0027re letting auditor run freely either. Once it finished its run, it waits for the plugin sandbox to finish.\n\nAlistair voiced the same concern here:\n https://review.opendev.org/#/c/212824/7/swift/obj/auditor.py@413\n\nAt this point I think we ought to scrap the isolation. If someone\u0027s plugin crashes the auditor then at least make it easier to debug.","accounts_in_message":[],"_revision_number":20},{"id":"5488020a9bd2fde10e98780ac28518b08d15b2b1","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2020-01-11 16:05:59.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"901db7ae1765eb766deeaa0a3cd2215ad04ca419","author":{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},"date":"2020-01-16 16:02:35.000000000","message":"Uploaded patch set 21: Patch Set 20 was rebased.","accounts_in_message":[],"_revision_number":21},{"id":"60074691520b1c6de60e272ee301a5b937327299","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-16 18:23:09.000000000","message":"Patch Set 21: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/808bd799983d4e919ceb31abc1052d60 : SUCCESS in 9m 24s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/26269d01023f43b48a9fc7693d2d76ed : SUCCESS in 57m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/04a298388fbb4dea89fc025f210d97f7 : SUCCESS in 58m 12s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/9b87ffc6aa294a5e8f65dd632619581a : SUCCESS in 10m 18s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/31ce4a19992f45dd83f48ac2a7c4e0af : SUCCESS in 11m 24s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/0eb7e7859b584a54a2ca045fec751aae : SUCCESS in 21m 12s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/8c3cecec1fe1418bae40dcce63272d5e : SUCCESS in 14m 33s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ef6e936b511d4b1fbebf71f3c267a8d7 : SUCCESS in 14m 46s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/116ca5d145954b18a48018098b4697e6 : SUCCESS in 12m 09s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/7e73bf6da17748769e1606b0ea24abfc : SUCCESS in 20m 49s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/cdc53947fb494c01a572239e96706f76 : SUCCESS in 11m 07s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/2a550949d8d340ddacebdef62ce44f9d : SUCCESS in 13m 00s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/00dc126ee82845fd89c10cf971a29ec4 : SUCCESS in 16m 03s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/951ee8e9ed014efab2e906b9c26db0e0 : SUCCESS in 17m 28s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/f1f66a586f844124937d8184e3fabb37 : SUCCESS in 14m 20s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/97466444bb1c49f9907ab00ea7be1163 : SUCCESS in 12m 16s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/7b340bc3bc194932b501eb246c13959e : SUCCESS in 25m 26s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/f4a59968b550443394ca419f49a001fa : SUCCESS in 14m 20s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/6aacaf6eb8e14ad0a217dcecca749854 : SUCCESS in 21m 18s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/e195b78541274fc28d2eb637f15bef2a : SUCCESS in 45m 16s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0b2f94e1a91248e0ae555406176455dc : SUCCESS in 33m 30s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/c48231c1f6f04492b1f143d37d4f9fcc : SUCCESS in 32m 27s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/bb5437bf50cc43e89e3d638c5b497ffd : SUCCESS in 40m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/688daddaa7a14e2288a64d08283171c9 : SUCCESS in 12m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/656c4463800147cab767f1cfac0618ea : SUCCESS in 6m 04s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/80584241bac74fd6bbf3ce48246b52a6 : SUCCESS in 22m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/bb21a96d2ba942d2ad746008344b80f4 : SUCCESS in 1h 30m 54s","accounts_in_message":[],"_revision_number":21},{"id":"2d56e808ee951b31252c9424d859e1055bb62488","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2020-02-08 04:34:26.000000000","message":"Patch Set 21:\n\nI uploaded a version of this patch that disposes with the separate processes (and so, loggers work perferctly even when mocked). See:\nhttps://review.opendev.org/706653","accounts_in_message":[],"_revision_number":21},{"id":"1b1b507eb7f1f822cf1a5414c1a6d5bfe4b818bc","tag":"autogenerated:gerrit:abandon","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2021-01-05 21:35:01.000000000","message":"Abandoned\n\nReplaced with https://review.opendev.org/c/openstack/swift/+/706653 I1be1faec53b2cdfaabf927598f1460e23c206b0a","accounts_in_message":[],"_revision_number":21}],"current_revision_number":21,"current_revision":"4a166b91a3d4ced48173de44c865dad48e118de5","revisions":{"898e93955f43794f8c7784a9687061092da3e3d5":{"kind":"REWORK","_number":1,"created":"2015-08-13 22:38:03.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/1"}}},"commit":{"parents":[{"commit":"eb62f1b3796e615ed4c25ec97f43d470c127bfab","subject":"Merge \"Speed up reaper for a big account delete and some better error handling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eb62f1b3796e615ed4c25ec97f43d470c127bfab"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:37:49.000000000","tz":-300},"subject":"Let operators add watchers to object audit","message":"Let operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(metadata) for each object audited, and\nwatcher.end() at the end of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/898e93955f43794f8c7784a9687061092da3e3d5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/898e93955f43794f8c7784a9687061092da3e3d5"}]},"branch":"refs/heads/master"},"09fed1336ef10030d46dab6c5e2ba3ff4456b52f":{"kind":"REWORK","_number":2,"created":"2015-09-18 21:17:14.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/2"}}},"commit":{"parents":[{"commit":"f4e6d39d4f61ca4e495ace15c1edfe7564dfea75","subject":"Merge \"Fixes recon bug with initially missing rings\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f4e6d39d4f61ca4e495ace15c1edfe7564dfea75"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-09-18 21:12:46.000000000","tz":-420},"subject":"Let operators add watchers to object audit","message":"Let operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(metadata) for each object audited, and\nwatcher.end() at the end of an audit pass.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/09fed1336ef10030d46dab6c5e2ba3ff4456b52f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/09fed1336ef10030d46dab6c5e2ba3ff4456b52f"}]},"branch":"refs/heads/master"},"ee3b582e0e10e0dccdea4f385c7a97191262dc76":{"kind":"REWORK","_number":3,"created":"2015-10-28 02:51:01.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/3"}}},"commit":{"parents":[{"commit":"246e134275e0965120ddc0f161d8466e9459bd1c","subject":"Merge \"Minor improvement to updater unit tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/246e134275e0965120ddc0f161d8466e9459bd1c"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-10-28 02:47:00.000000000","tz":540},"subject":"Let operators add watchers to object audit","message":"Let operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, policy_index, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(policy_index, metadata) for each object\naudited, and watcher.end() at the end of an audit pass.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ee3b582e0e10e0dccdea4f385c7a97191262dc76"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ee3b582e0e10e0dccdea4f385c7a97191262dc76"}]},"branch":"refs/heads/master"},"3e81d50ff594e7ee4f89769abadfe9cad00ad377":{"kind":"REWORK","_number":4,"created":"2015-11-19 23:09:39.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/4"}}},"commit":{"parents":[{"commit":"26ddb1b5ed037f1d3707f91c5a473c1306f6e0cc","subject":"Merge \"remove remaining simplejson uses, prefer standard library import\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/26ddb1b5ed037f1d3707f91c5a473c1306f6e0cc"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-11-19 23:09:34.000000000","tz":-480},"subject":"Let operators add watchers to object audit","message":"Let operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, policy_index, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(policy_index, metadata) for each object\naudited, and watcher.end() at the end of an audit pass.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3e81d50ff594e7ee4f89769abadfe9cad00ad377"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3e81d50ff594e7ee4f89769abadfe9cad00ad377"}]},"branch":"refs/heads/master"},"3b1ce108e9c8b12d7669460e3c8b4f25ee79d956":{"kind":"REWORK","_number":5,"created":"2015-12-22 00:15:47.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/5"}}},"commit":{"parents":[{"commit":"26ddb1b5ed037f1d3707f91c5a473c1306f6e0cc","subject":"Merge \"remove remaining simplejson uses, prefer standard library import\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/26ddb1b5ed037f1d3707f91c5a473c1306f6e0cc"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-12-22 00:15:36.000000000","tz":-480},"subject":"Let operators add watchers to object audit","message":"Let operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, policy_index, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(policy_index, metadata) for each object\naudited, and watcher.end() at the end of an audit pass.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3b1ce108e9c8b12d7669460e3c8b4f25ee79d956"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3b1ce108e9c8b12d7669460e3c8b4f25ee79d956"}]},"branch":"refs/heads/master"},"e5703fecb4f821e06d5264d27b484710e8b07072":{"kind":"REWORK","_number":6,"created":"2016-01-14 22:58:34.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/6"}}},"commit":{"parents":[{"commit":"8460ddd6077beca4b3acd0942f665e89c4e2b16e","subject":"Merge \"Make object-auditor storage-policy-aware\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8460ddd6077beca4b3acd0942f665e89c4e2b16e"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2016-01-14 22:56:15.000000000","tz":-480},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, policy_index, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(policy_index, metadata) for each object\naudited, and watcher.end() at the end of an audit pass.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e5703fecb4f821e06d5264d27b484710e8b07072"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e5703fecb4f821e06d5264d27b484710e8b07072"}]},"branch":"refs/heads/master"},"2adc20b68047cd33abe82f58f6eb8aaf4591cd6e":{"kind":"REWORK","_number":7,"created":"2016-01-19 22:26:02.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/7"}}},"commit":{"parents":[{"commit":"b9fd530657e885bd7c1796d1075803e690563b1d","subject":"Merge \"Sleep enough for trampoline\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b9fd530657e885bd7c1796d1075803e690563b1d"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2016-01-19 22:25:56.000000000","tz":-480},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger)\n   start(self, audit_type)\n   see_object(self, policy_index, object_metadata)\n   end(self)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(policy_index, metadata) for each object\naudited, and watcher.end() at the end of an audit pass.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2adc20b68047cd33abe82f58f6eb8aaf4591cd6e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2adc20b68047cd33abe82f58f6eb8aaf4591cd6e"}]},"branch":"refs/heads/master"},"d621e09b6f495aeff6820a56d19cd843c6af8784":{"kind":"REWORK","_number":8,"created":"2016-02-25 19:13:04.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/24/212824/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/8"}}},"commit":{"parents":[{"commit":"b9fd530657e885bd7c1796d1075803e690563b1d","subject":"Merge \"Sleep enough for trampoline\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b9fd530657e885bd7c1796d1075803e690563b1d"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2016-02-25 19:12:57.000000000","tz":-480},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, *args, **kwargs)\n\n   start(self, audit_type, *args, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, *args, **kwargs)\n\n   end(self, *args, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d621e09b6f495aeff6820a56d19cd843c6af8784"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d621e09b6f495aeff6820a56d19cd843c6af8784"}]},"branch":"refs/heads/master"},"14e05a9c28d8cddedd2c8c63180982ff5e426fa2":{"kind":"REWORK","_number":9,"created":"2016-02-26 07:37:08.000000000","uploader":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"ref":"refs/changes/24/212824/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/9"}}},"commit":{"parents":[{"commit":"b9fd530657e885bd7c1796d1075803e690563b1d","subject":"Merge \"Sleep enough for trampoline\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b9fd530657e885bd7c1796d1075803e690563b1d"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Andreas Jaeger","email":"aj@suse.com","date":"2016-02-26 07:36:50.000000000","tz":60},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, *args, **kwargs)\n\n   start(self, audit_type, *args, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, *args, **kwargs)\n\n   end(self, *args, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/14e05a9c28d8cddedd2c8c63180982ff5e426fa2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/14e05a9c28d8cddedd2c8c63180982ff5e426fa2"}]},"branch":"refs/heads/master"},"716d9c17705cb68597d0d28014686354e26ba584":{"kind":"REWORK","_number":10,"created":"2018-07-30 22:39:04.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/24/212824/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/10"}}},"commit":{"parents":[{"commit":"d97673cf5431daf276a2395c449be48951cfd6f0","subject":"Merge \"Define keymaster log routes on the class\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d97673cf5431daf276a2395c449be48951cfd6f0"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2018-07-30 22:27:00.000000000","tz":-300},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, *args, **kwargs)\n\n   start(self, audit_type, *args, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, *args, **kwargs)\n\n   end(self, *args, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/716d9c17705cb68597d0d28014686354e26ba584"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/716d9c17705cb68597d0d28014686354e26ba584"}]},"branch":"refs/heads/master"},"65f8dc0aeefc9abae86bfecd8fdf14f0696e754b":{"kind":"REWORK","_number":11,"created":"2019-01-03 22:39:08.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/24/212824/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/11"}}},"commit":{"parents":[{"commit":"0d29b01d2b8cc5c3a1a1cadf4551839b50eb5d2b","subject":"py3: Port the acl, account_quotas, cname_lookup, container_sync","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0d29b01d2b8cc5c3a1a1cadf4551839b50eb5d2b"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2018-12-28 01:11:03.000000000","tz":-480},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/65f8dc0aeefc9abae86bfecd8fdf14f0696e754b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/65f8dc0aeefc9abae86bfecd8fdf14f0696e754b"}]},"branch":"refs/heads/master"},"33d91e413a35bdae14b5fa1cfcd880225fb5b704":{"kind":"REWORK","_number":12,"created":"2019-01-04 01:43:58.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/24/212824/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/12"}}},"commit":{"parents":[{"commit":"0d29b01d2b8cc5c3a1a1cadf4551839b50eb5d2b","subject":"py3: Port the acl, account_quotas, cname_lookup, container_sync","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0d29b01d2b8cc5c3a1a1cadf4551839b50eb5d2b"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-01-04 01:43:32.000000000","tz":0},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. If Swift gets\nencryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nDocImpact\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/33d91e413a35bdae14b5fa1cfcd880225fb5b704"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/33d91e413a35bdae14b5fa1cfcd880225fb5b704"}]},"branch":"refs/heads/master"},"61e87f77b1cd9132b42aeedd3473ebe920ba5634":{"kind":"REWORK","_number":13,"created":"2019-11-05 08:40:30.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/24/212824/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/13"}}},"commit":{"parents":[{"commit":"36e2d74f8df7af860f26c7edb842e06396c916f5","subject":"Merge \"Tweak Swift AIO docs, update CentOS and Fedora\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/36e2d74f8df7af860f26c7edb842e06396c916f5"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-11-05 08:20:18.000000000","tz":0},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/61e87f77b1cd9132b42aeedd3473ebe920ba5634"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/61e87f77b1cd9132b42aeedd3473ebe920ba5634"}]},"branch":"refs/heads/master"},"57b58c57bd1136ae7a3f05ee75957d9cd296f179":{"kind":"REWORK","_number":14,"created":"2019-11-05 09:48:58.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/24/212824/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/14"}}},"commit":{"parents":[{"commit":"36e2d74f8df7af860f26c7edb842e06396c916f5","subject":"Merge \"Tweak Swift AIO docs, update CentOS and Fedora\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/36e2d74f8df7af860f26c7edb842e06396c916f5"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-11-05 09:48:39.000000000","tz":0},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/57b58c57bd1136ae7a3f05ee75957d9cd296f179"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/57b58c57bd1136ae7a3f05ee75957d9cd296f179"}]},"branch":"refs/heads/master"},"683a3508a966dbf26c4d49bcd2abf394b93bff42":{"kind":"REWORK","_number":15,"created":"2019-11-05 14:02:22.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/24/212824/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/15"}}},"commit":{"parents":[{"commit":"36e2d74f8df7af860f26c7edb842e06396c916f5","subject":"Merge \"Tweak Swift AIO docs, update CentOS and Fedora\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/36e2d74f8df7af860f26c7edb842e06396c916f5"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-11-05 14:01:58.000000000","tz":0},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/683a3508a966dbf26c4d49bcd2abf394b93bff42"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/683a3508a966dbf26c4d49bcd2abf394b93bff42"}]},"branch":"refs/heads/master"},"add840a1e5dcd8148db4bf4975f00ed9b58d2cf6":{"kind":"REWORK","_number":16,"created":"2019-11-05 23:51:40.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/24/212824/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/16"}}},"commit":{"parents":[{"commit":"36e2d74f8df7af860f26c7edb842e06396c916f5","subject":"Merge \"Tweak Swift AIO docs, update CentOS and Fedora\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/36e2d74f8df7af860f26c7edb842e06396c916f5"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-11-05 23:48:58.000000000","tz":0},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/add840a1e5dcd8148db4bf4975f00ed9b58d2cf6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/add840a1e5dcd8148db4bf4975f00ed9b58d2cf6"}]},"branch":"refs/heads/master"},"87d48b77492ecd6de867c61c70b64b6da41ef5a6":{"kind":"TRIVIAL_REBASE","_number":17,"created":"2019-12-13 17:58:46.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/24/212824/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/17"}}},"commit":{"parents":[{"commit":"05e4bb30b64d223c024127335870fa7c267f08ae","subject":"Update list of experimental upgrade tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/05e4bb30b64d223c024127335870fa7c267f08ae"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2019-12-13 17:58:16.000000000","tz":-360},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/87d48b77492ecd6de867c61c70b64b6da41ef5a6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/87d48b77492ecd6de867c61c70b64b6da41ef5a6"}]},"branch":"refs/heads/master"},"088da06bd465f50f0619acbee71039f95d4291ba":{"kind":"REWORK","_number":18,"created":"2019-12-13 19:12:07.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/24/212824/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/18"}}},"commit":{"parents":[{"commit":"05e4bb30b64d223c024127335870fa7c267f08ae","subject":"Update list of experimental upgrade tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/05e4bb30b64d223c024127335870fa7c267f08ae"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2019-12-13 19:11:56.000000000","tz":-360},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/088da06bd465f50f0619acbee71039f95d4291ba"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/088da06bd465f50f0619acbee71039f95d4291ba"}]},"branch":"refs/heads/master"},"70385420121b2bf9a41e895c06a6989b533bbe56":{"kind":"TRIVIAL_REBASE","_number":19,"created":"2020-01-06 06:03:07.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/24/212824/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/19"}}},"commit":{"parents":[{"commit":"e890b0f0fcdf751a2058c1e46da090648d9a0dc8","subject":"Merge \"WSGI server workers must drop_privledges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e890b0f0fcdf751a2058c1e46da090648d9a0dc8"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2019-12-16 22:24:06.000000000","tz":-360},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/70385420121b2bf9a41e895c06a6989b533bbe56"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/70385420121b2bf9a41e895c06a6989b533bbe56"}]},"branch":"refs/heads/master"},"9b69116b5c552f1edd477c6afa838874fceedaae":{"kind":"TRIVIAL_REBASE","_number":20,"created":"2020-01-07 00:52:44.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/24/212824/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/20"}}},"commit":{"parents":[{"commit":"4edfec339ed65ce6cb3832576d26a9e25767cd0f","subject":"Merge \"Fix  the duplicated words issue like \"the the \"\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4edfec339ed65ce6cb3832576d26a9e25767cd0f"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2020-01-07 00:34:25.000000000","tz":-360},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9b69116b5c552f1edd477c6afa838874fceedaae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9b69116b5c552f1edd477c6afa838874fceedaae"}]},"branch":"refs/heads/master"},"4a166b91a3d4ced48173de44c865dad48e118de5":{"kind":"TRIVIAL_REBASE","_number":21,"created":"2020-01-16 16:02:35.000000000","uploader":{"_account_id":18142,"name":"David Sariel","email":"dsariel@redhat.com","username":"dsariel"},"ref":"refs/changes/24/212824/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/212824/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/212824/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/212824/21"}}},"commit":{"parents":[{"commit":"5b26b749b58f93ee37bbca26ed3f6a13d9a31bc1","subject":"Drop use of unittest2","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5b26b749b58f93ee37bbca26ed3f6a13d9a31bc1"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2015-08-13 22:05:25.000000000","tz":-300},"committer":{"name":"dsariel","email":"dsariel@redhat.com","date":"2020-01-16 14:39:52.000000000","tz":120},"subject":"Let developers/operators add watchers to object audit","message":"Let developers/operators add watchers to object audit\n\nSwift operators may find it useful to operate on each object in their\ncluster in some way. This commit provides them a way to hook into the\nobject auditor with a simple, clearly-defined boundary so that they\ncan iterate over their objects without additional disk IO.\n\nFor example, a cluster operator may want to scan for objects with\nparticular MD5 checksums and take actions based on that (e.g. pirated\nmovies). Other operators may want to locate old DLO manifests and\nconvert them to SLO manifests. This can be used after a cluster fills\nup to locate objects that aren\u0027t in container listings. Now that Swift\nhas encryption support, this could be used to locate unencrypted\nobjects. The list goes on.\n\nThis commit makes the auditor locate, via entry points, the watchers\nnamed in its config file.\n\nA watcher is a class with at least these four methods:\n\n   __init__(self, conf, logger, **kwargs)\n\n   start(self, audit_type, **kwargs)\n\n   see_object(self, sequence_number, policy_index, object_metadata,\n              partition, **kwargs)\n\n   end(self, final_sequence_number, **kwargs)\n\nThe auditor will call watcher.start(audit_type) at the start of an\naudit pass, watcher.see_object(...) for each object audited, and\nwatcher.end() at the end of an audit pass. All method arguments are\npassed as keyword args.\n\nThe user-supplied watcher code runs entirely in a child process of the\nauditor process (of which there may be many, if parallel audits are in\nuse). This lets the auditor continue working even if the watcher\ncrashes or hangs. These subprocesses are automatically killed (after a\nshort delay) upon completion of an audit pass.\n\nChange-Id: Id11c391da545bc3851a5b687f4b06e0d9239bdcd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4a166b91a3d4ced48173de44c865dad48e118de5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4a166b91a3d4ced48173de44c865dad48e118de5"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
