)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49841989d61c3e859d5ba10d028fca5c63fe14f2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"that we created. Since there is a foreign key constraint between"},{"line_number":21,"context_line":"the block_device_mapping and instances tables in the database,"},{"line_number":22,"context_line":"when we try to archive (copy soft deleted things to shadow tables"},{"line_number":23,"context_line":"and then hard-delete them) the delete instance it will fail on"},{"line_number":24,"context_line":"a referential constraint error do the BDM(s) which weren\u0027t deleted."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"We can fix this by deleting the BDMs before the instances in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a18252c_f4d4bf20","line":23,"range":{"start_line":23,"start_character":47,"end_line":23,"end_character":54},"updated":"2016-04-14 20:49:25.000000000","message":"will","commit_id":"cee76528f3092125a81d560eaab183a3720f7c6f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"49841989d61c3e859d5ba10d028fca5c63fe14f2","unresolved":false,"context_lines":[{"line_number":21,"context_line":"the block_device_mapping and instances tables in the database,"},{"line_number":22,"context_line":"when we try to archive (copy soft deleted things to shadow tables"},{"line_number":23,"context_line":"and then hard-delete them) the delete instance it will fail on"},{"line_number":24,"context_line":"a referential constraint error do the BDM(s) which weren\u0027t deleted."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"We can fix this by deleting the BDMs before the instances in"},{"line_number":27,"context_line":"the exception block."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a18252c_74e9cfe5","line":24,"range":{"start_line":24,"start_character":31,"end_line":24,"end_character":33},"updated":"2016-04-14 20:49:25.000000000","message":"due to","commit_id":"cee76528f3092125a81d560eaab183a3720f7c6f"}],"nova/cells/scheduler.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7c80e870cb73f54b59fb849fc5e85124579842bd","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                    instance,"},{"line_number":104,"context_line":"                    security_groups,"},{"line_number":105,"context_line":"                    block_device_mapping,"},{"line_number":106,"context_line":"                    num_instances, i)[0]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            instances.append(instance)"},{"line_number":109,"context_line":"            self.msg_runner.instance_update_at_top(ctxt, instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_b4e367a3","line":106,"updated":"2016-04-14 20:58:46.000000000","message":"I don\u0027t actually understand where in the code this turns into an array.","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee33ce254bc6cce0d77daf3c846d3de190b054ba","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                    instance,"},{"line_number":104,"context_line":"                    security_groups,"},{"line_number":105,"context_line":"                    block_device_mapping,"},{"line_number":106,"context_line":"                    num_instances, i)[0]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            instances.append(instance)"},{"line_number":109,"context_line":"            self.msg_runner.instance_update_at_top(ctxt, instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_a1df9e38","line":106,"in_reply_to":"5a18252c_0f7fa266","updated":"2016-04-15 00:33:46.000000000","message":"I actually don\u0027t like the tuple so much, I thought about just not doing that and return the created BDMs from _create_block_device_mappings which is all we use in the non-cells case anyway.","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f7650b1c57486579e4a0d3dcb3dc57943ee0096b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                    instance,"},{"line_number":104,"context_line":"                    security_groups,"},{"line_number":105,"context_line":"                    block_device_mapping,"},{"line_number":106,"context_line":"                    num_instances, i)[0]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            instances.append(instance)"},{"line_number":109,"context_line":"            self.msg_runner.instance_update_at_top(ctxt, instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_0f7fa266","line":106,"in_reply_to":"5a18252c_b4e367a3","updated":"2016-04-14 21:11:32.000000000","message":"Line 1525 in compute/api.py","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"}],"nova/compute/api.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7c80e870cb73f54b59fb849fc5e85124579842bd","unresolved":false,"context_lines":[{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"                created_bdms \u003d self._create_block_device_mapping("},{"line_number":1011,"context_line":"                        instance_type, instance.uuid, block_device_mapping)"},{"line_number":1012,"context_line":"                instances[instance] \u003d created_bdms"},{"line_number":1013,"context_line":"                # The BuildRequest needs to be stored until the instance is in"},{"line_number":1014,"context_line":"                # an instance table. At that point it will never be used again"},{"line_number":1015,"context_line":"                # and should be deleted. As instance creation is pushed back,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_7456ef5c","line":1012,"updated":"2016-04-14 20:58:46.000000000","message":"you are really using a nova object as a dictionary key? Isn\u0027t that generally frowned upon.","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"6cde995e60f4c0d3edeb8e62c53caae5a9d4e167","unresolved":false,"context_lines":[{"line_number":1047,"context_line":"        except Exception:"},{"line_number":1048,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1049,"context_line":"                try:"},{"line_number":1050,"context_line":"                    for instance, bdms in six.iteritems(instances):"},{"line_number":1051,"context_line":"                        # There is a foreign key constraint between block"},{"line_number":1052,"context_line":"                        # device mappings and instances, so we need to delete"},{"line_number":1053,"context_line":"                        # any block device mappings created for an instance"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_4f719a75","line":1050,"range":{"start_line":1050,"start_character":55,"end_line":1050,"end_character":67},"updated":"2016-04-14 21:12:29.000000000","message":"just instances.items(), right? we don\u0027t need no stinking six.","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee33ce254bc6cce0d77daf3c846d3de190b054ba","unresolved":false,"context_lines":[{"line_number":1047,"context_line":"        except Exception:"},{"line_number":1048,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1049,"context_line":"                try:"},{"line_number":1050,"context_line":"                    for instance, bdms in six.iteritems(instances):"},{"line_number":1051,"context_line":"                        # There is a foreign key constraint between block"},{"line_number":1052,"context_line":"                        # device mappings and instances, so we need to delete"},{"line_number":1053,"context_line":"                        # any block device mappings created for an instance"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_e1e51609","line":1050,"range":{"start_line":1050,"start_character":55,"end_line":1050,"end_character":67},"in_reply_to":"5a18252c_4f719a75","updated":"2016-04-15 00:33:46.000000000","message":"Just following convention. Because, you know, ideological differences over items() and iteritems().","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"6cde995e60f4c0d3edeb8e62c53caae5a9d4e167","unresolved":false,"context_lines":[{"line_number":1522,"context_line":"            created_bdms \u003d self._create_block_device_mapping("},{"line_number":1523,"context_line":"                    instance_type, instance.uuid, block_device_mapping)"},{"line_number":1524,"context_line":""},{"line_number":1525,"context_line":"        return instance, created_bdms"},{"line_number":1526,"context_line":""},{"line_number":1527,"context_line":"    def _check_create_policies(self, context, availability_zone,"},{"line_number":1528,"context_line":"            requested_networks, block_device_mapping, forced_host,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_cf0bead4","line":1525,"updated":"2016-04-14 21:12:29.000000000","message":"Where is a caller of this function that uses this second parameter? I only see it getting sliced off with [0].","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee33ce254bc6cce0d77daf3c846d3de190b054ba","unresolved":false,"context_lines":[{"line_number":1522,"context_line":"            created_bdms \u003d self._create_block_device_mapping("},{"line_number":1523,"context_line":"                    instance_type, instance.uuid, block_device_mapping)"},{"line_number":1524,"context_line":""},{"line_number":1525,"context_line":"        return instance, created_bdms"},{"line_number":1526,"context_line":""},{"line_number":1527,"context_line":"    def _check_create_policies(self, context, availability_zone,"},{"line_number":1528,"context_line":"            requested_networks, block_device_mapping, forced_host,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_41c84a74","line":1525,"in_reply_to":"5a18252c_cf0bead4","updated":"2016-04-15 00:33:46.000000000","message":"Yeah after thinking about this later I don\u0027t like this either so I\u0027m going to just remove it from here since the above code doesn\u0027t use this anyway, it gets it from calling _create_block_device_mapping directly.","commit_id":"55b5b57e132a088bafcd7e79537865d3765be406"}]}
