)]}'
{"tempest/api/image/base.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"03be6147129fd7c9c7050eae78dd1cc6eaa8b545","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        cls.client \u003d cls.os.image_client"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @classmethod"},{"line_number":98,"context_line":"    def get_container_and_disk_format(cls):"},{"line_number":99,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_52630a42","line":98,"updated":"2015-10-22 13:47:54.000000000","message":"This is a kind of silly question, though.\n\nWhy don\u0027t you implement this method in test_images.py?\nI think we can define a function in a module and out of a class.","commit_id":"24d034c28066a717faf6e0a3f96e8c5537137356"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"788488f2ca25d284ef135dcd0d0f79a1298db680","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        cls.client \u003d cls.os.image_client"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @classmethod"},{"line_number":98,"context_line":"    def get_container_and_disk_format(cls):"},{"line_number":99,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_9016654a","line":98,"in_reply_to":"3a29b11f_52630a42","updated":"2015-10-22 23:45:47.000000000","message":"I implemented this method in BaseV1ImageTest because BaseV1ImageTest is a base class of CreateRegisterImagesTest and UpdateImageMetaTest.","commit_id":"24d034c28066a717faf6e0a3f96e8c5537137356"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"1875a79579558d2d7dec46398525c40e2f5b70b7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        cls.client \u003d cls.os.image_client"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @classmethod"},{"line_number":98,"context_line":"    def get_container_and_disk_format(cls):"},{"line_number":99,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_9aa98d93","line":98,"in_reply_to":"3a29b11f_9016654a","updated":"2015-10-23 14:21:51.000000000","message":"yeah, I know that. But I think this method is used in test_images module only.\nSo my suggestion is that how about just moving this method to test_images.\nNow, you write a code for calling this method by \"base.BaseV1ImageTest.get_container_and_disk_format()\" in CreateRegisterImagesTest and UpdateImageMetaTest.\nBut if this method is moved to test_image.py as a module function, we can call the method by just \"get_container_and_disk_format()\". I think it\u0027s simple rather than this patch implementation.\n\nWhat do you think?","commit_id":"24d034c28066a717faf6e0a3f96e8c5537137356"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"aca2f8ef93d19df68c347990791de92f27fa9f8d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        cls.client \u003d cls.os.image_client"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @classmethod"},{"line_number":98,"context_line":"    def get_container_and_disk_format(cls):"},{"line_number":99,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_7edc8518","line":98,"in_reply_to":"3a29b11f_9aa98d93","updated":"2015-10-26 02:08:59.000000000","message":"Done","commit_id":"24d034c28066a717faf6e0a3f96e8c5537137356"}],"tempest/api/image/v1/test_images.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b872ffd2e9a81a69a41c6a3d3fbdc682d412c04a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        img8 \u003d cls._create_standard_image(\u002733\u0027, cls.container1, cls.disk1, 142)"},{"line_number":154,"context_line":"        cls.created_set \u003d set(cls.created_images)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        cls.same_container_set \u003d set((img1, img3, img4, img7, img8))"},{"line_number":157,"context_line":"        cls.same_disk_set \u003d set((img2, img5, img6))"},{"line_number":158,"context_line":"        # 1x with size 42"},{"line_number":159,"context_line":"        cls.size42_set \u003d set((img5,))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_ff809af9","line":156,"updated":"2015-10-12 15:54:49.000000000","message":"Could you add a code comment to descrit what this set holds ? What\u0027s the common point between all these images. Please add a code comment.","commit_id":"94e916580e00b5b56d2deafd25ed29bc565134cf"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b872ffd2e9a81a69a41c6a3d3fbdc682d412c04a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        cls.created_set \u003d set(cls.created_images)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        cls.same_container_set \u003d set((img1, img3, img4, img7, img8))"},{"line_number":157,"context_line":"        cls.same_disk_set \u003d set((img2, img5, img6))"},{"line_number":158,"context_line":"        # 1x with size 42"},{"line_number":159,"context_line":"        cls.size42_set \u003d set((img5,))"},{"line_number":160,"context_line":"        # 3x with size 142"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_bf7b0229","line":157,"updated":"2015-10-12 15:54:49.000000000","message":"Could you add a code comment to descrit what this set holds ? What\u0027s the common point between all these images. Please add a code comment.","commit_id":"94e916580e00b5b56d2deafd25ed29bc565134cf"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b872ffd2e9a81a69a41c6a3d3fbdc682d412c04a","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    def resource_setup(cls):"},{"line_number":273,"context_line":"        super(UpdateImageMetaTest, cls).resource_setup()"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        container_format \u003d CONF.image.container_formats[0]"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_9fa9667e","line":275,"updated":"2015-10-12 15:54:49.000000000","message":"This code looks similar to what you add line 30. Please do not duplicate some code.","commit_id":"94e916580e00b5b56d2deafd25ed29bc565134cf"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"1ca6bd94cb40527afe12da89d823466fa1a34d9f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    container_format \u003d CONF.image.container_formats[0]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if container_format in a_formats:"},{"line_number":32,"context_line":"        disk_format \u003d container_format"},{"line_number":33,"context_line":"    else:"},{"line_number":34,"context_line":"        disk_format \u003d CONF.image.disk_formats[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_ac67bfe7","line":31,"updated":"2015-11-11 12:35:39.000000000","message":"So I think the logic here could be to always take CONF.image.disk_format[0], and if that is a_formats and they do not match raise an exception.\n\nThe default configuration passes this check, so if someone is changing configuration, but in an incorrect way, I think it\u0027s better to fail rather than try to fix the issue.","commit_id":"21f22aed4f8ab29ac6d7b1ecacf393d360aa14f2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"806d192d8a0afabe3d39f4361dde0d52b954d82e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    container_format \u003d CONF.image.container_formats[0]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if container_format in a_formats:"},{"line_number":32,"context_line":"        disk_format \u003d container_format"},{"line_number":33,"context_line":"    else:"},{"line_number":34,"context_line":"        disk_format \u003d CONF.image.disk_formats[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_d616244b","line":31,"in_reply_to":"da85f559_ac67bfe7","updated":"2015-11-12 07:11:44.000000000","message":"Done","commit_id":"21f22aed4f8ab29ac6d7b1ecacf393d360aa14f2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1bbb1e60f8809403f9c19f39d5354d6bbb0829d1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    container_format \u003d CONF.image.container_formats[0]"},{"line_number":31,"context_line":"    disk_format \u003d CONF.image.disk_formats[0]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    if container_format in a_formats and container_format !\u003d disk_format:"},{"line_number":34,"context_line":"        msg \u003d (\"The container format and the disk format don\u0027t match. \""},{"line_number":35,"context_line":"               \"Contaiter format: %(container)s, Disk format: %(disk)s.\" %"},{"line_number":36,"context_line":"               {\u0027container\u0027: container_format, \u0027disk\u0027: disk_format})"}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_8aeeecea","line":33,"updated":"2016-01-12 12:06:48.000000000","message":"You shouldn\u0027t rely on the order in which container_format and disk_format are defined in the conf.\n\nThere\u0027s no reason why someone would configure Tempest so that CONF.image.container_formats[0] \u003d\u003d CONF.image.disk_formats[0]. We can\u0027t expect that and we shouldn\"t fail on that.","commit_id":"8b89e1f96322811300cd5ca1bc232f73500f4cd8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"481cee8260fc535f93bb32fce279cd2af20d2560","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    container_format \u003d CONF.image.container_formats[0]"},{"line_number":31,"context_line":"    disk_format \u003d CONF.image.disk_formats[0]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    if container_format in a_formats and container_format !\u003d disk_format:"},{"line_number":34,"context_line":"        msg \u003d (\"The container format and the disk format don\u0027t match. \""},{"line_number":35,"context_line":"               \"Contaiter format: %(container)s, Disk format: %(disk)s.\" %"},{"line_number":36,"context_line":"               {\u0027container\u0027: container_format, \u0027disk\u0027: disk_format})"}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_7601b069","line":33,"in_reply_to":"da6ed579_8aeeecea","updated":"2016-01-14 07:46:18.000000000","message":"In PS9, Andrea recommended this implementation.\nSo I modified like this code.","commit_id":"8b89e1f96322811300cd5ca1bc232f73500f4cd8"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1bbb1e60f8809403f9c19f39d5354d6bbb0829d1","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        cls.container1, cls.container2 \u003d CONF.image.container_formats[:2]"},{"line_number":139,"context_line":"        cls.disk1, cls.disk2 \u003d CONF.image.disk_formats[:2]"},{"line_number":140,"context_line":"        if cls.container1 in a_formats:"},{"line_number":141,"context_line":"            cls.disk1 \u003d cls.container1"}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_2ab6e0dc","line":138,"updated":"2016-01-12 12:06:48.000000000","message":"container1 and container2 are misnamed variables. What about container_format and container_format_alt ?\n\nSame with cls.disk1 and cls.disk2.","commit_id":"8b89e1f96322811300cd5ca1bc232f73500f4cd8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"5283149b458e812068d5127cf9d4af46b3613ccb","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        a_formats \u003d [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        cls.container1, cls.container2 \u003d CONF.image.container_formats[:2]"},{"line_number":139,"context_line":"        cls.disk1, cls.disk2 \u003d CONF.image.disk_formats[:2]"},{"line_number":140,"context_line":"        if cls.container1 in a_formats:"},{"line_number":141,"context_line":"            cls.disk1 \u003d cls.container1"}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_73f9bdc6","line":138,"in_reply_to":"da6ed579_2ab6e0dc","updated":"2016-01-14 09:02:13.000000000","message":"Done","commit_id":"8b89e1f96322811300cd5ca1bc232f73500f4cd8"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"3631ff107bd2e272568c5f600dffc95ee495d9e2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        super(ListImagesTest, cls).resource_setup()"},{"line_number":128,"context_line":"        # We add a few images here to test the listing functionality of"},{"line_number":129,"context_line":"        # the images API"},{"line_number":130,"context_line":"        if (len(CONF.image.container_formats) \u003c 2"},{"line_number":131,"context_line":"           or len(CONF.image.disk_formats) \u003c 2):"},{"line_number":132,"context_line":"            skip_msg \u003d (\"%s skipped as multiple container formats \""},{"line_number":133,"context_line":"                        \"or disk formats are not available.\" % cls.__name__)"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_1d284732","line":130,"updated":"2016-01-15 10:27:32.000000000","message":"Move this check into a dedicated \"skip_checks\" class method. Have a loot at tempest/test.py to understand why.","commit_id":"e7853c4b3db60e7714c2179f0a2e6ceb6a4a419f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f197974b667a3e24b1a38afcb1213ba63bdd36cd","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        super(ListImagesTest, cls).resource_setup()"},{"line_number":128,"context_line":"        # We add a few images here to test the listing functionality of"},{"line_number":129,"context_line":"        # the images API"},{"line_number":130,"context_line":"        if (len(CONF.image.container_formats) \u003c 2"},{"line_number":131,"context_line":"           or len(CONF.image.disk_formats) \u003c 2):"},{"line_number":132,"context_line":"            skip_msg \u003d (\"%s skipped as multiple container formats \""},{"line_number":133,"context_line":"                        \"or disk formats are not available.\" % cls.__name__)"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_e7f1cc96","line":130,"in_reply_to":"da6ed579_1d284732","updated":"2016-01-18 08:15:11.000000000","message":"Done","commit_id":"e7853c4b3db60e7714c2179f0a2e6ceb6a4a419f"}]}
