)]}'
{"id":"openstack%2Fswift~685455","triplet_id":"openstack%2Fswift~master~I0f9cecd11f00b522a8486972551cb30af151ce32","project":"openstack/swift","branch":"master","topic":"bug/1844368","hashtags":[],"change_id":"I0f9cecd11f00b522a8486972551cb30af151ce32","subject":"py3: Allow percentages in configs","status":"MERGED","created":"2019-09-27 18:41:24.000000000","updated":"2019-09-30 02:51:11.000000000","submitted":"2019-09-30 02:49:59.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"685455-1569811799006-36d4cedc","meta_rev_id":"e867406520652e88265e6f7368e71aada6fec780","_number":685455,"virtual_id_number":685455,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2019-09-30 02:49:58.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":2,"date":"2019-09-30 01:41:28.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":2,"date":"2019-09-27 20:57:47.000000000","_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":1,"date":"2019-09-30 01:41:28.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-09-27 20:57:47.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":"2019-09-30 01:41:28.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"},{"updated":"2019-09-30 02:49:58.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":"31ade208a245fa47e1fcc7c1eb89e3807b120db1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-09-27 18:41:24.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"2a630866cf1235b60922d6264dbbcd1ba1ef5adb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 19:51:24.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3da1532b30ba4de7b4ba18f31400d031 : SUCCESS in 5m 21s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/b35e49d0fa684eb3bdbba62af97f46b2 : SUCCESS in 55m 49s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/10cb2d47b6724a349d1165f16f5a3283 : SUCCESS in 51m 48s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6907b2bb520f4e629a4a24ab814b8a66 : SUCCESS in 8m 52s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/bab2f15f64a448a1b346f0a65679d6d2 : SUCCESS in 12m 32s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/a2fba97402584a71adfdf2e5710ed1b7 : SUCCESS in 18m 53s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/fc5ca15b77cf4784b00ccd0c5ca18745 : SUCCESS in 15m 20s\n- swift-tox-func https://zuul.opendev.org/t/openstack/build/b6d7ab95c1f14ef581eb3735db578031 : SUCCESS in 17m 11s\n- swift-tox-func-encryption https://zuul.opendev.org/t/openstack/build/e25d22a2492c45a989b438e756c8ac0f : SUCCESS in 10m 18s\n- swift-tox-func-domain-remap-staticweb https://zuul.opendev.org/t/openstack/build/f58c3ed7973a4647970c4f864f268b14 : SUCCESS in 8m 50s\n- swift-tox-func-ec https://zuul.opendev.org/t/openstack/build/036dd9e116504d31ac5c6ff1cf9e0c44 : SUCCESS in 8m 24s\n- swift-tox-func-s3api https://zuul.opendev.org/t/openstack/build/0eefbfaa601b4eb8a33ad86856d56d8d : SUCCESS in 13m 04s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/21a36046a25e4686be635b9fca2c4b43 : SUCCESS in 14m 21s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/ee30af0046a34d0ca02bb9f8b6da4d33 : SUCCESS in 13m 30s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/699f06e7c7db4b468c4eceb02fb49204 : SUCCESS in 11m 13s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/c1545ada8cf948a58947d3ae25568377 : SUCCESS in 11m 31s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/1bd8e7739cb64623a2acd44fca0c03a1 : SUCCESS in 12m 55s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e82265fc049442148f77142769b3e9fc : SUCCESS in 23m 31s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/146f486a797346a38d40402ffc4aaf05 : SUCCESS in 31m 53s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f3896be2fae6444ea68d39d5687dd3cb : SUCCESS in 34m 46s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/7455a0ede01746c6bf54c04f2bc4ac75 : SUCCESS in 35m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e461011064d14fc988f8d701c24ba618 : SUCCESS in 38m 28s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2605f06fcb4f420a9aad5859e2945c09 : SUCCESS in 13m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d4f959eba2b245cb9deac6b1f6459d04 : SUCCESS in 5m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/620581c1c8eb43cda236e7a18ecb8c69 : SUCCESS in 19m 26s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/012b4a699c2842c3b144c98efe585e2d : SUCCESS in 1h 03m 24s","accounts_in_message":[],"_revision_number":1},{"id":"0346c724991069686b55ceed8a69608f5f3ebf9f","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-09-27 20:57:47.000000000","message":"Patch Set 1: Code-Review+2\n\nMan... I\u0027m so allergic to monkey-patching that I would rather add ConfigParser(interpolation\u003dNicerInterpolation()) in places where 1% is likely to be present. But okay.","accounts_in_message":[],"_revision_number":1},{"id":"131829402308cf1c0cab27b0bd133dec50b284c5","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-09-30 01:41:28.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\nBrilliant Tim. I started having a poke at this and fell down a configpaser and paste rabbit hole, basically figuring out how it all worked together.\n\nOverriding the default interpolation. Love it.","accounts_in_message":[],"_revision_number":1},{"id":"6af2fb6f5857de882347424ecfc6e395af01a134","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 01:41:41.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"7dc84dd821e780538cb6301d1ec1c5d0c5efe678","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 02:49:58.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7f6d9a3918ea4a66af0773125ede599d : SUCCESS in 4m 59s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/8fc2365f27ae4b53b750016baf56ed79 : SUCCESS in 1h 02m 43s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/3c284df1061e4c0199a6137544d725f4 : SUCCESS in 56m 53s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/dc7225e2f1e8480a85bbc1ea0d34202f : SUCCESS in 8m 25s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/32e1710410894d9fa9cbfad7f5a20eb3 : SUCCESS in 10m 36s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/cc94952b83224aaf99c1432a6bd323e0 : SUCCESS in 12m 12s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c0b66392826d452b9083be46163d5649 : SUCCESS in 11m 07s\n- swift-tox-func https://zuul.opendev.org/t/openstack/build/b375885e7be642a1aa10bb3420bca22e : SUCCESS in 8m 48s\n- swift-tox-func-encryption https://zuul.opendev.org/t/openstack/build/a592f78171ae463bbc957fef9dd0d658 : SUCCESS in 10m 11s\n- swift-tox-func-domain-remap-staticweb https://zuul.opendev.org/t/openstack/build/5c3e107f080f49449a290e53d571b3c7 : SUCCESS in 9m 03s\n- swift-tox-func-ec https://zuul.opendev.org/t/openstack/build/522a9f0959b2448fbec29852c1e78cb1 : SUCCESS in 9m 41s\n- swift-tox-func-s3api https://zuul.opendev.org/t/openstack/build/46bb0fb3dc0349fbafaed09fa05f0aca : SUCCESS in 11m 53s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/7fd7adba8f514a6fa1ea10d74858167b : SUCCESS in 8m 42s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/d85cbefd4c344e30a36284fb968f06cd : SUCCESS in 9m 16s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/8513ba86e28249a0bd26560233468dea : SUCCESS in 9m 56s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/659ced67e3ab49279353a7123ad47207 : SUCCESS in 13m 52s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/7fd7af6685f34ef2a229b983206da69b : SUCCESS in 33m 19s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5dfc603c35fd45d6a3a561fb28aef4dc : SUCCESS in 28m 12s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/3a03bb915c5c44acb697ac4188a1b80f : SUCCESS in 27m 42s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f205b55b45fd4a3cb0bb885a8bf7a562 : SUCCESS in 26m 15s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b7f2523b4f8e4a019ddf185b51ec504a : SUCCESS in 12m 39s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cc62935490b04e18b7ca208675a0db03 : SUCCESS in 5m 17s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2834d2ae106e40f382df1e9aaaca8eac : SUCCESS in 59m 30s","accounts_in_message":[],"_revision_number":1},{"id":"e9d67d70a9d66025dc1ab4205847d3c546f8091f","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 02:49:59.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1},{"id":"99aa5e9fd8035e943ce443eabf92b2ccf2aaf33d","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 02:51:11.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/66467272be5f4452b339263cb7807a3c : SUCCESS in 53s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/b57317c0ba10461283a87b4966693e9a : SUCCESS in 45s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"9a33365f064c2fbde732780982e3d324b488e677","revisions":{"9a33365f064c2fbde732780982e3d324b488e677":{"kind":"REWORK","_number":1,"created":"2019-09-27 18:41:24.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/55/685455/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/55/685455/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/55/685455/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/55/685455/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/55/685455/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/55/685455/1"}}},"commit":{"parents":[{"commit":"2d87ad6333c3b0b9f7403d2ceb0b282cc1628c6b","subject":"Merge \"sharder: Keep cleaving on empty shard ranges\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2d87ad6333c3b0b9f7403d2ceb0b282cc1628c6b"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-09-27 18:04:43.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-09-27 18:41:12.000000000","tz":-420},"subject":"py3: Allow percentages in configs","message":"py3: Allow percentages in configs\n\nPreviously, configs like\n\n    fallocate_reserve \u003d 1%\n\nwould cause a py3 backend server to fail to start, complaining like\n\n    configparser.InterpolationSyntaxError: Error in file\n    /etc/swift/object-server/1.conf.d: \u0027%\u0027 must be followed\n    by \u0027%\u0027 or \u0027(\u0027, found: \u0027%\u0027\n\nThis could also come up in proxy-server configs, with things like\npercent signs in tempauth password.\n\nIn general, we haven\u0027t really thought much about interpolation in\nconfigs. Python\u0027s default ConfigParser has always supported it, though,\nso we got it \"for free\". On py2, we didn\u0027t really have to think about\nit, since values like \"1%\" would pass through just fine. (It would blow\nup a SafeConfigParser, but a normal ConfigParser only does replacements\nwhen there\u0027s something like a \"%(opt)s\" in the value.)\n\nOn py3, SafeConfigParser became ConfigParser, and the old interpolation\nmode (AFAICT) doesn\u0027t exist.\n\nUnfortunatley, since we \"supported\" interpolation, we have to assume\nthere are deployments in the wild that use it, and try not to break\nthem.  So, do what we can to mimic the py2 behavior.\n\nChange-Id: I0f9cecd11f00b522a8486972551cb30af151ce32\nCloses-Bug: #1844368\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9a33365f064c2fbde732780982e3d324b488e677"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9a33365f064c2fbde732780982e3d324b488e677"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
