)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1b63880701a3eb1ac14900597bb444efa27a6591","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Similarly the migration that calls"},{"line_number":19,"context_line":"consumer_obj.create_incomplete_consumers in nova-manage has been"},{"line_number":20,"context_line":"removed. Not sure of the correct way to deal with that, but"},{"line_number":21,"context_line":"presumably, by Stein people will have already done that migration?"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"placement-related configuration is not (yet) updated as there are"},{"line_number":24,"context_line":"multiple types of placement conf: configuration for placement"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"ffd0ebdf_8693da4f","line":21,"range":{"start_line":21,"start_character":12,"end_line":21,"end_character":66},"updated":"2019-01-03 06:42:37.000000000","message":"yes, I think so.","commit_id":"a1504dccadc74e4da7793459cc1921e5debfab87"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6cbabdc2c6f92ebd40359c06bb7b18af5b42f246","unresolved":false,"context_lines":[{"line_number":18,"context_line":"removed."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"A functional test which confirms the default incomplete"},{"line_number":21,"context_line":"consumer user and project id has been changes so its its use of"},{"line_number":22,"context_line":"conf.placement.incomplete_* (now removed) is replaced with a"},{"line_number":23,"context_line":"constant. The placement server, running in the functional"},{"line_number":24,"context_line":"test, provides its own config."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"dfbec78f_bdbce9bb","line":21,"range":{"start_line":21,"start_character":49,"end_line":21,"end_character":56},"updated":"2019-05-03 16:50:12.000000000","message":"its","commit_id":"70a2879b2c75377f728f8faec8bd581613061230"}],"doc/source/conf.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"821f14fee61cfd181b540d4d0f2c3ec55fd21e55","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"policy_generator_config_file \u003d ["},{"line_number":61,"context_line":"    (\u0027../../etc/nova/nova-policy-generator.conf\u0027, \u0027_static/nova\u0027),"},{"line_number":62,"context_line":"    (\u0027../../etc/nova/placement-policy-generator.conf\u0027, \u0027_static/placement\u0027)"},{"line_number":63,"context_line":"]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"actdiag_html_image_format \u003d \u0027SVG\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f79a3b5_4d4f5a30","side":"PARENT","line":62,"range":{"start_line":62,"start_character":4,"end_line":62,"end_character":75},"updated":"2018-12-11 00:42:13.000000000","message":"The following line should be removed at the same time.\n\nhttps://github.com/openstack/nova/blob/08d617084e5aa69ada0898d674022621d130aef3/.gitignore#L50","commit_id":"8d06018bc75f4cab501c0ca318be9852a8c0c541"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"0949cfee46b5c995bb81619c65dff48b17bc3872","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"policy_generator_config_file \u003d ["},{"line_number":61,"context_line":"    (\u0027../../etc/nova/nova-policy-generator.conf\u0027, \u0027_static/nova\u0027),"},{"line_number":62,"context_line":"    (\u0027../../etc/nova/placement-policy-generator.conf\u0027, \u0027_static/placement\u0027)"},{"line_number":63,"context_line":"]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"actdiag_html_image_format \u003d \u0027SVG\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f79a3b5_d6b52eca","side":"PARENT","line":62,"range":{"start_line":62,"start_character":4,"end_line":62,"end_character":75},"in_reply_to":"3f79a3b5_4d4f5a30","updated":"2018-12-11 10:46:35.000000000","message":"Thanks, will fix.","commit_id":"8d06018bc75f4cab501c0ca318be9852a8c0c541"}],"nova/cmd/manage.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6c96fe80992528943f28aa59d0df85675397be54","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        # Queens and Pike since instance.avz of instances before Pike"},{"line_number":410,"context_line":"        # need to be populated if it was not specified during boot time."},{"line_number":411,"context_line":"        instance_obj.populate_missing_availability_zones,"},{"line_number":412,"context_line":"        # Added in Rocky"},{"line_number":413,"context_line":"        # FIXME(cdent): This is a factor that needs to be addressed somehow"},{"line_number":414,"context_line":"        consumer_obj.create_incomplete_consumers,"},{"line_number":415,"context_line":"        # Added in Rocky"},{"line_number":416,"context_line":"        instance_mapping_obj.populate_queued_for_delete,"},{"line_number":417,"context_line":"        # Added in Stein"}],"source_content_type":"text/x-python","patch_set":26,"id":"ffd0ebdf_c61eb46f","side":"PARENT","line":414,"range":{"start_line":412,"start_character":0,"end_line":414,"end_character":49},"updated":"2019-01-03 20:27:50.000000000","message":"Well, certainly this should not be done from nova anymore. Are we sure we don\u0027t need to do it from placement? If there\u0027s a possibility of that, we ought to make some kind of placeholder (a WIP patch or something) so we don\u0027t forget.\n\n[Later] It sounds like there\u0027s a decent possibility we need a placement manage CLI to do this (and/or a blocker migration and/or online migration... something). Added to [1] so we (hopefully) don\u0027t forget.\n\n[1] https://etherpad.openstack.org/p/placement-extract-stein-4","commit_id":"8ef3d253a086e4f8575f5221d4515cda421abea2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4fed3a2f34325237d9fa02cd9aaf29947416f6c6","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        # Queens and Pike since instance.avz of instances before Pike"},{"line_number":410,"context_line":"        # need to be populated if it was not specified during boot time."},{"line_number":411,"context_line":"        instance_obj.populate_missing_availability_zones,"},{"line_number":412,"context_line":"        # Added in Rocky"},{"line_number":413,"context_line":"        # FIXME(cdent): This is a factor that needs to be addressed somehow"},{"line_number":414,"context_line":"        consumer_obj.create_incomplete_consumers,"},{"line_number":415,"context_line":"        # Added in Rocky"},{"line_number":416,"context_line":"        instance_mapping_obj.populate_queued_for_delete,"},{"line_number":417,"context_line":"        # Added in Stein"}],"source_content_type":"text/x-python","patch_set":26,"id":"5fc1f717_645bb0f5","side":"PARENT","line":414,"range":{"start_line":412,"start_character":0,"end_line":414,"end_character":49},"in_reply_to":"ffd0ebdf_c61eb46f","updated":"2019-03-25 17:40:23.000000000","message":"This was done via https://review.openstack.org/#/c/631604/","commit_id":"8ef3d253a086e4f8575f5221d4515cda421abea2"}],"nova/tests/unit/test_nova_manage.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4fed3a2f34325237d9fa02cd9aaf29947416f6c6","unresolved":false,"context_lines":[{"line_number":2709,"context_line":"                new_callable\u003dmock.NonCallableMock)  # assert not called"},{"line_number":2710,"context_line":"    @mock.patch(\u0027nova.scheduler.client.report.SchedulerReportClient.put\u0027,"},{"line_number":2711,"context_line":"                return_value\u003dfake_requests.FakeResponse(204))"},{"line_number":2712,"context_line":"    def test_heal_allocations_sentinel_consumer("},{"line_number":2713,"context_line":"            self, mock_put, mock_get_compute_node, mock_get_allocs,"},{"line_number":2714,"context_line":"            mock_get_instances, mock_get_all_cells):"},{"line_number":2715,"context_line":"        \"\"\"Tests the scenario that there are allocations created using"}],"source_content_type":"text/x-python","patch_set":30,"id":"5fc1f717_84d33c38","line":2712,"range":{"start_line":2712,"start_character":8,"end_line":2712,"end_character":47},"updated":"2019-03-25 17:40:23.000000000","message":"why is this being removed?","commit_id":"e185b7eed7b33e7c0830eed91d6074e8ce2ee7e0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"33817a30c836f43b6d3bc1b13a2c3ad81322465e","unresolved":false,"context_lines":[{"line_number":2709,"context_line":"                new_callable\u003dmock.NonCallableMock)  # assert not called"},{"line_number":2710,"context_line":"    @mock.patch(\u0027nova.scheduler.client.report.SchedulerReportClient.put\u0027,"},{"line_number":2711,"context_line":"                return_value\u003dfake_requests.FakeResponse(204))"},{"line_number":2712,"context_line":"    def test_heal_allocations_sentinel_consumer("},{"line_number":2713,"context_line":"            self, mock_put, mock_get_compute_node, mock_get_allocs,"},{"line_number":2714,"context_line":"            mock_get_instances, mock_get_all_cells):"},{"line_number":2715,"context_line":"        \"\"\"Tests the scenario that there are allocations created using"}],"source_content_type":"text/x-python","patch_set":30,"id":"5fc1f717_67f412f2","line":2712,"range":{"start_line":2712,"start_character":8,"end_line":2712,"end_character":47},"in_reply_to":"5fc1f717_84957ce6","updated":"2019-03-25 18:09:29.000000000","message":"\u003e Because it relies on conf that doesn\u0027t exist in nova anymore and\n \u003e the functional test which remains _may_ cover it.\n \u003e \n \u003e I can put it back but it will need to do the same thing that\n \u003e functional test does: use a faked out placement-side incomplete\n \u003e consumer user and project id.\n\nThat\u0027s kind of what I was expecting, since you had put that value into the other test.\n\nThese two tests appear to be the only ones that are asserting that heal calls PUT with the appropriate payload, so I definitely think they need to be kept. (I actually don\u0027t think it\u0027s important that the tests continue using the `incomplete` values - you could use uuidesentinel.anything and s/_sentinel_consumer// from the test names.)","commit_id":"e185b7eed7b33e7c0830eed91d6074e8ce2ee7e0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"da03e3c108f8ae4ea18dfef1d1f3d943dac5f78b","unresolved":false,"context_lines":[{"line_number":2709,"context_line":"                new_callable\u003dmock.NonCallableMock)  # assert not called"},{"line_number":2710,"context_line":"    @mock.patch(\u0027nova.scheduler.client.report.SchedulerReportClient.put\u0027,"},{"line_number":2711,"context_line":"                return_value\u003dfake_requests.FakeResponse(204))"},{"line_number":2712,"context_line":"    def test_heal_allocations_sentinel_consumer("},{"line_number":2713,"context_line":"            self, mock_put, mock_get_compute_node, mock_get_allocs,"},{"line_number":2714,"context_line":"            mock_get_instances, mock_get_all_cells):"},{"line_number":2715,"context_line":"        \"\"\"Tests the scenario that there are allocations created using"}],"source_content_type":"text/x-python","patch_set":30,"id":"5fc1f717_84957ce6","line":2712,"range":{"start_line":2712,"start_character":8,"end_line":2712,"end_character":47},"in_reply_to":"5fc1f717_84d33c38","updated":"2019-03-25 17:51:14.000000000","message":"Because it relies on conf that doesn\u0027t exist in nova anymore and the functional test which remains _may_ cover it.\n\nI can put it back but it will need to do the same thing that functional test does: use a faked out placement-side incomplete consumer user and project id.\n\nI wasn\u0027t sure what was the best choice, so I just killed it to see where that gets us","commit_id":"e185b7eed7b33e7c0830eed91d6074e8ce2ee7e0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4fed3a2f34325237d9fa02cd9aaf29947416f6c6","unresolved":false,"context_lines":[{"line_number":2761,"context_line":"                return_value\u003dfake_requests.FakeResponse("},{"line_number":2762,"context_line":"                    409, content\u003d\u0027Inventory and/or allocations changed while \u0027"},{"line_number":2763,"context_line":"                                 \u0027attempting to allocate\u0027))"},{"line_number":2764,"context_line":"    def test_heal_allocations_sentinel_consumer_put_fails("},{"line_number":2765,"context_line":"            self, mock_put, mock_get_allocs, mock_get_instances,"},{"line_number":2766,"context_line":"            mock_get_all_cells):"},{"line_number":2767,"context_line":"        \"\"\"Tests the scenario that there are allocations created using"}],"source_content_type":"text/x-python","patch_set":30,"id":"5fc1f717_a4d8b852","line":2764,"range":{"start_line":2764,"start_character":8,"end_line":2764,"end_character":57},"updated":"2019-03-25 17:40:23.000000000","message":"ditto","commit_id":"e185b7eed7b33e7c0830eed91d6074e8ce2ee7e0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"da03e3c108f8ae4ea18dfef1d1f3d943dac5f78b","unresolved":false,"context_lines":[{"line_number":2761,"context_line":"                return_value\u003dfake_requests.FakeResponse("},{"line_number":2762,"context_line":"                    409, content\u003d\u0027Inventory and/or allocations changed while \u0027"},{"line_number":2763,"context_line":"                                 \u0027attempting to allocate\u0027))"},{"line_number":2764,"context_line":"    def test_heal_allocations_sentinel_consumer_put_fails("},{"line_number":2765,"context_line":"            self, mock_put, mock_get_allocs, mock_get_instances,"},{"line_number":2766,"context_line":"            mock_get_all_cells):"},{"line_number":2767,"context_line":"        \"\"\"Tests the scenario that there are allocations created using"}],"source_content_type":"text/x-python","patch_set":30,"id":"5fc1f717_a49af810","line":2764,"range":{"start_line":2764,"start_character":8,"end_line":2764,"end_character":57},"in_reply_to":"5fc1f717_a4d8b852","updated":"2019-03-25 17:51:14.000000000","message":"ditto me","commit_id":"e185b7eed7b33e7c0830eed91d6074e8ce2ee7e0"}],"releasenotes/notes/placement-deleted-a79ad405f428a5f8.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4fed3a2f34325237d9fa02cd9aaf29947416f6c6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    The code for the `placement service"},{"line_number":5,"context_line":"    \u003chttps://docs.openstack.org/placement\u003e`_ was moved to its own"},{"line_number":6,"context_line":"    `repository \u003chttps://git.openstack.org/cgit/openstack/placement\u003e`_ in"},{"line_number":7,"context_line":"    Stein. The placement code in nova has been deleted."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"5fc1f717_04950c40","line":7,"updated":"2019-03-25 17:40:23.000000000","message":"Should this have a link to the upgrade doc?\n\nhttps://docs.openstack.org/placement/latest/upgrade/to-stein.html","commit_id":"01084e1f8109bee2bc3166987e55298051ca3c77"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"da03e3c108f8ae4ea18dfef1d1f3d943dac5f78b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    The code for the `placement service"},{"line_number":5,"context_line":"    \u003chttps://docs.openstack.org/placement\u003e`_ was moved to its own"},{"line_number":6,"context_line":"    `repository \u003chttps://git.openstack.org/cgit/openstack/placement\u003e`_ in"},{"line_number":7,"context_line":"    Stein. The placement code in nova has been deleted."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"5fc1f717_e4a4804d","line":7,"in_reply_to":"5fc1f717_04950c40","updated":"2019-03-25 17:51:14.000000000","message":"I couldn\u0027t decide.\n\nSince this is a train release note I wasn\u0027t sure that pointing to the \u0027to-stein\u0027 info was right. Easy enough to do if it is.","commit_id":"01084e1f8109bee2bc3166987e55298051ca3c77"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"33817a30c836f43b6d3bc1b13a2c3ad81322465e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    The code for the `placement service"},{"line_number":5,"context_line":"    \u003chttps://docs.openstack.org/placement\u003e`_ was moved to its own"},{"line_number":6,"context_line":"    `repository \u003chttps://git.openstack.org/cgit/openstack/placement\u003e`_ in"},{"line_number":7,"context_line":"    Stein. The placement code in nova has been deleted."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"5fc1f717_e7700243","line":7,"in_reply_to":"5fc1f717_e4a4804d","updated":"2019-03-25 18:09:29.000000000","message":"I think it would be a good idea to do so, in an upgrade: block, with wording indicating that, if you upgraded to stein without cutting over to extracted placement, you\u0027re going to have to do so now, per the instructions in `the doc`_.\n\n(You can leave this other: block, or not, either way.)","commit_id":"01084e1f8109bee2bc3166987e55298051ca3c77"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b26ff8e295ffd02f6e76c0e92d4a1bf856db18cd","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    If you upgraded your OpenStack deployment to Stein without switching to use"},{"line_number":11,"context_line":"    the now independent placement service, you must do so before upgrading to"},{"line_number":12,"context_line":"    Train. `Instructions \u003chttps://docs.openstack.org/placement/latest/upgrade/to-stein.html\u003e`_"},{"line_number":13,"context_line":"    for one way to do this are available."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"5fc1f717_305de246","line":13,"updated":"2019-03-25 20:42:30.000000000","message":"nice","commit_id":"c3bb5d51f331d89c58754aa37d9a77d0d804f4f4"}],"releasenotes/notes/placement-moved-a79ad405f428a5f8.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6c96fe80992528943f28aa59d0df85675397be54","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    The code for the `placement service"},{"line_number":5,"context_line":"    \u003chttps://docs.openstack.org/placement\u003e`_ has been moved to its own"},{"line_number":6,"context_line":"    `repository \u003chttps://git.openstack.org/cgit/openstack/placement\u003e`_ and is"},{"line_number":7,"context_line":"    now being managed separately."}],"source_content_type":"text/x-yaml","patch_set":26,"id":"ffd0ebdf_660d888f","line":7,"updated":"2019-01-03 20:27:50.000000000","message":"This is sufficient IMO.","commit_id":"30be306468aba7c7805906ec2c3ae01c1b31db73"}]}
