)]}'
{"tempest/api/volume/test_volumes_list.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"37eaf06109269bf86b866289c95ada44c83b392d","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        fetched_list \u003d self.volumes_client.list_volumes(detail\u003dTrue)[\u0027volumes\u0027]"},{"line_number":132,"context_line":"        # If the fetched_list contain bootable volumes, every volume in the"},{"line_number":133,"context_line":"        # list contains \"volume_image-metadata\" property."},{"line_number":134,"context_line":"        contain_bootable_volume \u003d self._contain_bootable_volume(fetched_list)"},{"line_number":135,"context_line":"        if contain_bootable_volume:"},{"line_number":136,"context_line":"            volume_list \u003d self._set_volume_image_property(self.volume_list)"},{"line_number":137,"context_line":"            self.assertVolumesIn(fetched_list, volume_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_af0a5387","line":134,"updated":"2017-04-14 11:31:15.000000000","message":"How about like this?\n\n volume_list \u003d self.volume_list\n if self._contain_bootable_volume(fetched_list):\n     volume_list \u003d self._set_volume_image_property(self.volume_list)\n\n self.assertVolumesIn(fetched_list, self.volume_list)","commit_id":"8bc469bedc46669e06cba238a0b99fa5830efb08"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"ccf4abfffd00489b45aec8422efd97a0972c3aff","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        fetched_list \u003d self.volumes_client.list_volumes(detail\u003dTrue)[\u0027volumes\u0027]"},{"line_number":132,"context_line":"        # If the fetched_list contain bootable volumes, every volume in the"},{"line_number":133,"context_line":"        # list contains \"volume_image-metadata\" property."},{"line_number":134,"context_line":"        contain_bootable_volume \u003d self._contain_bootable_volume(fetched_list)"},{"line_number":135,"context_line":"        if contain_bootable_volume:"},{"line_number":136,"context_line":"            volume_list \u003d self._set_volume_image_property(self.volume_list)"},{"line_number":137,"context_line":"            self.assertVolumesIn(fetched_list, volume_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_0228e383","line":134,"in_reply_to":"7ffa3b31_af0a5387","updated":"2017-04-17 03:27:28.000000000","message":"Cool, I like it. Thanks.","commit_id":"8bc469bedc46669e06cba238a0b99fa5830efb08"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2720cb452a1b99a769b7e902de6279464e7925c9","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            new_volume_list.append(new_volume)"},{"line_number":109,"context_line":"        return new_volume_list"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _contain_bootable_volume(self, volume_list):"},{"line_number":112,"context_line":"        for volume in volume_list:"},{"line_number":113,"context_line":"            if volume.get(\u0027volume_image_metadata\u0027) is not None:"},{"line_number":114,"context_line":"                return True"},{"line_number":115,"context_line":"        return False"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":118,"context_line":"    @decorators.idempotent_id(\u00270b6ddd39-b948-471f-8038-4787978747c4\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_76706ddd","line":115,"range":{"start_line":111,"start_character":0,"end_line":115,"end_character":20},"updated":"2017-04-18 07:26:37.000000000","message":"this is not right hack to check bootable volume","commit_id":"6d6e4b68fa8517cf73bd6fc30a0a79cf6de777c0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2720cb452a1b99a769b7e902de6279464e7925c9","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        fetched_list \u003d self.volumes_client.list_volumes(detail\u003dTrue)[\u0027volumes\u0027]"},{"line_number":131,"context_line":"        # If the fetched_list contain bootable volumes, every volume in the"},{"line_number":132,"context_line":"        # list contains \"volume_image-metadata\" property."},{"line_number":133,"context_line":"        volume_list \u003d self.volume_list"},{"line_number":134,"context_line":"        if self._contain_bootable_volume(fetched_list):"},{"line_number":135,"context_line":"            volume_list \u003d self._set_volume_image_property(self.volume_list)"},{"line_number":136,"context_line":"        self.assertVolumesIn(fetched_list, volume_list)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @decorators.idempotent_id(\u0027a28e8da4-0b56-472f-87a8-0f4d3f819c02\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_560e913b","line":135,"range":{"start_line":133,"start_character":0,"end_line":135,"end_character":75},"updated":"2017-04-18 07:26:37.000000000","message":"this is not right way to test the API. You are checking the response of API if \u0027volume_image_metadata\u0027 is present you are adding the same in SHOW API response.\n\nThis way we are not testing the expected behavior instead we modify the expected behavior according to what we actually get.","commit_id":"6d6e4b68fa8517cf73bd6fc30a0a79cf6de777c0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a8a6677394babccb44dc63889ad57b2fbbeebcbd","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        # If the fetched_list contain bootable volumes, every volume in the"},{"line_number":116,"context_line":"        # list contains \"volume_image_metadata\" property. We need remove this"},{"line_number":117,"context_line":"        # property to keep the same with \"volume show\"."},{"line_number":118,"context_line":"        for volume in fetched_list:"},{"line_number":119,"context_line":"            volume.pop(\u0027volume_image_metadata\u0027, None)"},{"line_number":120,"context_line":"        self.assertVolumesIn(fetched_list, self.volume_list)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @decorators.idempotent_id(\u0027a28e8da4-0b56-472f-87a8-0f4d3f819c02\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_f05d81e9","line":119,"range":{"start_line":118,"start_character":0,"end_line":119,"end_character":53},"updated":"2017-04-19 03:26:14.000000000","message":"I still think this logic should be put in assertVolumesIn","commit_id":"880e33e1ac83f36c8dc774a3da74b272983e4da4"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"977cd867b849c452ba10307bfb058e3f64a2827e","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # Create 3 test volumes"},{"line_number":69,"context_line":"        cls.volume_list \u003d []"},{"line_number":70,"context_line":"        cls.unbootable_volume_list \u003d []"},{"line_number":71,"context_line":"        cls.metadata \u003d {\u0027Type\u0027: \u0027work\u0027}"},{"line_number":72,"context_line":"        new_volume_id_list \u003d []"},{"line_number":73,"context_line":"        for _ in range(3):"},{"line_number":74,"context_line":"            volume \u003d cls.create_volume(metadata\u003dcls.metadata)"},{"line_number":75,"context_line":"            volume \u003d cls.volumes_client.show_volume(volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":76,"context_line":"            cls.unbootable_volume_list.append(volume)"},{"line_number":77,"context_line":"            cls.volume_id_list.append(volume[\u0027id\u0027])"},{"line_number":78,"context_line":"            new_volume_id_list.append(volume[\u0027id\u0027])"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        volumes \u003d cls.volumes_client.list_volumes(detail\u003dTrue)[\u0027volumes\u0027]"},{"line_number":81,"context_line":"        for volume_id in new_volume_id_list:"},{"line_number":82,"context_line":"            for volume in volumes:"},{"line_number":83,"context_line":"                if volume[\u0027id\u0027] \u003d\u003d volume_id:"},{"line_number":84,"context_line":"                    cls.volume_list.append(volume)"},{"line_number":85,"context_line":"                    break"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def _list_by_param_value_and_assert(self, params, with_detail\u003dFalse):"},{"line_number":88,"context_line":"        \"\"\"list or list_details with given params and validates result\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_569c1569","line":85,"range":{"start_line":70,"start_character":0,"end_line":85,"end_character":25},"updated":"2017-04-27 03:23:20.000000000","message":"These multi lines are to deal with the field difference between show_volume and list_volumes, but without comment we can hardly \nunderstand the reason.\nIf Cinder will modify it, then we only need a temporarily modification in Tempest;\nIf Cinder won\u0027t modify it, then we\u0027d better to simply ignore the difference of \u0027volume_image_metadata\u0027, i.e., we can just remove\n\u0027volume_image_metadata\u0027 from the response body","commit_id":"be85614eb1e2959c6700ec9cfd65e91b28714b04"}]}
