)]}'
{"nova/compute/api.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1285f17c2809aa16991581ec9c6557f004020d74","unresolved":false,"context_lines":[{"line_number":1765,"context_line":"            do_terminate \u003d True"},{"line_number":1766,"context_line":"            do_detach \u003d True"},{"line_number":1767,"context_line":"            return (do_terminate, do_detach)"},{"line_number":1768,"context_line":"        else:"},{"line_number":1769,"context_line":"            pass"},{"line_number":1770,"context_line":""},{"line_number":1771,"context_line":"        # Attaching volume was incompleted."},{"line_number":1772,"context_line":"        all_bdms \u003d \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_f05c5ef2","line":1769,"range":{"start_line":1768,"start_character":0,"end_line":1769,"end_character":16},"updated":"2016-08-19 01:15:03.000000000","message":"It should be removed.","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"e1069c8b5918760c7bba1731353281b1de354d35","unresolved":false,"context_lines":[{"line_number":1765,"context_line":"            do_terminate \u003d True"},{"line_number":1766,"context_line":"            do_detach \u003d True"},{"line_number":1767,"context_line":"            return (do_terminate, do_detach)"},{"line_number":1768,"context_line":"        else:"},{"line_number":1769,"context_line":"            pass"},{"line_number":1770,"context_line":""},{"line_number":1771,"context_line":"        # Attaching volume was incompleted."},{"line_number":1772,"context_line":"        all_bdms \u003d \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_c0eeb1b3","line":1769,"range":{"start_line":1768,"start_character":0,"end_line":1769,"end_character":16},"in_reply_to":"3ac371cc_f05c5ef2","updated":"2016-08-19 02:38:29.000000000","message":"Sorry, this is surely unnecessary.\nI\u0027ll remove this.","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1285f17c2809aa16991581ec9c6557f004020d74","unresolved":false,"context_lines":[{"line_number":1806,"context_line":"                # that is launched on other hosts."},{"line_number":1807,"context_line":"                do_terminate \u003d True"},{"line_number":1808,"context_line":"                do_detach \u003d False"},{"line_number":1809,"context_line":"            else:"},{"line_number":1810,"context_line":"                # This volume is attached to other instances"},{"line_number":1811,"context_line":"                # that is launched on a same host."},{"line_number":1812,"context_line":"                pass"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        return (do_terminate, do_detach)"},{"line_number":1815,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_50f572c9","line":1812,"range":{"start_line":1809,"start_character":0,"end_line":1812,"end_character":20},"updated":"2016-08-19 01:15:03.000000000","message":"ditto","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"e1069c8b5918760c7bba1731353281b1de354d35","unresolved":false,"context_lines":[{"line_number":1806,"context_line":"                # that is launched on other hosts."},{"line_number":1807,"context_line":"                do_terminate \u003d True"},{"line_number":1808,"context_line":"                do_detach \u003d False"},{"line_number":1809,"context_line":"            else:"},{"line_number":1810,"context_line":"                # This volume is attached to other instances"},{"line_number":1811,"context_line":"                # that is launched on a same host."},{"line_number":1812,"context_line":"                pass"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        return (do_terminate, do_detach)"},{"line_number":1815,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_a03e1527","line":1812,"range":{"start_line":1809,"start_character":0,"end_line":1812,"end_character":20},"in_reply_to":"3ac371cc_50f572c9","updated":"2016-08-19 02:38:29.000000000","message":"ditto","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"}],"nova/compute/manager.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1285f17c2809aa16991581ec9c6557f004020d74","unresolved":false,"context_lines":[{"line_number":2166,"context_line":"            do_terminate \u003d True"},{"line_number":2167,"context_line":"            do_detach \u003d True"},{"line_number":2168,"context_line":"            return (do_terminate, do_detach)"},{"line_number":2169,"context_line":"        else:"},{"line_number":2170,"context_line":"            pass"},{"line_number":2171,"context_line":""},{"line_number":2172,"context_line":"        # Attaching volume was incompleted."},{"line_number":2173,"context_line":"        all_bdms \u003d objects.BlockDeviceMappingList.\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_f08d7e2b","line":2170,"range":{"start_line":2169,"start_character":0,"end_line":2170,"end_character":16},"updated":"2016-08-19 01:15:03.000000000","message":"ditto","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"e1069c8b5918760c7bba1731353281b1de354d35","unresolved":false,"context_lines":[{"line_number":2166,"context_line":"            do_terminate \u003d True"},{"line_number":2167,"context_line":"            do_detach \u003d True"},{"line_number":2168,"context_line":"            return (do_terminate, do_detach)"},{"line_number":2169,"context_line":"        else:"},{"line_number":2170,"context_line":"            pass"},{"line_number":2171,"context_line":""},{"line_number":2172,"context_line":"        # Attaching volume was incompleted."},{"line_number":2173,"context_line":"        all_bdms \u003d objects.BlockDeviceMappingList.\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_c04511b4","line":2170,"range":{"start_line":2169,"start_character":0,"end_line":2170,"end_character":16},"in_reply_to":"3ac371cc_f08d7e2b","updated":"2016-08-19 02:38:29.000000000","message":"I\u0027ll remove this.","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1285f17c2809aa16991581ec9c6557f004020d74","unresolved":false,"context_lines":[{"line_number":2206,"context_line":"                # that is launched on other hosts."},{"line_number":2207,"context_line":"                do_terminate \u003d True"},{"line_number":2208,"context_line":"                do_detach \u003d False"},{"line_number":2209,"context_line":"            else:"},{"line_number":2210,"context_line":"                # This volume is attached to other instances"},{"line_number":2211,"context_line":"                # that is launched on a same host."},{"line_number":2212,"context_line":"                pass"},{"line_number":2213,"context_line":""},{"line_number":2214,"context_line":"        return (do_terminate, do_detach)"},{"line_number":2215,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_d092024b","line":2212,"range":{"start_line":2209,"start_character":0,"end_line":2212,"end_character":20},"updated":"2016-08-19 01:15:03.000000000","message":"ditto","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"e1069c8b5918760c7bba1731353281b1de354d35","unresolved":false,"context_lines":[{"line_number":2206,"context_line":"                # that is launched on other hosts."},{"line_number":2207,"context_line":"                do_terminate \u003d True"},{"line_number":2208,"context_line":"                do_detach \u003d False"},{"line_number":2209,"context_line":"            else:"},{"line_number":2210,"context_line":"                # This volume is attached to other instances"},{"line_number":2211,"context_line":"                # that is launched on a same host."},{"line_number":2212,"context_line":"                pass"},{"line_number":2213,"context_line":""},{"line_number":2214,"context_line":"        return (do_terminate, do_detach)"},{"line_number":2215,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_201185b0","line":2212,"range":{"start_line":2209,"start_character":0,"end_line":2212,"end_character":20},"in_reply_to":"3ac371cc_d092024b","updated":"2016-08-19 02:38:29.000000000","message":"ditto","commit_id":"9f3e9f045f176982c7e741d6090b66486cc77630"}],"nova/compute/utils.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"023a4a67ea7f4fdf319536ba618e1eea5dc3074e","unresolved":false,"context_lines":[{"line_number":574,"context_line":"    \"\"\"Ensure that attaching volume was completed or not."},{"line_number":575,"context_line":"    :param context:    The nova request context."},{"line_number":576,"context_line":"    :param instance:   The instance that attach volumes."},{"line_number":577,"context_line":"    :bdm:              Blocck device mapping object of instance."},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    :return: tuple of (do_terminate, do_detach)"},{"line_number":580,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_5c22d502","line":577,"range":{"start_line":577,"start_character":5,"end_line":577,"end_character":8},"updated":"2016-08-31 02:59:49.000000000","message":"nit: param bdm","commit_id":"d78a1fb9c2d04af0a297784d61fb6a26918b8433"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"519e77325fad7a606d30808901b8c053f9ff2b03","unresolved":false,"context_lines":[{"line_number":574,"context_line":"    \"\"\"Ensure that attaching volume was completed or not."},{"line_number":575,"context_line":"    :param context:    The nova request context."},{"line_number":576,"context_line":"    :param instance:   The instance that attach volumes."},{"line_number":577,"context_line":"    :bdm:              Blocck device mapping object of instance."},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    :return: tuple of (do_terminate, do_detach)"},{"line_number":580,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_82b4a435","line":577,"range":{"start_line":577,"start_character":5,"end_line":577,"end_character":8},"in_reply_to":"fa7ab95a_5c22d502","updated":"2016-09-01 04:59:23.000000000","message":"Oops, I fix it.","commit_id":"d78a1fb9c2d04af0a297784d61fb6a26918b8433"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4a922ab20e86cca3ec8a2e71077acc68efb40e7e","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        do_detach \u003d True"},{"line_number":591,"context_line":"        return (do_terminate, do_detach)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    # Attaching volume was incompleted."},{"line_number":594,"context_line":"    all_bdms \u003d objects.BlockDeviceMappingList.get_by_volume("},{"line_number":595,"context_line":"        context, bdm.volume_id)"},{"line_number":596,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_7fda9d4d","line":593,"updated":"2016-09-15 21:42:14.000000000","message":"This doesn\u0027t seem to be an appropriate comment for the next statement.","commit_id":"48ef24cbde725e53cdcf10808ff1b61a6145a10a"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"d49674aafa18b8c74edc44867a1e24affedccbcd","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        do_detach \u003d True"},{"line_number":591,"context_line":"        return (do_terminate, do_detach)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    # Attaching volume was incompleted."},{"line_number":594,"context_line":"    all_bdms \u003d objects.BlockDeviceMappingList.get_by_volume("},{"line_number":595,"context_line":"        context, bdm.volume_id)"},{"line_number":596,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_daceb8b3","line":593,"in_reply_to":"7a8ec9b2_7fda9d4d","updated":"2016-09-20 10:16:21.000000000","message":"Oops, sorry.\nYour pointing out is right.\nI fix it.","commit_id":"48ef24cbde725e53cdcf10808ff1b61a6145a10a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4a922ab20e86cca3ec8a2e71077acc68efb40e7e","unresolved":false,"context_lines":[{"line_number":597,"context_line":"    # Remove older bdms."},{"line_number":598,"context_line":"    for i, expect_bdm in enumerate(all_bdms):"},{"line_number":599,"context_line":"        if expect_bdm.id \u003c bdm.id:"},{"line_number":600,"context_line":"            all_bdms.pop(i)"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    bdm_count \u003d 0"},{"line_number":603,"context_line":"    for expect_bdm in all_bdms:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_3fed75ef","line":600,"updated":"2016-09-15 21:42:14.000000000","message":"You really can\u0027t infer anything consistent about the id column of the BDM structure.","commit_id":"48ef24cbde725e53cdcf10808ff1b61a6145a10a"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"d49674aafa18b8c74edc44867a1e24affedccbcd","unresolved":false,"context_lines":[{"line_number":597,"context_line":"    # Remove older bdms."},{"line_number":598,"context_line":"    for i, expect_bdm in enumerate(all_bdms):"},{"line_number":599,"context_line":"        if expect_bdm.id \u003c bdm.id:"},{"line_number":600,"context_line":"            all_bdms.pop(i)"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    bdm_count \u003d 0"},{"line_number":603,"context_line":"    for expect_bdm in all_bdms:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_badc8c47","line":600,"in_reply_to":"7a8ec9b2_3fed75ef","updated":"2016-09-20 10:16:21.000000000","message":"Can I use created_at instead of id?","commit_id":"48ef24cbde725e53cdcf10808ff1b61a6145a10a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4a922ab20e86cca3ec8a2e71077acc68efb40e7e","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        do_terminate \u003d True"},{"line_number":610,"context_line":"        do_detach \u003d True"},{"line_number":611,"context_line":"    else:"},{"line_number":612,"context_line":"        # This volume is attached to other instances."},{"line_number":613,"context_line":"        same_host_instances \u003d objects.InstanceList.get_by_host("},{"line_number":614,"context_line":"            context, instance.host)"},{"line_number":615,"context_line":"        exists_same_host_instance \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_7fa8dd8d","line":612,"updated":"2016-09-15 21:42:14.000000000","message":"Cinder holds the lock for ensuring that multiple instances are\u0027t attached to a single volume (or are, if and only if all of cinder, nova, and the volume backend support multiattach).","commit_id":"48ef24cbde725e53cdcf10808ff1b61a6145a10a"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"d49674aafa18b8c74edc44867a1e24affedccbcd","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        do_terminate \u003d True"},{"line_number":610,"context_line":"        do_detach \u003d True"},{"line_number":611,"context_line":"    else:"},{"line_number":612,"context_line":"        # This volume is attached to other instances."},{"line_number":613,"context_line":"        same_host_instances \u003d objects.InstanceList.get_by_host("},{"line_number":614,"context_line":"            context, instance.host)"},{"line_number":615,"context_line":"        exists_same_host_instance \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_9a64304a","line":612,"in_reply_to":"7a8ec9b2_7fa8dd8d","updated":"2016-09-20 10:16:21.000000000","message":"\"The lock\" means volume status and attached status?\nThis comment suppose a error pattern.\n\nIf attaching volume is failed before changing volume status, we can attach the volume to other instance.\nIn this case, there are two BDM about same volume.","commit_id":"48ef24cbde725e53cdcf10808ff1b61a6145a10a"}],"nova/objects/block_device.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    # Version 1.15: BlockDeviceMapping \u003c\u003d version 1.14"},{"line_number":312,"context_line":"    # Version 1.16: BlockDeviceMapping \u003c\u003d version 1.15"},{"line_number":313,"context_line":"    # Version 1.17: Add get_by_instance_uuids()"},{"line_number":314,"context_line":"    VERSION \u003d \u00271.17\u0027"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    fields \u003d {"},{"line_number":317,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027BlockDeviceMapping\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_bf2f59a0","line":314,"range":{"start_line":314,"start_character":4,"end_line":314,"end_character":20},"updated":"2016-08-15 07:15:55.000000000","message":"Here.","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"5455b49b8674f3fa17b1ecf905b84b28ef65e6c1","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    # Version 1.15: BlockDeviceMapping \u003c\u003d version 1.14"},{"line_number":312,"context_line":"    # Version 1.16: BlockDeviceMapping \u003c\u003d version 1.15"},{"line_number":313,"context_line":"    # Version 1.17: Add get_by_instance_uuids()"},{"line_number":314,"context_line":"    VERSION \u003d \u00271.17\u0027"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    fields \u003d {"},{"line_number":317,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027BlockDeviceMapping\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_8a17bdec","line":314,"range":{"start_line":314,"start_character":4,"end_line":314,"end_character":20},"in_reply_to":"3ac371cc_bf2f59a0","updated":"2016-08-15 07:30:16.000000000","message":"Thanks, I\u0027ll bump it and add a comment.","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        return base.obj_make_list("},{"line_number":359,"context_line":"                context, cls(), objects.BlockDeviceMapping, db_bdms or [])"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @base.remotable_classmethod"},{"line_number":362,"context_line":"    def get_by_volume(cls, context, volume_id):"},{"line_number":363,"context_line":"        db_bdms \u003d db.block_device_mapping_get_all_by_volume_id("},{"line_number":364,"context_line":"            context, volume_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_5f22a5ba","line":361,"range":{"start_line":361,"start_character":0,"end_line":361,"end_character":31},"updated":"2016-08-15 07:15:55.000000000","message":"If remotable method is added, the object version should be bumped.","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"5455b49b8674f3fa17b1ecf905b84b28ef65e6c1","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        return base.obj_make_list("},{"line_number":359,"context_line":"                context, cls(), objects.BlockDeviceMapping, db_bdms or [])"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    @base.remotable_classmethod"},{"line_number":362,"context_line":"    def get_by_volume(cls, context, volume_id):"},{"line_number":363,"context_line":"        db_bdms \u003d db.block_device_mapping_get_all_by_volume_id("},{"line_number":364,"context_line":"            context, volume_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_4a1dc50e","line":361,"range":{"start_line":361,"start_character":0,"end_line":361,"end_character":31},"in_reply_to":"3ac371cc_5f22a5ba","updated":"2016-08-15 07:30:16.000000000","message":"Thank you for pointing.\nI\u0027ll bump it.","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"023a4a67ea7f4fdf319536ba618e1eea5dc3074e","unresolved":false,"context_lines":[{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"        @mock.patch.object(compute_utils,"},{"line_number":1294,"context_line":"                           \u0027check_do_terminate_and_detach\u0027,"},{"line_number":1295,"context_line":"                           return_value\u003d(True, True))"},{"line_number":1296,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027terminate_connection\u0027)"},{"line_number":1297,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1298,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_d785de59","line":1295,"range":{"start_line":1295,"start_character":40,"end_line":1295,"end_character":52},"updated":"2016-08-31 02:59:49.000000000","message":"This test is for (True, True) case.\n(True, False) and (False, False) cases should be added (as other test methods).","commit_id":"d78a1fb9c2d04af0a297784d61fb6a26918b8433"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"519e77325fad7a606d30808901b8c053f9ff2b03","unresolved":false,"context_lines":[{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"        @mock.patch.object(compute_utils,"},{"line_number":1294,"context_line":"                           \u0027check_do_terminate_and_detach\u0027,"},{"line_number":1295,"context_line":"                           return_value\u003d(True, True))"},{"line_number":1296,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027terminate_connection\u0027)"},{"line_number":1297,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1298,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_22967894","line":1295,"range":{"start_line":1295,"start_character":40,"end_line":1295,"end_character":52},"in_reply_to":"fa7ab95a_d785de59","updated":"2016-09-01 04:59:23.000000000","message":"OK, I add those tests.","commit_id":"d78a1fb9c2d04af0a297784d61fb6a26918b8433"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1298,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"},{"line_number":1299,"context_line":"        @mock.patch.object(self.context, \u0027elevated\u0027, return_value\u003dself.context)"},{"line_number":1300,"context_line":"        def do_test(self, mock_elevated, mock_delete, mock_detach,"},{"line_number":1301,"context_line":"                    mock_terminate,"},{"line_number":1302,"context_line":"                    mock_check_do_terminate_and_detach):"},{"line_number":1303,"context_line":"            self.compute_api._local_cleanup_bdm_volumes("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_5c20bab0","line":1300,"range":{"start_line":1300,"start_character":20,"end_line":1300,"end_character":25},"updated":"2016-09-12 02:29:56.000000000","message":"It is not necessary.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1298,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"},{"line_number":1299,"context_line":"        @mock.patch.object(self.context, \u0027elevated\u0027, return_value\u003dself.context)"},{"line_number":1300,"context_line":"        def do_test(self, mock_elevated, mock_delete, mock_detach,"},{"line_number":1301,"context_line":"                    mock_terminate,"},{"line_number":1302,"context_line":"                    mock_check_do_terminate_and_detach):"},{"line_number":1303,"context_line":"            self.compute_api._local_cleanup_bdm_volumes("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_f9135b5a","line":1300,"range":{"start_line":1300,"start_character":20,"end_line":1300,"end_character":25},"in_reply_to":"9a89bdaa_5c20bab0","updated":"2016-09-12 06:38:11.000000000","message":"Sorry, your comment is right.\nI fix it.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"            mock_delete.assert_called_once_with(self.context, uuids.volume_id)"},{"line_number":1310,"context_line":"            self.assertEqual(2, mock_destroy.call_count)"},{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"        do_test(self)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"    @mock.patch.object(objects.BlockDeviceMapping, \u0027destroy\u0027)"},{"line_number":1315,"context_line":"    def test_local_cleanup_bdm_volumes_do_terminate_connection_only(self,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_7c2f3ea1","line":1312,"range":{"start_line":1312,"start_character":16,"end_line":1312,"end_character":20},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"            mock_delete.assert_called_once_with(self.context, uuids.volume_id)"},{"line_number":1310,"context_line":"            self.assertEqual(2, mock_destroy.call_count)"},{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"        do_test(self)"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":"    @mock.patch.object(objects.BlockDeviceMapping, \u0027destroy\u0027)"},{"line_number":1315,"context_line":"    def test_local_cleanup_bdm_volumes_do_terminate_connection_only(self,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_391ea363","line":1312,"range":{"start_line":1312,"start_character":16,"end_line":1312,"end_character":20},"in_reply_to":"9a89bdaa_7c2f3ea1","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1341,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"},{"line_number":1342,"context_line":"        @mock.patch.object(self.context, \u0027elevated\u0027, return_value\u003dself.context)"},{"line_number":1343,"context_line":"        def do_test(self, mock_elevated, mock_delete, mock_detach,"},{"line_number":1344,"context_line":"                    mock_terminate,"},{"line_number":1345,"context_line":"                    mock_check_do_terminate_and_detach):"},{"line_number":1346,"context_line":"            self.compute_api._local_cleanup_bdm_volumes("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_5cfd1a3a","line":1343,"range":{"start_line":1343,"start_character":20,"end_line":1343,"end_character":25},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1341,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"},{"line_number":1342,"context_line":"        @mock.patch.object(self.context, \u0027elevated\u0027, return_value\u003dself.context)"},{"line_number":1343,"context_line":"        def do_test(self, mock_elevated, mock_delete, mock_detach,"},{"line_number":1344,"context_line":"                    mock_terminate,"},{"line_number":1345,"context_line":"                    mock_check_do_terminate_and_detach):"},{"line_number":1346,"context_line":"            self.compute_api._local_cleanup_bdm_volumes("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_5919a778","line":1343,"range":{"start_line":1343,"start_character":20,"end_line":1343,"end_character":25},"in_reply_to":"9a89bdaa_5cfd1a3a","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"            mock_delete.assert_not_called()"},{"line_number":1352,"context_line":"            self.assertEqual(1, mock_destroy.call_count)"},{"line_number":1353,"context_line":""},{"line_number":1354,"context_line":"        do_test(self)"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"    @mock.patch.object(objects.BlockDeviceMapping, \u0027destroy\u0027)"},{"line_number":1357,"context_line":"    def test_local_cleanup_bdm_volumes_do_not_terminate_connection_and_detach("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_1cb9d279","line":1354,"range":{"start_line":1354,"start_character":16,"end_line":1354,"end_character":20},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"            mock_delete.assert_not_called()"},{"line_number":1352,"context_line":"            self.assertEqual(1, mock_destroy.call_count)"},{"line_number":1353,"context_line":""},{"line_number":1354,"context_line":"        do_test(self)"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"    @mock.patch.object(objects.BlockDeviceMapping, \u0027destroy\u0027)"},{"line_number":1357,"context_line":"    def test_local_cleanup_bdm_volumes_do_not_terminate_connection_and_detach("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_99296f8c","line":1354,"range":{"start_line":1354,"start_character":16,"end_line":1354,"end_character":20},"in_reply_to":"9a89bdaa_1cb9d279","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1381,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1382,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"},{"line_number":1383,"context_line":"        @mock.patch.object(self.context, \u0027elevated\u0027, return_value\u003dself.context)"},{"line_number":1384,"context_line":"        def do_test(self, mock_elevated, mock_delete, mock_detach,"},{"line_number":1385,"context_line":"                    mock_terminate,"},{"line_number":1386,"context_line":"                    mock_check_do_terminate_and_detach):"},{"line_number":1387,"context_line":"            self.compute_api._local_cleanup_bdm_volumes("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_3cb0568b","line":1384,"range":{"start_line":1384,"start_character":20,"end_line":1384,"end_character":25},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1381,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027detach\u0027)"},{"line_number":1382,"context_line":"        @mock.patch.object(self.compute_api.volume_api, \u0027delete\u0027)"},{"line_number":1383,"context_line":"        @mock.patch.object(self.context, \u0027elevated\u0027, return_value\u003dself.context)"},{"line_number":1384,"context_line":"        def do_test(self, mock_elevated, mock_delete, mock_detach,"},{"line_number":1385,"context_line":"                    mock_terminate,"},{"line_number":1386,"context_line":"                    mock_check_do_terminate_and_detach):"},{"line_number":1387,"context_line":"            self.compute_api._local_cleanup_bdm_volumes("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_d923f7a5","line":1384,"range":{"start_line":1384,"start_character":20,"end_line":1384,"end_character":25},"in_reply_to":"9a89bdaa_3cb0568b","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1391,"context_line":"            mock_delete.assert_not_called()"},{"line_number":1392,"context_line":"            self.assertEqual(1, mock_destroy.call_count)"},{"line_number":1393,"context_line":""},{"line_number":1394,"context_line":"        do_test(self)"},{"line_number":1395,"context_line":""},{"line_number":1396,"context_line":"    def test_get_stashed_volume_connector_none(self):"},{"line_number":1397,"context_line":"        inst \u003d self._create_instance_obj()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_7caade1a","line":1394,"range":{"start_line":1394,"start_character":16,"end_line":1394,"end_character":20},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1391,"context_line":"            mock_delete.assert_not_called()"},{"line_number":1392,"context_line":"            self.assertEqual(1, mock_destroy.call_count)"},{"line_number":1393,"context_line":""},{"line_number":1394,"context_line":"        do_test(self)"},{"line_number":1395,"context_line":""},{"line_number":1396,"context_line":"    def test_get_stashed_volume_connector_none(self):"},{"line_number":1397,"context_line":"        inst \u003d self._create_instance_obj()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_19363fe7","line":1394,"range":{"start_line":1394,"start_character":16,"end_line":1394,"end_character":20},"in_reply_to":"9a89bdaa_7caade1a","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            self.compute._check_device_tagging(net_req_list, bdms)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_check_done_terminate_and_detach_attach_completed(self):"},{"line_number":366,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":367,"context_line":"        instance_uuid \u003d str(uuid.uuid4())"},{"line_number":368,"context_line":"        volume \u003d {\u0027id\u0027: volume_id,"},{"line_number":369,"context_line":"                  \u0027attachments\u0027: {instance_uuid: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_9f037d0f","line":366,"range":{"start_line":366,"start_character":20,"end_line":366,"end_character":37},"updated":"2016-08-15 07:15:55.000000000","message":"Use uuids (uuidsentinel).","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"5455b49b8674f3fa17b1ecf905b84b28ef65e6c1","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            self.compute._check_device_tagging(net_req_list, bdms)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_check_done_terminate_and_detach_attach_completed(self):"},{"line_number":366,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":367,"context_line":"        instance_uuid \u003d str(uuid.uuid4())"},{"line_number":368,"context_line":"        volume \u003d {\u0027id\u0027: volume_id,"},{"line_number":369,"context_line":"                  \u0027attachments\u0027: {instance_uuid: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_2a820901","line":366,"range":{"start_line":366,"start_character":20,"end_line":366,"end_character":37},"in_reply_to":"3ac371cc_9f037d0f","updated":"2016-08-15 07:30:16.000000000","message":"Thank you for pointing.\nI\u0027ll fix all your pointed out.","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_check_done_terminate_and_detach_attach_completed(self):"},{"line_number":366,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":367,"context_line":"        instance_uuid \u003d str(uuid.uuid4())"},{"line_number":368,"context_line":"        volume \u003d {\u0027id\u0027: volume_id,"},{"line_number":369,"context_line":"                  \u0027attachments\u0027: {instance_uuid: {"},{"line_number":370,"context_line":"                                     \u0027attachment_id\u0027: \u0027fakeid\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_7f0cc142","line":367,"range":{"start_line":367,"start_character":24,"end_line":367,"end_character":41},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":389,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"},{"line_number":390,"context_line":"    def test_check_done_terminate_and_detach_no_other_attached_instances("},{"line_number":391,"context_line":"            self, mock_get_by_volume):"},{"line_number":392,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":393,"context_line":"        instance_uuid \u003d str(uuid.uuid4())"},{"line_number":394,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"},{"line_number":395,"context_line":"        instance \u003d fake_instance.fake_instance_obj("}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_eafe3104","line":392,"range":{"start_line":392,"start_character":20,"end_line":392,"end_character":37},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":390,"context_line":"    def test_check_done_terminate_and_detach_no_other_attached_instances("},{"line_number":391,"context_line":"            self, mock_get_by_volume):"},{"line_number":392,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":393,"context_line":"        instance_uuid \u003d str(uuid.uuid4())"},{"line_number":394,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"},{"line_number":395,"context_line":"        instance \u003d fake_instance.fake_instance_obj("},{"line_number":396,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_ca03750c","line":393,"range":{"start_line":393,"start_character":24,"end_line":393,"end_character":41},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":420,"context_line":"    @mock.patch.object(objects.InstanceList, \u0027get_by_host\u0027)"},{"line_number":421,"context_line":"    def test_check_done_terminate_and_detach_other_host_attached_instances("},{"line_number":422,"context_line":"            self, mock_get_by_host, mock_get_by_volume):"},{"line_number":423,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":424,"context_line":"        instance_uuid1 \u003d str(uuid.uuid4())"},{"line_number":425,"context_line":"        instance_uuid2 \u003d str(uuid.uuid4())"},{"line_number":426,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_0a0e2d34","line":423,"range":{"start_line":423,"start_character":20,"end_line":423,"end_character":37},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    def test_check_done_terminate_and_detach_other_host_attached_instances("},{"line_number":422,"context_line":"            self, mock_get_by_host, mock_get_by_volume):"},{"line_number":423,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":424,"context_line":"        instance_uuid1 \u003d str(uuid.uuid4())"},{"line_number":425,"context_line":"        instance_uuid2 \u003d str(uuid.uuid4())"},{"line_number":426,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"},{"line_number":427,"context_line":"        instance1 \u003d fake_instance.fake_instance_obj("}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_aa1d5968","line":424,"range":{"start_line":424,"start_character":25,"end_line":424,"end_character":41},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":422,"context_line":"            self, mock_get_by_host, mock_get_by_volume):"},{"line_number":423,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":424,"context_line":"        instance_uuid1 \u003d str(uuid.uuid4())"},{"line_number":425,"context_line":"        instance_uuid2 \u003d str(uuid.uuid4())"},{"line_number":426,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"},{"line_number":427,"context_line":"        instance1 \u003d fake_instance.fake_instance_obj("},{"line_number":428,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_ea2591ae","line":425,"range":{"start_line":425,"start_character":25,"end_line":425,"end_character":42},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":428,"context_line":"                self.context,"},{"line_number":429,"context_line":"                uuid\u003dinstance_uuid1,"},{"line_number":430,"context_line":"                vm_state\u003dvm_states.ACTIVE,"},{"line_number":431,"context_line":"                host\u003dstr(uuid.uuid4()))"},{"line_number":432,"context_line":"        fake_bdm1 \u003d fake_block_device.fake_bdm_object(self.context,"},{"line_number":433,"context_line":"                     {\u0027device_name\u0027: \u0027/dev/vdb\u0027, \u0027source_type\u0027: \u0027volume\u0027,"},{"line_number":434,"context_line":"                     \u0027destination_type\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_ca2a557e","line":431,"range":{"start_line":431,"start_character":21,"end_line":431,"end_character":37},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":453,"context_line":"    @mock.patch.object(objects.InstanceList, \u0027get_by_host\u0027)"},{"line_number":454,"context_line":"    def test_check_done_terminate_and_detach_same_host_attached_instances("},{"line_number":455,"context_line":"            self, mock_get_by_host, mock_get_by_volume):"},{"line_number":456,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":457,"context_line":"        instance_uuid1 \u003d str(uuid.uuid4())"},{"line_number":458,"context_line":"        instance_uuid2 \u003d str(uuid.uuid4())"},{"line_number":459,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_2a20499b","line":456,"range":{"start_line":456,"start_character":20,"end_line":456,"end_character":37},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":454,"context_line":"    def test_check_done_terminate_and_detach_same_host_attached_instances("},{"line_number":455,"context_line":"            self, mock_get_by_host, mock_get_by_volume):"},{"line_number":456,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":457,"context_line":"        instance_uuid1 \u003d str(uuid.uuid4())"},{"line_number":458,"context_line":"        instance_uuid2 \u003d str(uuid.uuid4())"},{"line_number":459,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"},{"line_number":460,"context_line":"        instance1 \u003d fake_instance.fake_instance_obj("}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_0a258daa","line":457,"range":{"start_line":457,"start_character":25,"end_line":457,"end_character":42},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            self, mock_get_by_host, mock_get_by_volume):"},{"line_number":456,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":457,"context_line":"        instance_uuid1 \u003d str(uuid.uuid4())"},{"line_number":458,"context_line":"        instance_uuid2 \u003d str(uuid.uuid4())"},{"line_number":459,"context_line":"        volume \u003d {\u0027id\u0027: volume_id}"},{"line_number":460,"context_line":"        instance1 \u003d fake_instance.fake_instance_obj("},{"line_number":461,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_6a3a41cf","line":458,"range":{"start_line":458,"start_character":25,"end_line":458,"end_character":42},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1179,"context_line":"            return_value\u003d(True, True))"},{"line_number":1180,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.terminate_connection\u0027)"},{"line_number":1181,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.detach\u0027)"},{"line_number":1182,"context_line":"        def do_test(self, mock_detach, mock_terminate_connection, mock_check,"},{"line_number":1183,"context_line":"                    mock_connector, mock_destroy, mock_blk_device_info,"},{"line_number":1184,"context_line":"                    mock_nw_info, mock_elevated):"},{"line_number":1185,"context_line":"            mock_connector.return_value \u003d conn_info[\u0027connector\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_1c5d5279","line":1182,"range":{"start_line":1182,"start_character":20,"end_line":1182,"end_character":25},"updated":"2016-09-12 02:29:56.000000000","message":"It is not necessary.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1179,"context_line":"            return_value\u003d(True, True))"},{"line_number":1180,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.terminate_connection\u0027)"},{"line_number":1181,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.detach\u0027)"},{"line_number":1182,"context_line":"        def do_test(self, mock_detach, mock_terminate_connection, mock_check,"},{"line_number":1183,"context_line":"                    mock_connector, mock_destroy, mock_blk_device_info,"},{"line_number":1184,"context_line":"                    mock_nw_info, mock_elevated):"},{"line_number":1185,"context_line":"            mock_connector.return_value \u003d conn_info[\u0027connector\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_3935c3d9","line":1182,"range":{"start_line":1182,"start_character":20,"end_line":1182,"end_character":25},"in_reply_to":"9a89bdaa_1c5d5279","updated":"2016-09-12 06:38:11.000000000","message":"Sorry, I fix it.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1191,"context_line":"            mock_detach.assert_called_once_with("},{"line_number":1192,"context_line":"                self.context, uuids.volume, instance.uuid)"},{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"        do_test(self)"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":"    def test_shutdown_instance_do_terminate_connection_only(self):"},{"line_number":1197,"context_line":"        \"\"\"Test to ensure volume detach won\u0027t be called if there is"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_7c4e5ec2","line":1194,"range":{"start_line":1194,"start_character":16,"end_line":1194,"end_character":20},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1191,"context_line":"            mock_detach.assert_called_once_with("},{"line_number":1192,"context_line":"                self.context, uuids.volume, instance.uuid)"},{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"        do_test(self)"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":"    def test_shutdown_instance_do_terminate_connection_only(self):"},{"line_number":1197,"context_line":"        \"\"\"Test to ensure volume detach won\u0027t be called if there is"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_5930c7e8","line":1194,"range":{"start_line":1194,"start_character":16,"end_line":1194,"end_character":20},"in_reply_to":"9a89bdaa_7c4e5ec2","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"            return_value\u003d(True, False))"},{"line_number":1225,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.terminate_connection\u0027)"},{"line_number":1226,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.detach\u0027)"},{"line_number":1227,"context_line":"        def do_test(self, mock_detach, mock_terminate_connection, mock_check,"},{"line_number":1228,"context_line":"                    mock_connector, mock_destroy, mock_blk_device_info,"},{"line_number":1229,"context_line":"                    mock_nw_info, mock_elevated):"},{"line_number":1230,"context_line":"            mock_connector.return_value \u003d conn_info[\u0027connector\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_9c4962ba","line":1227,"range":{"start_line":1227,"start_character":20,"end_line":1227,"end_character":25},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"            return_value\u003d(True, False))"},{"line_number":1225,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.terminate_connection\u0027)"},{"line_number":1226,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.detach\u0027)"},{"line_number":1227,"context_line":"        def do_test(self, mock_detach, mock_terminate_connection, mock_check,"},{"line_number":1228,"context_line":"                    mock_connector, mock_destroy, mock_blk_device_info,"},{"line_number":1229,"context_line":"                    mock_nw_info, mock_elevated):"},{"line_number":1230,"context_line":"            mock_connector.return_value \u003d conn_info[\u0027connector\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_794d8b71","line":1227,"range":{"start_line":1227,"start_character":20,"end_line":1227,"end_character":25},"in_reply_to":"9a89bdaa_9c4962ba","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"                self.context, uuids.volume, conn_info[\u0027connector\u0027])"},{"line_number":1236,"context_line":"            mock_detach.assert_not_called()"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"        do_test(self)"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"    def test_shutdown_instance_do_not_terminate_connection_and_detach(self):"},{"line_number":1241,"context_line":"        \"\"\"Test to ensure terminate connection and volume detach won\u0027t be"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_bcc62614","line":1238,"range":{"start_line":1238,"start_character":16,"end_line":1238,"end_character":20},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"                self.context, uuids.volume, conn_info[\u0027connector\u0027])"},{"line_number":1236,"context_line":"            mock_detach.assert_not_called()"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"        do_test(self)"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"    def test_shutdown_instance_do_not_terminate_connection_and_detach(self):"},{"line_number":1241,"context_line":"        \"\"\"Test to ensure terminate connection and volume detach won\u0027t be"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_99508f0c","line":1238,"range":{"start_line":1238,"start_character":16,"end_line":1238,"end_character":20},"in_reply_to":"9a89bdaa_bcc62614","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"            return_value\u003d(False, False))"},{"line_number":1268,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.terminate_connection\u0027)"},{"line_number":1269,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.detach\u0027)"},{"line_number":1270,"context_line":"        def do_test(self, mock_detach, mock_terminate_connection, mock_check,"},{"line_number":1271,"context_line":"                    mock_connector, mock_destroy, mock_blk_device_info,"},{"line_number":1272,"context_line":"                    mock_nw_info, mock_elevated):"},{"line_number":1273,"context_line":"            mock_connector.return_value \u003d conn_info[\u0027connector\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_fcd0aecb","line":1270,"range":{"start_line":1270,"start_character":20,"end_line":1270,"end_character":25},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"            return_value\u003d(False, False))"},{"line_number":1268,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.terminate_connection\u0027)"},{"line_number":1269,"context_line":"        @mock.patch(\u0027nova.volume.cinder.API.detach\u0027)"},{"line_number":1270,"context_line":"        def do_test(self, mock_detach, mock_terminate_connection, mock_check,"},{"line_number":1271,"context_line":"                    mock_connector, mock_destroy, mock_blk_device_info,"},{"line_number":1272,"context_line":"                    mock_nw_info, mock_elevated):"},{"line_number":1273,"context_line":"            mock_connector.return_value \u003d conn_info[\u0027connector\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_394ce36f","line":1270,"range":{"start_line":1270,"start_character":20,"end_line":1270,"end_character":25},"in_reply_to":"9a89bdaa_fcd0aecb","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f6e93d723c018959e7c100e9388ce79d4ae6085","unresolved":false,"context_lines":[{"line_number":1277,"context_line":"            mock_terminate_connection.assert_not_called()"},{"line_number":1278,"context_line":"            mock_detach.assert_not_called()"},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"        do_test(self)"},{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"    @mock.patch(\u0027nova.context.RequestContext.elevated\u0027)"},{"line_number":1283,"context_line":"    @mock.patch(\u0027nova.compute.utils.get_nw_info_for_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_3cdbf6ee","line":1280,"range":{"start_line":1280,"start_character":16,"end_line":1280,"end_character":20},"updated":"2016-09-12 02:29:56.000000000","message":"ditto","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c991b3e490e0d8e092272c7e4c7a39a358244ab2","unresolved":false,"context_lines":[{"line_number":1277,"context_line":"            mock_terminate_connection.assert_not_called()"},{"line_number":1278,"context_line":"            mock_detach.assert_not_called()"},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"        do_test(self)"},{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"    @mock.patch(\u0027nova.context.RequestContext.elevated\u0027)"},{"line_number":1283,"context_line":"    @mock.patch(\u0027nova.compute.utils.get_nw_info_for_instance\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_7974ab9b","line":1280,"range":{"start_line":1280,"start_character":16,"end_line":1280,"end_character":20},"in_reply_to":"9a89bdaa_3cdbf6ee","updated":"2016-09-12 06:38:11.000000000","message":"Same as above.","commit_id":"0020ed1405c22849283d0484e88e318d4aac84b9"}],"nova/tests/unit/compute/test_compute_utils.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":863,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":864,"context_line":"                self.context, instance, fake_bdm)"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":867,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_9aa27099","line":866,"range":{"start_line":866,"start_character":13,"end_line":866,"end_character":29},"updated":"2017-01-25 11:23:07.000000000","message":"It should be \u0027assertTrue\u0027.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":863,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":864,"context_line":"                self.context, instance, fake_bdm)"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":867,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_b34bde2a","line":866,"range":{"start_line":866,"start_character":13,"end_line":866,"end_character":29},"in_reply_to":"5a3905b3_9aa27099","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":864,"context_line":"                self.context, instance, fake_bdm)"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":867,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":870,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_3aba5cc1","line":867,"range":{"start_line":867,"start_character":13,"end_line":867,"end_character":29},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":864,"context_line":"                self.context, instance, fake_bdm)"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":867,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":870,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_f35566c6","line":867,"range":{"start_line":867,"start_character":13,"end_line":867,"end_character":29},"in_reply_to":"5a3905b3_3aba5cc1","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":898,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":899,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":902,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":903,"context_line":""},{"line_number":904,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_1a03e077","line":901,"range":{"start_line":901,"start_character":12,"end_line":901,"end_character":29},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":898,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":899,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":902,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":903,"context_line":""},{"line_number":904,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_53639ab1","line":901,"range":{"start_line":901,"start_character":12,"end_line":901,"end_character":29},"in_reply_to":"5a3905b3_1a03e077","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":899,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":902,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":903,"context_line":""},{"line_number":904,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":905,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_9af7d08b","line":902,"range":{"start_line":902,"start_character":13,"end_line":902,"end_character":29},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":899,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":902,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":903,"context_line":""},{"line_number":904,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":905,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_735896fb","line":902,"range":{"start_line":902,"start_character":13,"end_line":902,"end_character":29},"in_reply_to":"5a3905b3_9af7d08b","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":935,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":936,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":939,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_1a1120b0","line":938,"range":{"start_line":938,"start_character":13,"end_line":938,"end_character":29},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":935,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":936,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":939,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_d36f8a90","line":938,"range":{"start_line":938,"start_character":13,"end_line":938,"end_character":29},"in_reply_to":"5a3905b3_1a1120b0","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":936,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":939,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":942,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_ba22ccff","line":939,"range":{"start_line":939,"start_character":13,"end_line":939,"end_character":30},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":936,"context_line":"                self.context, instance, fake_bdm1)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":939,"context_line":"        self.assertEqual(True, do_detach)"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":942,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_f36c869e","line":939,"range":{"start_line":939,"start_character":13,"end_line":939,"end_character":30},"in_reply_to":"5a3905b3_ba22ccff","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":973,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":974,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":977,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_9a6c3038","line":976,"range":{"start_line":976,"start_character":13,"end_line":976,"end_character":29},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":973,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":974,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":977,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_530abad3","line":976,"range":{"start_line":976,"start_character":13,"end_line":976,"end_character":29},"in_reply_to":"5a3905b3_9a6c3038","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":974,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":977,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":980,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_9a53506c","line":977,"range":{"start_line":977,"start_character":13,"end_line":977,"end_character":30},"updated":"2017-01-25 11:23:07.000000000","message":"It should be \u0027assertFalse\u0027.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":974,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"        self.assertEqual(True, do_terminate)"},{"line_number":977,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    @mock.patch.object(compute_utils.cinder.API, \u0027get\u0027)"},{"line_number":980,"context_line":"    @mock.patch.object(objects.BlockDeviceMappingList, \u0027get_by_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_931422f6","line":977,"range":{"start_line":977,"start_character":13,"end_line":977,"end_character":30},"in_reply_to":"5a3905b3_9a53506c","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":1017,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"        self.assertEqual(False, do_terminate)"},{"line_number":1020,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_7ad5c4b7","line":1019,"range":{"start_line":1019,"start_character":13,"end_line":1019,"end_character":30},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"        do_terminate, do_detach \u003d compute_utils.check_do_terminate_and_detach("},{"line_number":1017,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"        self.assertEqual(False, do_terminate)"},{"line_number":1020,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_d3f6aad6","line":1019,"range":{"start_line":1019,"start_character":13,"end_line":1019,"end_character":30},"in_reply_to":"5a3905b3_7ad5c4b7","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1891a5dd5fd614eb8440b0f709825324cb74076f","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"        self.assertEqual(False, do_terminate)"},{"line_number":1020,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"class ComputeUtilsQuotaDeltaTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_3af25c70","line":1020,"range":{"start_line":1020,"start_character":13,"end_line":1020,"end_character":30},"updated":"2017-01-25 11:23:07.000000000","message":"ditto","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"440a203d651e1a386a29b5d0c06c2c8956103074","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"                self.context, instance1, fake_bdm1)"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"        self.assertEqual(False, do_terminate)"},{"line_number":1020,"context_line":"        self.assertEqual(False, do_detach)"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"class ComputeUtilsQuotaDeltaTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a461143_130112af","line":1020,"range":{"start_line":1020,"start_character":13,"end_line":1020,"end_character":30},"in_reply_to":"5a3905b3_3af25c70","updated":"2017-01-26 01:01:41.000000000","message":"I fix it.","commit_id":"bba4f2ddffa779c70a74b4cf00a6871fcdc90e3d"}],"nova/tests/unit/objects/test_block_device.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def fake_bdm(self, bdm_id, boot_index\u003d-1, instance_uuid\u003duuids.instance,"},{"line_number":388,"context_line":"                 volume_id\u003dNone):"},{"line_number":389,"context_line":"        if not volume_id:"},{"line_number":390,"context_line":"            volume_id \u003d str(uuid.uuid4())"},{"line_number":391,"context_line":"        fake_bdm \u003d fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":392,"context_line":"            \u0027id\u0027: bdm_id,"},{"line_number":393,"context_line":"            \u0027boot_index\u0027: boot_index,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_6a41a139","line":390,"range":{"start_line":390,"start_character":24,"end_line":390,"end_character":41},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    @mock.patch.object(db, \u0027block_device_mapping_get_all_by_volume_id\u0027)"},{"line_number":459,"context_line":"    def test_get_by_volume(self, get_all_by_volume):"},{"line_number":460,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":461,"context_line":"        fakes \u003d [self.fake_bdm(123, volume_id\u003dvolume_id),"},{"line_number":462,"context_line":"                 self.fake_bdm(456, volume_id\u003dvolume_id)]"},{"line_number":463,"context_line":"        get_all_by_volume.return_value \u003d fakes"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_aa4b9958","line":460,"range":{"start_line":460,"start_character":20,"end_line":460,"end_character":36},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f0a9bf8fc34c810b6726590ea8428b93dd00ec57","unresolved":false,"context_lines":[{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    @mock.patch.object(db, \u0027block_device_mapping_get_all_by_volume_id\u0027)"},{"line_number":471,"context_line":"    def test_get_by_volume_no_result(self, get_all_by_volume):"},{"line_number":472,"context_line":"        volume_id \u003d str(uuid.uuid4())"},{"line_number":473,"context_line":"        get_all_by_volume.return_value \u003d None"},{"line_number":474,"context_line":"        bdm_list \u003d objects.BlockDeviceMappingList.get_by_volume("},{"line_number":475,"context_line":"            self.context, volume_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_8a485d5d","line":472,"range":{"start_line":472,"start_character":20,"end_line":472,"end_character":37},"updated":"2016-08-15 07:15:55.000000000","message":"ditto","commit_id":"5ec892bdf4b3ad0d9c8275d883a4ac13e962ecf1"}]}
