)]}'
{"id":"openstack%2Fopenstacksdk~657848","triplet_id":"openstack%2Fopenstacksdk~master~Ifd6c0847102af4f46e361dcb1a665829c77553b9","project":"openstack/openstacksdk","branch":"master","topic":"657848","hashtags":[],"change_id":"Ifd6c0847102af4f46e361dcb1a665829c77553b9","subject":"Add support for vendor hooks","status":"MERGED","created":"2019-05-08 16:23:44.000000000","updated":"2019-05-23 10:11:21.000000000","submitted":"2019-05-23 10:11:21.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":10,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"657848-1558606281175-7bf0c74d","meta_rev_id":"6fa7778b987d53bc6145f85acc1630c75fd046b7","_number":657848,"virtual_id_number":657848,"owner":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":2,"date":"2019-05-23 10:11:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"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":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"all":[{"value":2,"date":"2019-05-23 08:13:08.000000000","_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"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":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2019-05-23 08:43:47.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Allow-Post-Review":{"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{" 0":"Abstain","+1":"Approved for Zuul Post Review Pipeline"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-05-23 08:13:08.000000000","updated_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"reviewer":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"state":"REVIEWER"},{"updated":"2019-05-23 08:43:47.000000000","updated_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"reviewer":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"state":"REVIEWER"},{"updated":"2019-05-23 10:11:20.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":"3be4ebede3a67f4670393c61820cf9d61c73251e","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2019-05-08 16:23:44.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"0f4e2068a6c1444c3bd88f7c1d4c2be2facbe542","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-08 17:57:35.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-lower-constraints http://logs.openstack.org/48/657848/1/check/openstack-tox-lower-constraints/c88af86/ : SUCCESS in 4m 14s\n- openstack-tox-pep8 http://logs.openstack.org/48/657848/1/check/openstack-tox-pep8/c070585/ : SUCCESS in 4m 09s\n- openstack-tox-py27 http://logs.openstack.org/48/657848/1/check/openstack-tox-py27/77378a5/ : SUCCESS in 4m 05s\n- openstack-tox-py36 http://logs.openstack.org/48/657848/1/check/openstack-tox-py36/b1a7667/ : SUCCESS in 4m 21s\n- openstack-tox-py37 http://logs.openstack.org/48/657848/1/check/openstack-tox-py37/bf75248/ : SUCCESS in 4m 37s\n- openstacksdk-functional-devstack-tips http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-tips/6b5e13f/ : SUCCESS in 1h 00m 40s\n- openstacksdk-functional-devstack-tips-python2 http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-tips-python2/7025d23/ : SUCCESS in 1h 02m 46s\n- openstacksdk-tox-py36-tips http://logs.openstack.org/48/657848/1/check/openstacksdk-tox-py36-tips/f0eae74/ : SUCCESS in 3m 25s\n- os-client-config-tox-py27-tips http://logs.openstack.org/48/657848/1/check/os-client-config-tox-py27-tips/31ece42/ : SUCCESS in 4m 54s\n- os-client-config-tox-py37-tips http://logs.openstack.org/48/657848/1/check/os-client-config-tox-py37-tips/3ac7f56/ : SUCCESS in 4m 45s\n- osc-tox-py27-tips http://logs.openstack.org/48/657848/1/check/osc-tox-py27-tips/14d55f0/ : SUCCESS in 5m 41s\n- osc-tox-py36-tips http://logs.openstack.org/48/657848/1/check/osc-tox-py36-tips/030d9a8/ : SUCCESS in 5m 45s\n- openstack-tox-docs http://logs.openstack.org/48/657848/1/check/openstack-tox-docs/cc8d45a/html/ : SUCCESS in 3m 42s\n- openstacksdk-ansible-devel-functional-devstack http://logs.openstack.org/48/657848/1/check/openstacksdk-ansible-devel-functional-devstack/0491bdb/ : SUCCESS in 43m 30s (non-voting)\n- openstacksdk-ansible-stable-2.6-functional-devstack http://logs.openstack.org/48/657848/1/check/openstacksdk-ansible-stable-2.6-functional-devstack/1a80df2/ : SUCCESS in 41m 34s (non-voting)\n- openstacksdk-functional-devstack http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack/712c304/ : SUCCESS in 1h 12m 25s\n- openstacksdk-functional-devstack-networking http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-networking/11c0091/ : SUCCESS in 1h 28m 26s\n- openstacksdk-functional-devstack-senlin http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-senlin/e2780e6/ : SUCCESS in 56m 57s\n- openstacksdk-functional-devstack-magnum http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-magnum/b3cb4b7/ : SUCCESS in 58m 29s (non-voting)\n- openstacksdk-functional-devstack-masakari http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-masakari/1dc5312/ : SUCCESS in 43m 10s (non-voting)\n- openstacksdk-functional-devstack-ironic http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-ironic/0cb85ee/ : SUCCESS in 32m 44s (non-voting)\n- openstacksdk-functional-devstack-python2 http://logs.openstack.org/48/657848/1/check/openstacksdk-functional-devstack-python2/144f3e8/ : SUCCESS in 55m 54s\n- osc-functional-devstack-tips http://logs.openstack.org/48/657848/1/check/osc-functional-devstack-tips/66f2b53/ : SUCCESS in 54m 07s (non-voting)\n- nodepool-functional-py35-src http://logs.openstack.org/48/657848/1/check/nodepool-functional-py35-src/4b72fdc/ : SUCCESS in 49m 17s\n- bifrost-integration-tinyipa-ubuntu-xenial http://logs.openstack.org/48/657848/1/check/bifrost-integration-tinyipa-ubuntu-xenial/05ef6f1/ : SUCCESS in 19m 32s\n- metalsmith-integration-openstacksdk-src http://logs.openstack.org/48/657848/1/check/metalsmith-integration-openstacksdk-src/507ccec/ : SUCCESS in 44m 51s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"7c94ed1376b04214f4b3278e5c8a01f47f3b38ec","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2019-05-10 07:14:48.000000000","message":"Patch Set 1: Code-Review-1\n\n(7 comments)","accounts_in_message":[],"_revision_number":1},{"id":"0c55bb614db90355e87bb0fa6c1ad271f1a5ea9c","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2019-05-13 18:15:27.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"2e8858cec5e0ed0000b2976e5326b84113cdd639","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-13 19:30:28.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-lower-constraints http://logs.openstack.org/48/657848/2/check/openstack-tox-lower-constraints/835697d/ : SUCCESS in 3m 29s\n- openstack-tox-pep8 http://logs.openstack.org/48/657848/2/check/openstack-tox-pep8/d66153d/ : SUCCESS in 3m 58s\n- openstack-tox-py27 http://logs.openstack.org/48/657848/2/check/openstack-tox-py27/43cbb29/ : SUCCESS in 3m 21s\n- openstack-tox-py36 http://logs.openstack.org/48/657848/2/check/openstack-tox-py36/ad05e65/ : SUCCESS in 4m 29s\n- openstack-tox-py37 http://logs.openstack.org/48/657848/2/check/openstack-tox-py37/23c1e2d/ : SUCCESS in 3m 11s\n- openstacksdk-functional-devstack-tips http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-tips/0e7c4b9/ : SUCCESS in 50m 43s\n- openstacksdk-functional-devstack-tips-python2 http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-tips-python2/0b29faf/ : SUCCESS in 1h 03m 21s\n- openstacksdk-tox-py36-tips http://logs.openstack.org/48/657848/2/check/openstacksdk-tox-py36-tips/40cebd3/ : SUCCESS in 2m 51s\n- os-client-config-tox-py27-tips http://logs.openstack.org/48/657848/2/check/os-client-config-tox-py27-tips/9feb3c5/ : SUCCESS in 5m 35s\n- os-client-config-tox-py37-tips http://logs.openstack.org/48/657848/2/check/os-client-config-tox-py37-tips/a17b199/ : SUCCESS in 5m 22s\n- osc-tox-py27-tips http://logs.openstack.org/48/657848/2/check/osc-tox-py27-tips/026c3ab/ : SUCCESS in 5m 04s\n- osc-tox-py36-tips http://logs.openstack.org/48/657848/2/check/osc-tox-py36-tips/e08091d/ : SUCCESS in 6m 09s\n- openstack-tox-docs http://logs.openstack.org/48/657848/2/check/openstack-tox-docs/f1f2adb/html/ : SUCCESS in 3m 31s\n- build-openstack-releasenotes http://logs.openstack.org/48/657848/2/check/build-openstack-releasenotes/1dbd717/html/ : SUCCESS in 2m 42s\n- openstacksdk-ansible-devel-functional-devstack http://logs.openstack.org/48/657848/2/check/openstacksdk-ansible-devel-functional-devstack/ec4e24f/ : SUCCESS in 31m 24s (non-voting)\n- openstacksdk-ansible-stable-2.6-functional-devstack http://logs.openstack.org/48/657848/2/check/openstacksdk-ansible-stable-2.6-functional-devstack/f7d7bc0/ : SUCCESS in 41m 15s (non-voting)\n- openstacksdk-functional-devstack http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack/2ab9fae/ : SUCCESS in 48m 13s\n- openstacksdk-functional-devstack-networking http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-networking/72c8991/ : SUCCESS in 1h 13m 46s\n- openstacksdk-functional-devstack-senlin http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-senlin/7cea017/ : SUCCESS in 59m 20s\n- openstacksdk-functional-devstack-magnum http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-magnum/264f907/ : SUCCESS in 58m 47s (non-voting)\n- openstacksdk-functional-devstack-masakari http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-masakari/18d1fa4/ : SUCCESS in 33m 08s (non-voting)\n- openstacksdk-functional-devstack-ironic http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-ironic/8f56c61/ : SUCCESS in 33m 26s (non-voting)\n- openstacksdk-functional-devstack-python2 http://logs.openstack.org/48/657848/2/check/openstacksdk-functional-devstack-python2/ec79364/ : SUCCESS in 1h 02m 47s\n- osc-functional-devstack-tips http://logs.openstack.org/48/657848/2/check/osc-functional-devstack-tips/558aafa/ : SUCCESS in 54m 18s (non-voting)\n- nodepool-functional-py35-src http://logs.openstack.org/48/657848/2/check/nodepool-functional-py35-src/227f458/ : SUCCESS in 40m 09s\n- bifrost-integration-tinyipa-ubuntu-xenial http://logs.openstack.org/48/657848/2/check/bifrost-integration-tinyipa-ubuntu-xenial/ec47356/ : SUCCESS in 19m 05s\n- metalsmith-integration-openstacksdk-src http://logs.openstack.org/48/657848/2/check/metalsmith-integration-openstacksdk-src/e9aa296/ : SUCCESS in 49m 35s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"4af8ba0fa09cc5e5b8be7212ddc465da14fac333","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2019-05-23 08:13:08.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"76777e3df53835da5cd64f7240285816d39d3e9f","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2019-05-23 08:43:47.000000000","message":"Patch Set 2: Workflow+1\n\n(3 comments)\n\nNice! Some nits for a follow-up inline.","accounts_in_message":[],"_revision_number":2},{"id":"dc989050908ec03cf1a34f55fe22e927d40415a8","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-23 08:44:00.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"e815c6ec598155e16d26d08643d3473c244664be","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-23 10:11:20.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-lower-constraints http://logs.openstack.org/48/657848/2/gate/openstack-tox-lower-constraints/adfceaf/ : SUCCESS in 3m 21s\n- openstack-tox-pep8 http://logs.openstack.org/48/657848/2/gate/openstack-tox-pep8/08388e2/ : SUCCESS in 3m 33s\n- openstack-tox-py27 http://logs.openstack.org/48/657848/2/gate/openstack-tox-py27/a204b6b/ : SUCCESS in 3m 34s\n- openstack-tox-py36 http://logs.openstack.org/48/657848/2/gate/openstack-tox-py36/66fef3d/ : SUCCESS in 3m 25s\n- openstack-tox-py37 http://logs.openstack.org/48/657848/2/gate/openstack-tox-py37/7a3fd9c/ : SUCCESS in 3m 25s\n- openstacksdk-functional-devstack-tips http://logs.openstack.org/48/657848/2/gate/openstacksdk-functional-devstack-tips/cf071d3/ : SUCCESS in 56m 31s\n- openstacksdk-functional-devstack-tips-python2 http://logs.openstack.org/48/657848/2/gate/openstacksdk-functional-devstack-tips-python2/0e669f9/ : SUCCESS in 57m 10s\n- openstacksdk-tox-py36-tips http://logs.openstack.org/48/657848/2/gate/openstacksdk-tox-py36-tips/5886f3e/ : SUCCESS in 3m 09s\n- os-client-config-tox-py27-tips http://logs.openstack.org/48/657848/2/gate/os-client-config-tox-py27-tips/d2e8495/ : SUCCESS in 4m 20s\n- os-client-config-tox-py37-tips http://logs.openstack.org/48/657848/2/gate/os-client-config-tox-py37-tips/c85e053/ : SUCCESS in 4m 57s\n- osc-tox-py27-tips http://logs.openstack.org/48/657848/2/gate/osc-tox-py27-tips/cebd0e7/ : SUCCESS in 5m 19s\n- osc-tox-py36-tips http://logs.openstack.org/48/657848/2/gate/osc-tox-py36-tips/1f99941/ : SUCCESS in 5m 15s\n- openstack-tox-docs http://logs.openstack.org/48/657848/2/gate/openstack-tox-docs/f4c0b9a/html/ : SUCCESS in 4m 00s\n- build-openstack-releasenotes http://logs.openstack.org/48/657848/2/gate/build-openstack-releasenotes/5ab042c/html/ : SUCCESS in 3m 12s\n- openstacksdk-functional-devstack http://logs.openstack.org/48/657848/2/gate/openstacksdk-functional-devstack/048a41d/ : SUCCESS in 55m 50s\n- openstacksdk-functional-devstack-python2 http://logs.openstack.org/48/657848/2/gate/openstacksdk-functional-devstack-python2/4aa3d72/ : SUCCESS in 1h 01m 10s\n- openstacksdk-functional-devstack-networking http://logs.openstack.org/48/657848/2/gate/openstacksdk-functional-devstack-networking/ec320bc/ : SUCCESS in 1h 20m 22s\n- openstacksdk-functional-devstack-senlin http://logs.openstack.org/48/657848/2/gate/openstacksdk-functional-devstack-senlin/e461900/ : SUCCESS in 56m 03s\n- nodepool-functional-py35-src http://logs.openstack.org/48/657848/2/gate/nodepool-functional-py35-src/517a104/ : SUCCESS in 40m 33s\n- bifrost-integration-tinyipa-ubuntu-xenial http://logs.openstack.org/48/657848/2/gate/bifrost-integration-tinyipa-ubuntu-xenial/aee93cb/ : SUCCESS in 18m 17s","accounts_in_message":[],"_revision_number":2},{"id":"b63d981839bad1561ccac55a34e5ab0f8535ceec","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-05-23 10:11:21.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"75b0f292f88fde7c6f4789a2af918143fc11f087","revisions":{"6bcaf2ff7b6b292d8b3e71179d0a6490aa3d1e87":{"kind":"REWORK","_number":1,"created":"2019-05-08 16:23:44.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/48/657848/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/48/657848/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/1"}}},"commit":{"parents":[{"commit":"a8e2737127bfe5a07e8654c26d6889c818ae1c91","subject":"Merge \"Skip attaching FloatingIP if it is already attached\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/a8e2737127bfe5a07e8654c26d6889c818ae1c91"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2019-05-08 16:23:31.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2019-05-08 16:23:31.000000000","tz":120},"subject":"Add support for vendor hooks","message":"Add support for vendor hooks\n\nAdd possibility to pass a hook in the vendor config, clouds-public.* or \nupon building a connection. This should be a string parameter - function \nname to be executed. This gives possibility to register new services of \nthe cloud automatically or alter behavior of the present services.\nIt would have not been necessary, if public clouds followed \nupstream-first aproach.\n\nChange-Id: Ifd6c0847102af4f46e361dcb1a665829c77553b9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/6bcaf2ff7b6b292d8b3e71179d0a6490aa3d1e87"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/6bcaf2ff7b6b292d8b3e71179d0a6490aa3d1e87"}]},"branch":"refs/heads/master"},"75b0f292f88fde7c6f4789a2af918143fc11f087":{"kind":"REWORK","_number":2,"created":"2019-05-13 18:15:27.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/48/657848/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/48/657848/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/48/657848/2"}}},"commit":{"parents":[{"commit":"a8e2737127bfe5a07e8654c26d6889c818ae1c91","subject":"Merge \"Skip attaching FloatingIP if it is already attached\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/a8e2737127bfe5a07e8654c26d6889c818ae1c91"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2019-05-13 18:15:07.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2019-05-13 18:15:07.000000000","tz":120},"subject":"Add support for vendor hooks","message":"Add support for vendor hooks\n\nAdd possibility to pass a hook in the vendor config, clouds-public.* or \nupon building a connection. This should be a string parameter - function\nname to be executed. This gives possibility to register new services of \nthe cloud automatically or alter behavior of the present services.\nIt would have not been necessary, if public clouds followed \nupstream-first aproach.\n\nWhile we are here fix warnings on not closed files in the test_json\n\nChange-Id: Ifd6c0847102af4f46e361dcb1a665829c77553b9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/75b0f292f88fde7c6f4789a2af918143fc11f087"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/75b0f292f88fde7c6f4789a2af918143fc11f087"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
