)]}'
{"nova/tests/unit/virt/test_block_device.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ceb7954e1fd274ec96162cd1d2a61555d07770f7","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \u0027connection_info\u0027: {\"fake\": \"connection_info\"},"},{"line_number":121,"context_line":"        \u0027delete_on_termination\u0027: False}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    volume_bdm_dict_without_conn_info \u003d block_device.BlockDeviceDict("},{"line_number":124,"context_line":"        {\u0027id\u0027: 3, \u0027instance_uuid\u0027: uuids.instance,"},{"line_number":125,"context_line":"         \u0027device_name\u0027: \u0027/dev/sda1\u0027,"},{"line_number":126,"context_line":"         \u0027source_type\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_b6012009","line":123,"updated":"2019-03-21 22:43:14.000000000","message":"nit: could have avoided defining this by just copying volume_bdm_dict in setUp and change the connection_info, but not a huge deal.","commit_id":"e8583fcf28749854f5d1848f7cfad5960702b6d9"}],"nova/virt/block_device.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ceb7954e1fd274ec96162cd1d2a61555d07770f7","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            self[\u0027connection_info\u0027] \u003d jsonutils.loads("},{"line_number":286,"context_line":"                self._bdm_obj.connection_info)"},{"line_number":287,"context_line":"        except TypeError:"},{"line_number":288,"context_line":"            self[\u0027connection_info\u0027] \u003d {}"},{"line_number":289,"context_line":"        # volume_type might not be set on the internal bdm object so default"},{"line_number":290,"context_line":"        # to None if not set"},{"line_number":291,"context_line":"        self[\u0027volume_type\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_79016904","line":288,"updated":"2019-03-21 22:43:14.000000000","message":"Would be good to leave a comment here. This code is all super janky and needs to be documented.","commit_id":"e8583fcf28749854f5d1848f7cfad5960702b6d9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ceb7954e1fd274ec96162cd1d2a61555d07770f7","unresolved":false,"context_lines":[{"line_number":678,"context_line":"        # NOTE(ndipanov): we might want to generalize this by adding it to the"},{"line_number":679,"context_line":"        # _update_on_save and adding a transformation function."},{"line_number":680,"context_line":"        try:"},{"line_number":681,"context_line":"            connection_info_string \u003d jsonutils.dumps("},{"line_number":682,"context_line":"                self.get(\u0027connection_info\u0027))"},{"line_number":683,"context_line":"            if connection_info_string !\u003d self._bdm_obj.connection_info:"},{"line_number":684,"context_line":"                self._bdm_obj.connection_info \u003d connection_info_string"},{"line_number":685,"context_line":"        except TypeError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_19086526","line":682,"range":{"start_line":681,"start_character":12,"end_line":682,"end_character":44},"updated":"2019-03-21 22:43:14.000000000","message":"OK so this should always be at least \u0027{}\u0027 yeah?","commit_id":"e8583fcf28749854f5d1848f7cfad5960702b6d9"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"9fbe84d7aa5ef683dc2077bdc2617085adf348de","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            self[\u0027connection_info\u0027] \u003d jsonutils.loads("},{"line_number":286,"context_line":"                self._bdm_obj.connection_info)"},{"line_number":287,"context_line":"        except TypeError:"},{"line_number":288,"context_line":"            self[\u0027connection_info\u0027] \u003d {}"},{"line_number":289,"context_line":"        # volume_type might not be set on the internal bdm object so default"},{"line_number":290,"context_line":"        # to None if not set"},{"line_number":291,"context_line":"        self[\u0027volume_type\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_88e399a4","line":288,"range":{"start_line":288,"start_character":12,"end_line":288,"end_character":40},"updated":"2019-03-22 06:46:29.000000000","message":"agree with matt from previous patchset, we could have some doc for this, and seems line 289 could be a very good example","commit_id":"d5c246cb5650f8e799c6b343b404bf84bd23cf4c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"db306e52d8f549c63b9b53d4490bbf9d3431aabf","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            self[\u0027connection_info\u0027] \u003d jsonutils.loads("},{"line_number":288,"context_line":"                self._bdm_obj.connection_info)"},{"line_number":289,"context_line":"        except TypeError:"},{"line_number":290,"context_line":"            self[\u0027connection_info\u0027] \u003d {}"},{"line_number":291,"context_line":"        # volume_type might not be set on the internal bdm object so default"},{"line_number":292,"context_line":"        # to None if not set"},{"line_number":293,"context_line":"        self[\u0027volume_type\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_153c58c6","line":290,"updated":"2019-03-25 19:06:45.000000000","message":"note while this technically could break logic that depended on it being none in this case i dont think we have any that do. \n\nwe do however have logic that depend in the connection_info being a dict which is failing which this will fix so im ok with this chagne\n\nany check that previousl jsut did an \"if\" check in stead of \"if ... is None\" will be unaffected.","commit_id":"9fa03d4d72609b6eb2ace7b89eaf437f94252be0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"db306e52d8f549c63b9b53d4490bbf9d3431aabf","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        # volume_type might not be set on the internal bdm object so default"},{"line_number":292,"context_line":"        # to None if not set"},{"line_number":293,"context_line":"        self[\u0027volume_type\u0027] \u003d ("},{"line_number":294,"context_line":"            self.volume_type if \u0027volume_type\u0027 in self._bdm_obj else None)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    def _preserve_multipath_id(self, connection_info):"},{"line_number":297,"context_line":"        if self[\u0027connection_info\u0027] and \u0027data\u0027 in self[\u0027connection_info\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_f55c2c1a","line":294,"range":{"start_line":294,"start_character":64,"end_line":294,"end_character":72},"updated":"2019-03-25 19:06:45.000000000","message":"clould this be a similar issue in the future?\n\nproably not as i  assume volume type is either a sting or none\n\nand we only have the issue above because its a dict but its the same patteren.","commit_id":"9fa03d4d72609b6eb2ace7b89eaf437f94252be0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7bad39b9bdb4c582ffb91c6a68d637e7851ec8d2","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        # volume_type might not be set on the internal bdm object so default"},{"line_number":292,"context_line":"        # to None if not set"},{"line_number":293,"context_line":"        self[\u0027volume_type\u0027] \u003d ("},{"line_number":294,"context_line":"            self.volume_type if \u0027volume_type\u0027 in self._bdm_obj else None)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    def _preserve_multipath_id(self, connection_info):"},{"line_number":297,"context_line":"        if self[\u0027connection_info\u0027] and \u0027data\u0027 in self[\u0027connection_info\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_10d1c6fb","line":294,"range":{"start_line":294,"start_character":64,"end_line":294,"end_character":72},"in_reply_to":"5fc1f717_f55c2c1a","updated":"2019-03-25 20:23:55.000000000","message":"\u003e clould this be a similar issue in the future?\n \u003e \n \u003e proably not as i  assume volume type is either a sting or none\n \u003e \n \u003e and we only have the issue above because its a dict but its the\n \u003e same patteren.\n\nI don\u0027t think so, as you said volume_type is either a string or None, and not some wacky serialized json string of a dict which could be empty.","commit_id":"9fa03d4d72609b6eb2ace7b89eaf437f94252be0"}]}
