)]}'
{"nova/conductor/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4ced9328250b98117ca4b60eaea2fb9c3d54f5b","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"                # Skip placeholders that were buried in cell0 or had their"},{"line_number":1014,"context_line":"                # build requests deleted by the user before instance create."},{"line_number":1015,"context_line":"                continue"},{"line_number":1016,"context_line":"            cell \u003d instance_mapping_cache[instance.uuid]"},{"line_number":1017,"context_line":"            filter_props \u003d request_spec.to_legacy_filter_properties_dict()"},{"line_number":1018,"context_line":"            scheduler_utils.populate_retry(filter_props, instance.uuid)"},{"line_number":1019,"context_line":"            scheduler_utils.populate_filter_properties(filter_props,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_7eaff629","line":1016,"range":{"start_line":1016,"start_character":19,"end_line":1016,"end_character":41},"updated":"2017-09-06 23:42:01.000000000","message":"wrong variable","commit_id":"bbc282e0be75774e36331a094f548fd97a796bdf"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d5fab3be164b78bdcb79536d0cd75e6a6b9d699d","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"                # Skip placeholders that were buried in cell0 or had their"},{"line_number":1014,"context_line":"                # build requests deleted by the user before instance create."},{"line_number":1015,"context_line":"                continue"},{"line_number":1016,"context_line":"            cell \u003d cell_mapping_cache[instance.uuid]"},{"line_number":1017,"context_line":"            filter_props \u003d request_spec.to_legacy_filter_properties_dict()"},{"line_number":1018,"context_line":"            scheduler_utils.populate_retry(filter_props, instance.uuid)"},{"line_number":1019,"context_line":"            scheduler_utils.populate_filter_properties(filter_props,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_f2b792f4","line":1016,"range":{"start_line":1016,"start_character":12,"end_line":1016,"end_character":52},"updated":"2017-09-07 05:27:05.000000000","message":"This overrides the assignment in line 970. Ideally, we should have another name for this variable or we just needn\u0027t this line.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1be2dca36885621a1cb46dedab9c570145acd088","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"                # Skip placeholders that were buried in cell0 or had their"},{"line_number":1014,"context_line":"                # build requests deleted by the user before instance create."},{"line_number":1015,"context_line":"                continue"},{"line_number":1016,"context_line":"            cell \u003d cell_mapping_cache[instance.uuid]"},{"line_number":1017,"context_line":"            filter_props \u003d request_spec.to_legacy_filter_properties_dict()"},{"line_number":1018,"context_line":"            scheduler_utils.populate_retry(filter_props, instance.uuid)"},{"line_number":1019,"context_line":"            scheduler_utils.populate_filter_properties(filter_props,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_9de3b634","line":1016,"range":{"start_line":1016,"start_character":12,"end_line":1016,"end_character":52},"in_reply_to":"7f287b81_f2b792f4","updated":"2017-09-07 13:33:18.000000000","message":"This is the whole point of the bug fix. This used to be a single for loop before the quotas stuff happened in the middle. When that split the for loops into two loops, it failed to account for getting the cell variable again for the host/instance in scope, and it would use the last cell mapping set in the first loop, which could be wrong for the current host and instance we are processing.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"}],"nova/tests/unit/conductor/test_conductor.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0eb624ffee84dae9978c16bc34e220f6f6fb4976","unresolved":false,"context_lines":[{"line_number":1544,"context_line":"            # This just makes sure that the instance was created in the DB."},{"line_number":1545,"context_line":"            self.assertTrue(kwargs[\u0027instance\u0027].id)"},{"line_number":1546,"context_line":"            self.assertEqual(1, len(kwargs[\u0027block_device_mapping\u0027]))"},{"line_number":1547,"context_line":"            # FIXME(danms): How to validate the db connection here?"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        build_and_run_instance.side_effect \u003d _build_and_run_instance"},{"line_number":1550,"context_line":"        self.conductor.schedule_and_build_instances(**params)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_5d2f8e3e","line":1547,"range":{"start_line":1547,"start_character":12,"end_line":1547,"end_character":67},"updated":"2017-09-07 13:38:00.000000000","message":"Ah, looks like it\u0027s not trivial to sort out and that\u0027s why I\u0027m failing to do so here also.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"41f9ecb1989b9945fedfbdbbc075608f6ab785da","unresolved":false,"context_lines":[{"line_number":1594,"context_line":"            # Keep track of the cells that the instances were created in."},{"line_number":1595,"context_line":"            inst_mapping \u003d objects.InstanceMapping.get_by_instance_uuid("},{"line_number":1596,"context_line":"                ctxt, instance.uuid)"},{"line_number":1597,"context_line":"            instance_cells.add(inst_mapping.cell_mapping.uuid)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"        build_and_run_instance.side_effect \u003d _build_and_run_instance"},{"line_number":1600,"context_line":"        self.conductor.schedule_and_build_instances(**params)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_8ff6ead6","line":1597,"updated":"2017-09-07 01:43:07.000000000","message":"In my inflight version of this, I examined context to make sure we ended up with different db connections in each case. I guess this is enough since this bug is about targeting the mapping, although checking the context here would also ensure we\u0027re sending the rpc call to the right place.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1d6edc23f84c6263db6b291e60ffb4155cbd922c","unresolved":false,"context_lines":[{"line_number":1594,"context_line":"            # Keep track of the cells that the instances were created in."},{"line_number":1595,"context_line":"            inst_mapping \u003d objects.InstanceMapping.get_by_instance_uuid("},{"line_number":1596,"context_line":"                ctxt, instance.uuid)"},{"line_number":1597,"context_line":"            instance_cells.add(inst_mapping.cell_mapping.uuid)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"        build_and_run_instance.side_effect \u003d _build_and_run_instance"},{"line_number":1600,"context_line":"        self.conductor.schedule_and_build_instances(**params)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_cacd00b8","line":1597,"in_reply_to":"7f287b81_2a85a45a","updated":"2017-09-07 02:35:49.000000000","message":"Actually I\u0027m not sure how that would work either, since what would we compare against? We create a copy of the context when we target it each time, and the db_connection is not a string.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ab9e7915835fbca09104f47d0674fc4667836a5d","unresolved":false,"context_lines":[{"line_number":1594,"context_line":"            # Keep track of the cells that the instances were created in."},{"line_number":1595,"context_line":"            inst_mapping \u003d objects.InstanceMapping.get_by_instance_uuid("},{"line_number":1596,"context_line":"                ctxt, instance.uuid)"},{"line_number":1597,"context_line":"            instance_cells.add(inst_mapping.cell_mapping.uuid)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"        build_and_run_instance.side_effect \u003d _build_and_run_instance"},{"line_number":1600,"context_line":"        self.conductor.schedule_and_build_instances(**params)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_2a85a45a","line":1597,"in_reply_to":"7f287b81_8ff6ead6","updated":"2017-09-07 02:28:38.000000000","message":"I\u0027m not sure what the best way to check that is without keeping an order of the instances as they are processed. I was trying to do this in such a way that order didn\u0027t matter. I guess I could track the ctxt passed in here and make sure it\u0027s not in the list of tracked contexts so that each call is unique.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f5dd9755f52281b0ad915d5deb3aa463c5b1cf96","unresolved":false,"context_lines":[{"line_number":1594,"context_line":"            # Keep track of the cells that the instances were created in."},{"line_number":1595,"context_line":"            inst_mapping \u003d objects.InstanceMapping.get_by_instance_uuid("},{"line_number":1596,"context_line":"                ctxt, instance.uuid)"},{"line_number":1597,"context_line":"            instance_cells.add(inst_mapping.cell_mapping.uuid)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"        build_and_run_instance.side_effect \u003d _build_and_run_instance"},{"line_number":1600,"context_line":"        self.conductor.schedule_and_build_instances(**params)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_3dc2825a","line":1597,"in_reply_to":"7f287b81_cacd00b8","updated":"2017-09-07 13:40:04.000000000","message":"Right but the connection object itself is cached so we get a consistent one per cell. It worked for me.","commit_id":"d95e4fdcce2e211de271201ebaf6f185faa3b45f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"eab1f1f8bfcb28fd66465a643941f378d6cf86f4","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"        build_and_run_instance.side_effect \u003d _build_and_run_instance"},{"line_number":1600,"context_line":"        self.conductor.schedule_and_build_instances(**params)"},{"line_number":1601,"context_line":"        self.assertEqual(2, build_and_run_instance.call_count)"},{"line_number":1602,"context_line":"        self.assertEqual(2, len(instance_cells))"},{"line_number":1603,"context_line":""},{"line_number":1604,"context_line":"    @mock.patch(\u0027nova.scheduler.rpcapi.SchedulerAPI.select_destinations\u0027)"},{"line_number":1605,"context_line":"    def test_schedule_and_build_scheduler_failure(self, select_destinations):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_3fcdcc2f","line":1602,"updated":"2017-09-07 20:35:01.000000000","message":"I was noticing that nothing asserts that each instance landed in a different cell, just that two instances got mapped.","commit_id":"e801775959a8ae0f9c09767021a40b6a746d1928"}]}
