)]}'
{"id":"openstack%2Fneutron-lib~695205","triplet_id":"openstack%2Fneutron-lib~master~I2696c9e407cd5661a49d7d8c6b0232375682f827","project":"openstack/neutron-lib","branch":"master","topic":"rp-generation","hashtags":[],"change_id":"I2696c9e407cd5661a49d7d8c6b0232375682f827","subject":"Handle generation conflicts caused by concurrent updates","status":"MERGED","created":"2019-11-20 14:29:18.000000000","updated":"2020-01-01 21:40:19.000000000","submitted":"2020-01-01 21:38:58.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":17,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"695205-1577914739020-a23e576b","meta_rev_id":"00e8172533e3ac0ba8e26692baf5b83d98849bdc","_number":695205,"virtual_id_number":695205,"owner":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},{"value":0,"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},{"value":0,"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-01-01 21:38:58.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"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":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},{"value":2,"date":"2019-12-27 15:26:31.000000000","_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},{"value":2,"date":"2020-01-01 20:07:50.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"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":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},{"value":0,"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},{"value":1,"date":"2020-01-01 20:07:50.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},{"value":0,"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},{"value":0,"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-11-20 14:30:54.000000000","updated_by":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"reviewer":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"state":"REVIEWER"},{"updated":"2019-11-29 08:15:45.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"REVIEWER"},{"updated":"2019-12-17 10:47:02.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"REVIEWER"},{"updated":"2019-12-17 15:48:33.000000000","updated_by":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"reviewer":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"state":"REVIEWER"},{"updated":"2019-12-27 15:26:31.000000000","updated_by":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"reviewer":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"state":"REVIEWER"},{"updated":"2020-01-01 20:07:50.000000000","updated_by":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"REVIEWER"},{"updated":"2020-01-01 21:38: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":"58ed6be5ecbc93e0f44fd0787f42490d50c024ce","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-11-20 14:29:18.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c0deec348274133848665aca5205bbc45b9facc8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-20 16:24:28.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4b7bc7eec59e4b4b8a8f7bb67784ef4e : SUCCESS in 5m 16s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/48c1486efe384c33b02ad020f6160eb0 : SUCCESS in 3m 50s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/69a1c4c50b004fa4bcb1993138b634b0 : SUCCESS in 6m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/13ce9bf75dd84d18b29f3a2e69c65223 : SUCCESS in 4m 08s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/154f33b78977441ca2bd5d20120ee465 : SUCCESS in 5m 29s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/f0e6ad2f8a584fe3b53d5560eb885fb1 : SUCCESS in 3m 00s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/029afbf23e6d446ca3f024f7b6f1f7c1 : SUCCESS in 4m 04s\n- tempest-full https://zuul.opendev.org/t/openstack/build/22e59c30ff4e47ab9ca5a25a63135759 : SUCCESS in 1h 46m 14s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8cb11c6de7f24df9a506d8339186bf21 : SUCCESS in 1h 26m 34s","accounts_in_message":[],"_revision_number":1},{"id":"d5c33aaaee3f861e02c5f0ef08bfe914b8e3c3ed","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2019-11-21 13:34:21.000000000","message":"Patch Set 1: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"701d9a6cc331ad8a076f0867d5adda9802e4341b","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-11-25 13:54:14.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"a563fecb5d87cc7bbf329f84e025475dff1e866f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-25 15:45:07.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/68d1831892bc43e898442c683814aade : SUCCESS in 6m 10s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a44da611dc3e465a9226746c7c40e636 : SUCCESS in 5m 09s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c5cc3e3574a14564931d4b2fa116db73 : SUCCESS in 5m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/be3bae8f27114b1f8e6ef6f819d5b776 : SUCCESS in 4m 21s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/3314f91b95934a10af6009b2841193c1 : SUCCESS in 4m 30s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/6c888aebec2e40c5906b81d02122b51c : SUCCESS in 4m 08s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/4f4d3726000d454480d7391ae8df073c : SUCCESS in 4m 47s\n- tempest-full https://zuul.opendev.org/t/openstack/build/a797582852804a14bd3b57e799d30d26 : SUCCESS in 1h 43m 00s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fdf9c94158b04f09989856852afc8530 : SUCCESS in 1h 19m 08s","accounts_in_message":[],"_revision_number":2},{"id":"9324936223a1dba1662619bffa956ce7c00ceed9","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-11-27 14:56:36.000000000","message":"Patch Set 2:\n\n(2 comments)\n\nBy the way: I uploaded this so I could not forget I promised it on the ptg. But to my understanding the nova feature requiring this is not written yet, that\u0027s why there\u0027s no blueprint reference in it.","accounts_in_message":[],"_revision_number":2},{"id":"76b33118283b6a971821e5b382b40b595ade3e42","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2019-11-28 21:14:33.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"a6ad969a50aac95d4cd3d94ccf73abbe9818af4c","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2019-11-29 08:15:45.000000000","message":"Patch Set 2: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"6b5c10a52b8f70833b81f700e4958f00989eb0b9","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2019-12-04 18:44:06.000000000","message":"Patch Set 2: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"d6e4ce68c9c47c87a3a2450e895205ad28f36f88","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2019-12-09 07:50:15.000000000","message":"Patch Set 2: -Code-Review","accounts_in_message":[],"_revision_number":2},{"id":"f1ff2a0e6c760c39b41a22795fd2fc9a32cc541e","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-12-10 13:46:17.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"ff90f83b89da4678815a269288e6dbafdd03605e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-10 15:27:04.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bcb36413c1f0444fb76969f84f7aa293 : SUCCESS in 4m 53s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d5203ebbf8784c1692446caa5b318361 : SUCCESS in 4m 44s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/af94163273dd411ea1aeab20c15e6832 : SUCCESS in 5m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a508e856832a48e3857595cdb8c44a4b : SUCCESS in 3m 07s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/c0f0743c84ba49afbf14f23402b031cc : SUCCESS in 3m 55s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/808f06659e444a34a23dba05251c541e : SUCCESS in 4m 44s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/95b3f25ce3bd4b3e95aaf3589dd22c62 : SUCCESS in 4m 35s\n- tempest-full https://zuul.opendev.org/t/openstack/build/6ba9276abed24332b02290a48be6af24 : SUCCESS in 1h 32m 38s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/1ca69be174344f0bae73713b35ec8610 : SUCCESS in 1h 26m 31s","accounts_in_message":[],"_revision_number":3},{"id":"718ed41a8b94f570c5a7578cf3b1887e9c557c0b","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-12-11 12:40:46.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"4f81113dbc743aea323a933790caf1d37bd7985a","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2019-12-17 09:14:09.000000000","message":"Patch Set 3: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"45763ec2b9a5ac3fa5425349fa3e47dbfc680412","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2019-12-17 10:47:02.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"cf964565772dba2b6d709010579cfc2b485f8680","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-12-19 09:48:15.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"0548ad93a97aa9f3be4b0c3ac872aaf73120b98e","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-12-19 09:48:35.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"a942748e28568360f8b53271a4be054d2793f9f3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-19 11:32:30.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ab64daad17b417d98de7ff35bc1ffb7 : SUCCESS in 7m 09s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/732a68c6743c4fc68145c6dd60c7fd74 : SUCCESS in 4m 16s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/03fb1719477046d09c3470667a4abc94 : SUCCESS in 4m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/091df8132dc5464da10ccdd41e389ec8 : SUCCESS in 4m 03s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/312aa8f5903f4c549365c61a34da1b1c : SUCCESS in 5m 31s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c643962720dd4cb18d56dd637b6313a5 : SUCCESS in 3m 19s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/6a0e780739864955a07175b8c1dd9bd0 : SUCCESS in 4m 38s\n- tempest-full https://zuul.opendev.org/t/openstack/build/0595aac870ad4c8388d13b9934426304 : SUCCESS in 1h 38m 35s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/4789ddb9ae6e4caba5da875c34914ab1 : SUCCESS in 1h 27m 22s","accounts_in_message":[],"_revision_number":4},{"id":"7399d47494e61b66f2ec6510a06ea7f76a6ae943","author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"date":"2019-12-20 22:08:26.000000000","message":"Patch Set 4: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"0099f36da3073f4bcf4a8449d95d7b00519d1947","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-12-23 11:03:07.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"420b5d6820c8ad5365548f864f72d41b53ee8e10","author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"date":"2019-12-23 11:05:23.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"28f83f4a15223e70428c7db5633d5e32a35d6b82","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-23 12:28:37.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/41a8d4129eeb46d092d77728e62ecd85 : SUCCESS in 4m 20s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7f5f1e9ac8a541369bf6cc35edd4a45a : SUCCESS in 4m 18s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/3aacbcc8e75d4131b0058ab40ea8b910 : SUCCESS in 4m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/871aa3d303384aab87af4b454de1a9af : SUCCESS in 3m 46s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/a8ee1e2843314c76a69a67ccea7d25ee : SUCCESS in 3m 44s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/e58c85f0def34329aae94f6ab6217a5a : SUCCESS in 3m 58s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/c37f72a008e640e68dd1ebf7e44542b9 : SUCCESS in 4m 19s\n- tempest-full https://zuul.opendev.org/t/openstack/build/4b26239833c94fd6a436fbce672966ea : SUCCESS in 1h 24m 22s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8db47107969545d88e8791433117df0f : SUCCESS in 1h 17m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/de2055bac59743a789a7b69d7f9b95b1 : SUCCESS in 3m 48s","accounts_in_message":[],"_revision_number":5},{"id":"ff1b1939c18b455f2da5290199ad545c50998ad0","author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"date":"2019-12-27 15:26:31.000000000","message":"Patch Set 5: Code-Review+2","accounts_in_message":[],"_revision_number":5},{"id":"cd994a45763f0f333d7c3f4919702308556a0289","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2020-01-01 20:07:50.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":5},{"id":"4850dadb41a6d008c5d39b9afc50a98e39b57b73","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-01 20:08:02.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"bb4a8824486bf02b5f7e9a5471a7947178b70e68","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-01 21:38:58.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9aeee9e14964497bae543606c8f215ab : SUCCESS in 5m 02s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e3217db7e2e147e488439e2291567bf7 : SUCCESS in 4m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/40993ea79d344a3e98b8d2eea3fec389 : SUCCESS in 4m 20s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/26040cd2cd904498b635d7d5caca09e7 : SUCCESS in 3m 54s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/1f27ca5ed1444f40b10877693e390137 : SUCCESS in 3m 39s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/d082efe6023f421dbb8b6a1e3fd5fe01 : SUCCESS in 4m 31s\n- tempest-full https://zuul.opendev.org/t/openstack/build/57e43a4d52a14aacac093e509c631b7e : SUCCESS in 1h 29m 59s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8d0c01169e954d9683c8cc161968aaee : SUCCESS in 1h 16m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1894ec4a4e544c9fba8f32bc489f81d6 : SUCCESS in 3m 50s","accounts_in_message":[],"_revision_number":5},{"id":"b7c1f5d9036726d1c391da6323ad1c034a99f79d","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-01 21:38:59.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":5},{"id":"75cce84701baddb71eaca7c05261528d185a4696","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-01 21:40:19.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3659a6f876ff42dea9db1298ac42aa10 : SUCCESS in 1m 05s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e1433edf46084410907cefd03dcd8a73 : SUCCESS in 1m 01s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"755f6f462e8509c68ca04728c2d6ce5d18beacd2","revisions":{"21cafde29f06b05f0c7620bbb2cb7191bdcb4090":{"kind":"REWORK","_number":1,"created":"2019-11-20 14:29:18.000000000","uploader":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"ref":"refs/changes/05/695205/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron-lib","ref":"refs/changes/05/695205/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/1"}}},"commit":{"parents":[{"commit":"7e95f32e34e713046fbe9cc0118a88f221f57117","subject":"Merge \"Allow \u003cproject_id\u003e, \u003cproject_name\u003e, \u003cuser_id\u003e and \u003cuser_name\u003e as DNS label\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/7e95f32e34e713046fbe9cc0118a88f221f57117"}]}],"author":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-19 16:18:50.000000000","tz":60},"committer":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-20 14:24:10.000000000","tz":60},"subject":"Handle generation conflicts caused by concurrent updates","message":"Handle generation conflicts caused by concurrent updates\n\nAs discussed on the Nova-Neutron cross project session of the\nUssuri/Shanghai PTG [1]:\n\n* Nova and Neutron will need to cooperate to identify the resource\n  providers representing the same physical NICs.\n* This will happen by Nova adding both RPs (created by Nova and\n  Neutron respectively) representing the same physical NIC to one\n  resource provider aggregate.\n* Resource providers have a generation attribute to detect concurrent\n  updates to the same RP (and its traits, inventories and aggregates).\n* Therefore Neutron will start seeing update failures because of\n  concurrent updates by Nova and retry its operation if it failed\n  because of a concurrent (but otherwise irrelevant) update.\n\nNOTE: The logic added to update inventory, inventories and traits\nshould be added to update resource provider too, but that API request\ndoes not take a generation parameter today - which is likely a bug on\nthe placement side.\n\nWhile implementing this change I noticed\nthat update_resource_provider_inventory and\nupdate_resource_provider_inventories translated HTTP 409 Conflicts to\ndifferent neutron exception classes - which I deemed to be a bug in\nplacement client code and corrected it in this change too.\n\n[1] https://etherpad.openstack.org/p/ptg-ussuri-xproj-nova-neutron\n\nChange-Id: I2696c9e407cd5661a49d7d8c6b0232375682f827\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/21cafde29f06b05f0c7620bbb2cb7191bdcb4090"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/21cafde29f06b05f0c7620bbb2cb7191bdcb4090"}]},"branch":"refs/heads/master"},"1b6dd122b4b59135c416ddf07161eed87c5d6e63":{"kind":"REWORK","_number":2,"created":"2019-11-25 13:54:14.000000000","uploader":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"ref":"refs/changes/05/695205/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron-lib","ref":"refs/changes/05/695205/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/2"}}},"commit":{"parents":[{"commit":"7e95f32e34e713046fbe9cc0118a88f221f57117","subject":"Merge \"Allow \u003cproject_id\u003e, \u003cproject_name\u003e, \u003cuser_id\u003e and \u003cuser_name\u003e as DNS label\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/7e95f32e34e713046fbe9cc0118a88f221f57117"}]}],"author":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-19 16:18:50.000000000","tz":60},"committer":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-25 13:53:07.000000000","tz":60},"subject":"Handle generation conflicts caused by concurrent updates","message":"Handle generation conflicts caused by concurrent updates\n\nAs discussed on the Nova-Neutron cross project session of the\nUssuri/Shanghai PTG [1]:\n\n* Nova and Neutron will need to cooperate to identify the resource\n  providers representing the same physical NICs.\n* This will happen by Nova adding both RPs (created by Nova and\n  Neutron respectively) representing the same physical NIC to one\n  resource provider aggregate.\n* Resource providers have a generation attribute to detect concurrent\n  updates to the same RP (and its traits, inventories and aggregates).\n* Therefore Neutron will start seeing update failures because of\n  concurrent updates by Nova and retry its operation if it failed\n  because of a concurrent (but otherwise irrelevant) update.\n\nNOTE: The logic added to update inventory, inventories and traits\nshould be added to update resource provider too, but that API request\ndoes not take a generation parameter today - which is likely a bug on\nthe placement side.\n\nWhile implementing this change I noticed\nthat update_resource_provider_inventory and\nupdate_resource_provider_inventories translated HTTP 409 Conflicts to\ndifferent neutron exception classes - which I deemed to be a bug in\nplacement client code and corrected it in this change too.\n\n[1] https://etherpad.openstack.org/p/ptg-ussuri-xproj-nova-neutron\n\nChange-Id: I2696c9e407cd5661a49d7d8c6b0232375682f827\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/1b6dd122b4b59135c416ddf07161eed87c5d6e63"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/1b6dd122b4b59135c416ddf07161eed87c5d6e63"}]},"branch":"refs/heads/master"},"c31583553c363c615dae93d25b57c4bc01633590":{"kind":"REWORK","_number":3,"created":"2019-12-10 13:46:17.000000000","uploader":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"ref":"refs/changes/05/695205/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron-lib","ref":"refs/changes/05/695205/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/3"}}},"commit":{"parents":[{"commit":"3b5413fbc453d8ac0947382596735bcdc8fc56a6","subject":"Merge \"Add description field in port forwarding API\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/3b5413fbc453d8ac0947382596735bcdc8fc56a6"}]}],"author":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-19 16:18:50.000000000","tz":60},"committer":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-12-10 13:45:39.000000000","tz":60},"subject":"Handle generation conflicts caused by concurrent updates","message":"Handle generation conflicts caused by concurrent updates\n\nAs discussed on the Nova-Neutron cross project session of the\nUssuri/Shanghai PTG [1]:\n\n* Nova and Neutron will need to cooperate to identify the resource\n  providers representing the same physical NICs.\n* This will happen by Nova adding both RPs (created by Nova and\n  Neutron respectively) representing the same physical NIC to one\n  resource provider aggregate.\n* Resource providers have a generation attribute to detect concurrent\n  updates to the same RP (and its traits, inventories and aggregates).\n* Therefore Neutron will start seeing update failures because of\n  concurrent updates by Nova and retry its operation if it failed\n  because of a concurrent (but otherwise irrelevant) update.\n\nNOTE: The logic added to update inventory, inventories and traits\nshould be added to update resource provider too, but that API request\ndoes not take a generation parameter today - which is likely a bug on\nthe placement side.\n\nWhile implementing this change I noticed\nthat update_resource_provider_inventory and\nupdate_resource_provider_inventories translated HTTP 409 Conflicts to\ndifferent neutron exception classes - which I deemed to be a bug in\nplacement client code and corrected it in this change too.\n\n[1] https://etherpad.openstack.org/p/ptg-ussuri-xproj-nova-neutron\n\nChange-Id: I2696c9e407cd5661a49d7d8c6b0232375682f827\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/c31583553c363c615dae93d25b57c4bc01633590"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/c31583553c363c615dae93d25b57c4bc01633590"}]},"branch":"refs/heads/master"},"50e8c257cf1c330b3b0d28da0e7873595452593e":{"kind":"REWORK","_number":4,"created":"2019-12-19 09:48:15.000000000","uploader":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"ref":"refs/changes/05/695205/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron-lib","ref":"refs/changes/05/695205/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/4"}}},"commit":{"parents":[{"commit":"79cd582084c4b23626a83a2e9059cb5c6e6a29ee","subject":"Pass on missing implementation while filtering","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/79cd582084c4b23626a83a2e9059cb5c6e6a29ee"}]}],"author":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-19 16:18:50.000000000","tz":60},"committer":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-12-19 09:47:36.000000000","tz":60},"subject":"Handle generation conflicts caused by concurrent updates","message":"Handle generation conflicts caused by concurrent updates\n\nAs discussed on the Nova-Neutron cross project session of the\nUssuri/Shanghai PTG [1]:\n\n* Nova and Neutron will need to cooperate to identify the resource\n  providers representing the same physical NICs.\n* This will happen by Nova adding both RPs (created by Nova and\n  Neutron respectively) representing the same physical NIC to one\n  resource provider aggregate.\n* Resource providers have a generation attribute to detect concurrent\n  updates to the same RP (and its traits, inventories and aggregates).\n* Therefore Neutron will start seeing update failures because of\n  concurrent updates by Nova and retry its operation if it failed\n  because of a concurrent (but otherwise irrelevant) update.\n\nNOTE: The logic added to update inventory, inventories and traits\nshould be added to update resource provider too, but that API request\ndoes not take a generation parameter today - which is likely a bug on\nthe placement side.\n\nWhile implementing this change I noticed\nthat update_resource_provider_inventory and\nupdate_resource_provider_inventories translated HTTP 409 Conflicts to\ndifferent neutron exception classes - which I deemed to be a bug in\nplacement client code and corrected it in this change too.\n\n[1] https://etherpad.openstack.org/p/ptg-ussuri-xproj-nova-neutron\n\nChange-Id: I2696c9e407cd5661a49d7d8c6b0232375682f827\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/50e8c257cf1c330b3b0d28da0e7873595452593e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/50e8c257cf1c330b3b0d28da0e7873595452593e"}]},"branch":"refs/heads/master"},"755f6f462e8509c68ca04728c2d6ce5d18beacd2":{"kind":"REWORK","_number":5,"created":"2019-12-23 11:03:07.000000000","uploader":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"ref":"refs/changes/05/695205/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron-lib","ref":"refs/changes/05/695205/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron-lib refs/changes/05/695205/5"}}},"commit":{"parents":[{"commit":"79cd582084c4b23626a83a2e9059cb5c6e6a29ee","subject":"Pass on missing implementation while filtering","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/79cd582084c4b23626a83a2e9059cb5c6e6a29ee"}]}],"author":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-11-19 16:18:50.000000000","tz":60},"committer":{"name":"Bence Romsics","email":"bence.romsics@gmail.com","date":"2019-12-23 10:58:57.000000000","tz":60},"subject":"Handle generation conflicts caused by concurrent updates","message":"Handle generation conflicts caused by concurrent updates\n\nAs discussed on the Nova-Neutron cross project session of the\nUssuri/Shanghai PTG [1]:\n\n* Nova and Neutron will need to cooperate to identify the resource\n  providers representing the same physical NICs.\n* This will happen by Nova adding both RPs (created by Nova and\n  Neutron respectively) representing the same physical NIC to one\n  resource provider aggregate.\n* Resource providers have a generation attribute to detect concurrent\n  updates to the same RP (and its traits, inventories and aggregates).\n* Therefore Neutron will start seeing update failures because of\n  concurrent updates by Nova and retry its operation if it failed\n  because of a concurrent (but otherwise irrelevant) update.\n\nNOTE: The logic added to update inventory, inventories and traits\nshould be added to update resource provider too, but that API request\ndoes not take a generation parameter today - which is likely a bug on\nthe placement side.\n\nGeneration conflicts are signalled not just by the 409 Conflict HTTP\nresponse code but by the placement.concurrent_update error code inside\nthe HTTP JSON body. This is only available in Placement microversions\n1.23+, therefore we bump the Placement microversion used in neutron-lib\nto 1.23.\n\nWhile implementing this change I noticed\nthat update_resource_provider_inventory and\nupdate_resource_provider_inventories translated HTTP 409 Conflicts to\ndifferent neutron exception classes - which I deemed to be a bug in\nplacement client code and corrected it in this change too.\n\n[1] https://etherpad.openstack.org/p/ptg-ussuri-xproj-nova-neutron\n\nChange-Id: I2696c9e407cd5661a49d7d8c6b0232375682f827\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/755f6f462e8509c68ca04728c2d6ce5d18beacd2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-lib/commit/755f6f462e8509c68ca04728c2d6ce5d18beacd2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
