)]}'
{"id":"openstack%2Fopenstack-ansible-haproxy_server~724531","triplet_id":"openstack%2Fopenstack-ansible-haproxy_server~master~I2f5f9457c43c68f2881bf9d44f43434ca7b43859","project":"openstack/openstack-ansible-haproxy_server","branch":"master","topic":"certbot-ha","hashtags":[],"change_id":"I2f5f9457c43c68f2881bf9d44f43434ca7b43859","subject":"Use a certbot pre-hook to ensure haproxy backend is up before renewal","status":"MERGED","created":"2020-04-30 06:11:10.000000000","updated":"2020-05-07 18:54:51.000000000","submitted":"2020-05-07 18:54:51.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":"724531-1588877691778-92884968","meta_rev_id":"8014d8f504dd9af96406405ccf9b6c1a438054e8","_number":724531,"virtual_id_number":724531,"owner":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-05-07 18:54:51.000000000","post_submit":true,"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":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":2,"date":"2020-05-07 13:15:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":2,"date":"2020-05-07 13:15:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},{"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":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":1,"date":"2020-05-07 18:36:47.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},{"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},"Backport-Candidate":{"all":[{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-05-06 16:47:04.000000000","updated_by":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"reviewer":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"state":"REVIEWER"},{"updated":"2020-05-07 18:36:47.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"REVIEWER"},{"updated":"2020-05-07 18:54:51.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":"603beff324c77c52eac10560fbd7fb30cfd314d3","author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"date":"2020-04-30 06:11:10.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9c7cc4094dd8d18fd4f06533e42993cc17aca4a1","author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"date":"2020-04-30 06:15:22.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"67ead80dd552a6527cdc3191b2b1d159291a2d2a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-30 06:38:40.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-ansible-linters https://zuul.opendev.org/t/openstack/build/b66b2589c6294f23a61b26c3f469cde3 : SUCCESS in 9m 23s\n- openstack-ansible-functional-debian-buster https://zuul.opendev.org/t/openstack/build/5637fc3a774147d4bb7b06421dc91b93 : SUCCESS in 10m 10s\n- openstack-ansible-functional-centos-7 https://zuul.opendev.org/t/openstack/build/c7ad05b959404deea4307b79a117a689 : SUCCESS in 12m 42s\n- openstack-ansible-functional-ubuntu-bionic https://zuul.opendev.org/t/openstack/build/a910bd9e771d4fc8a88a5bd99b264568 : SUCCESS in 10m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6e209ce539e448acb9692c3463689124 : SUCCESS in 10m 35s","accounts_in_message":[],"_revision_number":2},{"id":"f07c77f5d2b1e5d8453212a47f21a9e8428efdcf","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2020-05-05 13:40:54.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"0c0c095a8d0cd37438af77cc2db109534b66b8be","author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"date":"2020-05-06 16:47:04.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"697e99899fa3eeaa24459c0f144ac76589825be5","author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"date":"2020-05-07 13:15:54.000000000","message":"Patch Set 3: Patch Set 2 was rebased","accounts_in_message":[],"_revision_number":3},{"id":"edcc1ade382c60fd19a91f0d7079fcbfa50074d5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-05-07 13:37:15.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-ansible-linters https://zuul.opendev.org/t/openstack/build/aa07441fd2884836a98765b79f12fadb : SUCCESS in 11m 40s\n- openstack-ansible-functional-debian-buster https://zuul.opendev.org/t/openstack/build/7d9fe69248104d1dbdaa1b2f29be81a3 : SUCCESS in 11m 31s\n- openstack-ansible-functional-centos-7 https://zuul.opendev.org/t/openstack/build/ab24f70c746a4f768d7dbbe536086f39 : SUCCESS in 13m 35s\n- openstack-ansible-functional-ubuntu-bionic https://zuul.opendev.org/t/openstack/build/189c7a7fbc7b4776957482f72cc4652a : SUCCESS in 8m 58s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/828dd6dab8254ff7a2ed5ef936ac8bd8 : SUCCESS in 8m 46s","accounts_in_message":[],"_revision_number":3},{"id":"d7658f5f4487b37dad585b720ad5aefa9743a552","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2020-05-07 18:36:47.000000000","message":"Patch Set 3: Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"644888ede64acc1cadf824cb4d8ee3520dcc18f2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-05-07 18:37:00.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"fa71c908504e0064b2f07cc6d925bd57101ec1f9","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-05-07 18:54:51.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":3},{"id":"648c8fab0260bd57a60f894972b45046d4f53ba7","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-05-07 18:54:51.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-ansible-linters https://zuul.opendev.org/t/openstack/build/1ed5ead9944f4b31a543df051acef693 : SUCCESS in 6m 48s\n- openstack-ansible-functional-debian-buster https://zuul.opendev.org/t/openstack/build/c551abfe7ea549e8aaf2f594ba4ac920 : SUCCESS in 8m 56s\n- openstack-ansible-functional-centos-7 https://zuul.opendev.org/t/openstack/build/3bd3050542264c0f911f3dfebd2aec46 : SUCCESS in 13m 07s\n- openstack-ansible-functional-ubuntu-bionic https://zuul.opendev.org/t/openstack/build/7927fff2614046a2953a518a44b91d8a : SUCCESS in 10m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/41a89095d84d406c98c6b87deea2686d : SUCCESS in 6m 19s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"dbc8fe1fe2ec675655624ec7ee3996b20ee6e7a4","revisions":{"a3ad029f4fed7cda1a336d93d08f240dc2243fdc":{"kind":"REWORK","_number":1,"created":"2020-04-30 06:11:10.000000000","uploader":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"ref":"refs/changes/31/724531/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-haproxy_server","ref":"refs/changes/31/724531/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/1"}}},"commit":{"parents":[{"commit":"a970be33e4113a2f58d96c93ae1e8d0add8ef706","subject":"Allow ansible group for self signed certificate distribution to be overidden","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/a970be33e4113a2f58d96c93ae1e8d0add8ef706"}]}],"author":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2020-04-30 05:58:41.000000000","tz":60},"committer":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2020-04-30 06:10:35.000000000","tz":60},"subject":"Use a certbot pre-hook to ensure haproxy backend is up before renewal","message":"Use a certbot pre-hook to ensure haproxy backend is up before renewal\n\nWe use the built in python3 http server to bring up a temporary backend\non the node which wants to renew a certificate. The timeout set so that\nthe haproxy health check has noticed the backend come up before certbot\nruns.\n\nThere is otherwise a race condition between the haproxy healthcheck and\nthe certbot challenge request arriving at the acme-challenge endpoint.\n\nChange-Id: I2f5f9457c43c68f2881bf9d44f43434ca7b43859\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/a3ad029f4fed7cda1a336d93d08f240dc2243fdc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/a3ad029f4fed7cda1a336d93d08f240dc2243fdc"}]},"branch":"refs/heads/master"},"920ad5dde432463166ade804c07546ba4f62b26c":{"kind":"REWORK","_number":2,"created":"2020-04-30 06:15:22.000000000","uploader":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"ref":"refs/changes/31/724531/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-haproxy_server","ref":"refs/changes/31/724531/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/2"}}},"commit":{"parents":[{"commit":"a970be33e4113a2f58d96c93ae1e8d0add8ef706","subject":"Allow ansible group for self signed certificate distribution to be overidden","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/a970be33e4113a2f58d96c93ae1e8d0add8ef706"}]}],"author":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2020-04-30 05:58:41.000000000","tz":60},"committer":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2020-04-30 06:14:56.000000000","tz":60},"subject":"Use a certbot pre-hook to ensure haproxy backend is up before renewal","message":"Use a certbot pre-hook to ensure haproxy backend is up before renewal\n\nWe use the built in python3 http server to bring up a temporary backend\non the node which wants to renew a certificate. The timeout set so that\nthe haproxy health check has noticed the backend come up before certbot\nruns.\n\nThere is otherwise a race condition between the haproxy healthcheck and\nthe certbot challenge request arriving at the acme-challenge endpoint.\n\nChange-Id: I2f5f9457c43c68f2881bf9d44f43434ca7b43859\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/920ad5dde432463166ade804c07546ba4f62b26c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/920ad5dde432463166ade804c07546ba4f62b26c"}]},"branch":"refs/heads/master"},"dbc8fe1fe2ec675655624ec7ee3996b20ee6e7a4":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2020-05-07 13:15:54.000000000","uploader":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"ref":"refs/changes/31/724531/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-haproxy_server","ref":"refs/changes/31/724531/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-haproxy_server refs/changes/31/724531/3"}}},"commit":{"parents":[{"commit":"28eb2c1d1dbb3963c17c24d8ac5d43c6b0fcdc6e","subject":"Add documentation for HA HAProxy with LetsEncrypt certificates.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/28eb2c1d1dbb3963c17c24d8ac5d43c6b0fcdc6e"}]}],"author":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2020-04-30 05:58:41.000000000","tz":60},"committer":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2020-05-07 13:15:54.000000000","tz":0},"subject":"Use a certbot pre-hook to ensure haproxy backend is up before renewal","message":"Use a certbot pre-hook to ensure haproxy backend is up before renewal\n\nWe use the built in python3 http server to bring up a temporary backend\non the node which wants to renew a certificate. The timeout set so that\nthe haproxy health check has noticed the backend come up before certbot\nruns.\n\nThere is otherwise a race condition between the haproxy healthcheck and\nthe certbot challenge request arriving at the acme-challenge endpoint.\n\nChange-Id: I2f5f9457c43c68f2881bf9d44f43434ca7b43859\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/dbc8fe1fe2ec675655624ec7ee3996b20ee6e7a4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-haproxy_server/commit/dbc8fe1fe2ec675655624ec7ee3996b20ee6e7a4"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
