)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d0739621b5111ae3eba04458fff934822a9be6b6","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Hence, let\u0027s have single method for single work. Thus, we need to"},{"line_number":16,"context_line":"replace \u0027_image_create()\u0027 with \u0027image_create()\u0027."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Signed-off by: Soniya Vyas\u003csvyas@redhat.com\u003e"},{"line_number":19,"context_line":"Change-Id: I33e6abd416bbe5964a279f7969615ffd2974b4dd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9f560f44_51208f9b","line":17,"updated":"2020-08-25 13:18:12.000000000","message":"please add also for better tracking all related reviews:\nImplements: blueprint tempest-scenario-manager-stable","commit_id":"65de221b8b9e2e37d809ec2363542f9883317fcd"}],"tempest/scenario/manager.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"89d3dea5228a72c0ebff59fca0160c19ac8bc791","unresolved":false,"context_lines":[{"line_number":526,"context_line":"                  img_properties)"},{"line_number":527,"context_line":"        if img_properties is None:"},{"line_number":528,"context_line":"            img_properties \u003d {}"},{"line_number":529,"context_line":"        name \u003d \u0027scenario-img\u0027"},{"line_number":530,"context_line":"        params \u003d {"},{"line_number":531,"context_line":"            \u0027name\u0027: name,"},{"line_number":532,"context_line":"            \u0027container_format\u0027: img_container_format,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_3bb97a78","line":529,"range":{"start_line":529,"start_character":15,"end_line":529,"end_character":29},"updated":"2020-08-25 12:14:39.000000000","message":"before the name was randomized -\u003e \"data_utils.rand_name(\u0027%s-\u0027 % name)\" and now it\u0027s set just to \u0027scenario-img\u0027 .. is that intentional change?","commit_id":"65de221b8b9e2e37d809ec2363542f9883317fcd"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"89d3dea5228a72c0ebff59fca0160c19ac8bc791","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        params \u003d {"},{"line_number":531,"context_line":"            \u0027name\u0027: name,"},{"line_number":532,"context_line":"            \u0027container_format\u0027: img_container_format,"},{"line_number":533,"context_line":"            \u0027disk_format\u0027: img_disk_format,"},{"line_number":534,"context_line":"        }"},{"line_number":535,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":536,"context_line":"            params[\u0027is_public\u0027] \u003d \u0027False\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_db7e7ead","line":533,"range":{"start_line":533,"start_character":27,"end_line":533,"end_character":42},"updated":"2020-08-25 12:14:39.000000000","message":"before disk_format was assigned the following value:\ndisk_format or fmt\nto preserve the same logic in this context it should be like:\nimg_disk_format or img_container_format\n\nunless i\u0027m missing something and we wanna change the logic","commit_id":"65de221b8b9e2e37d809ec2363542f9883317fcd"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"89d3dea5228a72c0ebff59fca0160c19ac8bc791","unresolved":false,"context_lines":[{"line_number":551,"context_line":"                self.image_client.update_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":552,"context_line":"            else:"},{"line_number":553,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":554,"context_line":"        return image[\u0027id\u0027]"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    def _log_console_output(self, servers\u003dNone, client\u003dNone):"},{"line_number":557,"context_line":"        if not CONF.compute_feature_enabled.console_output:"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_db2cbead","line":554,"range":{"start_line":554,"start_character":8,"end_line":554,"end_character":26},"updated":"2020-08-25 12:14:39.000000000","message":"previously we logged the return value of _image_create for debugging purposes, probably we should keep that LOG.debug call and log image out before return","commit_id":"65de221b8b9e2e37d809ec2363542f9883317fcd"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"2615b06fb76d5b9ce1a5c831516769617c57bf85","unresolved":false,"context_lines":[{"line_number":526,"context_line":"                  img_properties)"},{"line_number":527,"context_line":"        if img_properties is None:"},{"line_number":528,"context_line":"            img_properties \u003d {}"},{"line_number":529,"context_line":"        name \u003d \u0027scenario-img\u0027"},{"line_number":530,"context_line":"        name \u003d data_utils.rand_name(\u0027%s-\u0027 % name)"},{"line_number":531,"context_line":"        params \u003d {"},{"line_number":532,"context_line":"            \u0027name\u0027: name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_14142e43","line":529,"range":{"start_line":529,"start_character":8,"end_line":529,"end_character":29},"updated":"2020-08-26 13:49:50.000000000","message":"just an idea, because it looks a little weird when it\u0027s hardcoded like this, what if we put this as an optional method parameter?\n\ndef image_create(self, name\u003d\u0027scenario-img\u0027)","commit_id":"c5e355fbaa7728d75cd846e95d7d307c541f2161"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"2615b06fb76d5b9ce1a5c831516769617c57bf85","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                self.image_client.update_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":553,"context_line":"            else:"},{"line_number":554,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":555,"context_line":"        image \u003d image[\u0027id\u0027]"},{"line_number":556,"context_line":"        LOG.debug(\"image:%s\", image)"},{"line_number":557,"context_line":"        return image"},{"line_number":558,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_146b8eb6","line":555,"range":{"start_line":555,"start_character":0,"end_line":555,"end_character":27},"updated":"2020-08-26 13:49:50.000000000","message":"this looks a little weird too, what if we omit this and would use just image[\u0027id\u0027]?\nLOG.debug(\"image:%s\", image[\u0027id\u0027]\nreturn image[\u0027id\u0027]","commit_id":"c5e355fbaa7728d75cd846e95d7d307c541f2161"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"fc2da06776e02213b4e2ee1dd6c72e7c4311a3e4","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            else:"},{"line_number":553,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":554,"context_line":"        LOG.debug(\"image:%s\", image[\u0027id\u0027])"},{"line_number":555,"context_line":"        return image"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _log_console_output(self, servers\u003dNone, client\u003dNone):"},{"line_number":558,"context_line":"        if not CONF.compute_feature_enabled.console_output:"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_9707841e","line":555,"range":{"start_line":555,"start_character":15,"end_line":555,"end_character":20},"updated":"2020-08-27 21:52:20.000000000","message":"image[\u0027id\u0027]","commit_id":"9cc6c7f734376ecf51f30c43562b22b14554fc29"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"111be0ce7283c872f3beab506192629add3f9155","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            else:"},{"line_number":553,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":554,"context_line":"        LOG.debug(\"image:%s\", image[\u0027id\u0027])"},{"line_number":555,"context_line":"        return image"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _log_console_output(self, servers\u003dNone, client\u003dNone):"},{"line_number":558,"context_line":"        if not CONF.compute_feature_enabled.console_output:"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_5a8511cf","line":555,"range":{"start_line":555,"start_character":15,"end_line":555,"end_character":20},"in_reply_to":"9f560f44_9707841e","updated":"2020-08-27 23:01:47.000000000","message":"nice catch","commit_id":"9cc6c7f734376ecf51f30c43562b22b14554fc29"}],"tempest/scenario/test_minimum_basic.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6d890794f5971a2470c19c7fddf080219d3fde93","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        }"},{"line_number":140,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":141,"context_line":"            params[\u0027is_public\u0027] \u003d \u0027False\u0027"},{"line_number":142,"context_line":"            params[\u0027properties\u0027] \u003d img_properties"},{"line_number":143,"context_line":"            params \u003d {\u0027headers\u0027: common_image.image_meta_to_headers(**params)}"},{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            params[\u0027visibility\u0027] \u003d \u0027private\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_9ec7eb12","line":142,"range":{"start_line":142,"start_character":12,"end_line":142,"end_character":49},"updated":"2020-08-24 08:54:50.000000000","message":"you can also add if condition here as well","commit_id":"ec2341b9f79612eb2be6545b2f0ecbb2d78e3fd0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6d890794f5971a2470c19c7fddf080219d3fde93","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            params[\u0027visibility\u0027] \u003d \u0027private\u0027"},{"line_number":146,"context_line":"            # Additional properties are flattened out in the v2 API."},{"line_number":147,"context_line":"            params.update(img_properties)"},{"line_number":148,"context_line":"        body \u003d self.image_client.create_image(**params)"},{"line_number":149,"context_line":"        image \u003d body[\u0027image\u0027] if \u0027image\u0027 in body else body"},{"line_number":150,"context_line":"        self.addCleanup(self.image_client.delete_image, image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_3e497fb6","line":147,"range":{"start_line":147,"start_character":12,"end_line":147,"end_character":41},"updated":"2020-08-24 08:54:50.000000000","message":"change this to;\n\nif img_properties:\n     params.update(img_properties)","commit_id":"ec2341b9f79612eb2be6545b2f0ecbb2d78e3fd0"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"85699eaa8c1fa122e4d36ded52ab1d329183aa0e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                        address[\u0027addr\u0027] \u003d\u003d floating_ip[\u0027ip\u0027]):"},{"line_number":110,"context_line":"                    return address"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def image_create(self):"},{"line_number":113,"context_line":"        img_path \u003d CONF.scenario.img_file"},{"line_number":114,"context_line":"        if not os.path.exists(img_path):"},{"line_number":115,"context_line":"            # TODO(kopecmartin): replace LOG.warning for rasing"},{"line_number":116,"context_line":"            # InvalidConfiguration exception after tempest 25.0.0 is"},{"line_number":117,"context_line":"            # released - there will be one release which accepts both"},{"line_number":118,"context_line":"            # behaviors in order to avoid many failures across CIs and etc."},{"line_number":119,"context_line":"            LOG.warning("},{"line_number":120,"context_line":"                \u0027Starting Tempest 25.0.0 release, CONF.scenario.img_file need \u0027"},{"line_number":121,"context_line":"                \u0027a full path for the image. CONF.scenario.img_dir was \u0027"},{"line_number":122,"context_line":"                \u0027deprecated and will be removed in the next release. Till \u0027"},{"line_number":123,"context_line":"                \u0027Tempest 25.0.0, old behavior is maintained and keep working \u0027"},{"line_number":124,"context_line":"                \u0027but starting Tempest 26.0.0, you need to specify the full \u0027"},{"line_number":125,"context_line":"                \u0027path in CONF.scenario.img_file config option.\u0027)"},{"line_number":126,"context_line":"            img_path \u003d os.path.join(CONF.scenario.img_dir, img_path)"},{"line_number":127,"context_line":"        img_container_format \u003d CONF.scenario.img_container_format"},{"line_number":128,"context_line":"        img_disk_format \u003d CONF.scenario.img_disk_format"},{"line_number":129,"context_line":"        img_properties \u003d CONF.scenario.img_properties"},{"line_number":130,"context_line":"        LOG.debug(\"paths: img: %s, container_format: %s, disk_format: %s, \""},{"line_number":131,"context_line":"                  \"properties: %s\","},{"line_number":132,"context_line":"                  img_path, img_container_format, img_disk_format,"},{"line_number":133,"context_line":"                  img_properties)"},{"line_number":134,"context_line":"        if img_properties is None:"},{"line_number":135,"context_line":"            img_properties \u003d {}"},{"line_number":136,"context_line":"        name \u003d \u0027scenario-img\u0027"},{"line_number":137,"context_line":"        params \u003d {"},{"line_number":138,"context_line":"            \u0027name\u0027: name,"},{"line_number":139,"context_line":"            \u0027container_format\u0027: img_container_format,"},{"line_number":140,"context_line":"            \u0027disk_format\u0027: img_disk_format,"},{"line_number":141,"context_line":"        }"},{"line_number":142,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":143,"context_line":"            params[\u0027is_public\u0027] \u003d \u0027False\u0027"},{"line_number":144,"context_line":"            if img_properties:"},{"line_number":145,"context_line":"                params[\u0027properties\u0027] \u003d img_properties"},{"line_number":146,"context_line":"            params \u003d {\u0027headers\u0027: common_image.image_meta_to_headers(**params)}"},{"line_number":147,"context_line":"        else:"},{"line_number":148,"context_line":"            params[\u0027visibility\u0027] \u003d \u0027private\u0027"},{"line_number":149,"context_line":"            # Additional properties are flattened out in the v2 API."},{"line_number":150,"context_line":"            if img_properties:"},{"line_number":151,"context_line":"                params.update(img_properties)"},{"line_number":152,"context_line":"        body \u003d self.image_client.create_image(**params)"},{"line_number":153,"context_line":"        image \u003d body[\u0027image\u0027] if \u0027image\u0027 in body else body"},{"line_number":154,"context_line":"        self.addCleanup(self.image_client.delete_image, image[\u0027id\u0027])"},{"line_number":155,"context_line":"        self.assertEqual(\"queued\", image[\u0027status\u0027])"},{"line_number":156,"context_line":"        with open(img_path, \u0027rb\u0027) as image_file:"},{"line_number":157,"context_line":"            if CONF.image_feature_enabled.api_v1:"},{"line_number":158,"context_line":"                self.image_client.update_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":159,"context_line":"            else:"},{"line_number":160,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":161,"context_line":"        return image[\u0027id\u0027]"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @decorators.idempotent_id(\u0027bdbb5441-9204-419d-a225-b4fdbfb1a1a8\u0027)"},{"line_number":164,"context_line":"    @utils.services(\u0027compute\u0027, \u0027volume\u0027, \u0027image\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_4f8595ac","line":161,"range":{"start_line":112,"start_character":0,"end_line":161,"end_character":26},"updated":"2020-08-24 20:36:54.000000000","message":"I don\u0027t understand why you moved the code of _image_create and glance_image_create from tempest/scenario/manager.py to this file.\n\nThis file which is in fact a scenario test is just a consumer of the image_create method (which consists of _image_create and glance_image_create methods) - image_create doesn\u0027t have to be implemented here, it should stay in the manager.py as that\u0027s the file where _image_create and glance_image_create were implemented in the first place.","commit_id":"dedeb20960b448bc6e9a9ba318b79f5e7cedec35"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"157f20bfbef067e7ab5174f15144e76a44d1c356","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                        address[\u0027addr\u0027] \u003d\u003d floating_ip[\u0027ip\u0027]):"},{"line_number":110,"context_line":"                    return address"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def image_create(self):"},{"line_number":113,"context_line":"        img_path \u003d CONF.scenario.img_file"},{"line_number":114,"context_line":"        if not os.path.exists(img_path):"},{"line_number":115,"context_line":"            # TODO(kopecmartin): replace LOG.warning for rasing"},{"line_number":116,"context_line":"            # InvalidConfiguration exception after tempest 25.0.0 is"},{"line_number":117,"context_line":"            # released - there will be one release which accepts both"},{"line_number":118,"context_line":"            # behaviors in order to avoid many failures across CIs and etc."},{"line_number":119,"context_line":"            LOG.warning("},{"line_number":120,"context_line":"                \u0027Starting Tempest 25.0.0 release, CONF.scenario.img_file need \u0027"},{"line_number":121,"context_line":"                \u0027a full path for the image. CONF.scenario.img_dir was \u0027"},{"line_number":122,"context_line":"                \u0027deprecated and will be removed in the next release. Till \u0027"},{"line_number":123,"context_line":"                \u0027Tempest 25.0.0, old behavior is maintained and keep working \u0027"},{"line_number":124,"context_line":"                \u0027but starting Tempest 26.0.0, you need to specify the full \u0027"},{"line_number":125,"context_line":"                \u0027path in CONF.scenario.img_file config option.\u0027)"},{"line_number":126,"context_line":"            img_path \u003d os.path.join(CONF.scenario.img_dir, img_path)"},{"line_number":127,"context_line":"        img_container_format \u003d CONF.scenario.img_container_format"},{"line_number":128,"context_line":"        img_disk_format \u003d CONF.scenario.img_disk_format"},{"line_number":129,"context_line":"        img_properties \u003d CONF.scenario.img_properties"},{"line_number":130,"context_line":"        LOG.debug(\"paths: img: %s, container_format: %s, disk_format: %s, \""},{"line_number":131,"context_line":"                  \"properties: %s\","},{"line_number":132,"context_line":"                  img_path, img_container_format, img_disk_format,"},{"line_number":133,"context_line":"                  img_properties)"},{"line_number":134,"context_line":"        if img_properties is None:"},{"line_number":135,"context_line":"            img_properties \u003d {}"},{"line_number":136,"context_line":"        name \u003d \u0027scenario-img\u0027"},{"line_number":137,"context_line":"        params \u003d {"},{"line_number":138,"context_line":"            \u0027name\u0027: name,"},{"line_number":139,"context_line":"            \u0027container_format\u0027: img_container_format,"},{"line_number":140,"context_line":"            \u0027disk_format\u0027: img_disk_format,"},{"line_number":141,"context_line":"        }"},{"line_number":142,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":143,"context_line":"            params[\u0027is_public\u0027] \u003d \u0027False\u0027"},{"line_number":144,"context_line":"            if img_properties:"},{"line_number":145,"context_line":"                params[\u0027properties\u0027] \u003d img_properties"},{"line_number":146,"context_line":"            params \u003d {\u0027headers\u0027: common_image.image_meta_to_headers(**params)}"},{"line_number":147,"context_line":"        else:"},{"line_number":148,"context_line":"            params[\u0027visibility\u0027] \u003d \u0027private\u0027"},{"line_number":149,"context_line":"            # Additional properties are flattened out in the v2 API."},{"line_number":150,"context_line":"            if img_properties:"},{"line_number":151,"context_line":"                params.update(img_properties)"},{"line_number":152,"context_line":"        body \u003d self.image_client.create_image(**params)"},{"line_number":153,"context_line":"        image \u003d body[\u0027image\u0027] if \u0027image\u0027 in body else body"},{"line_number":154,"context_line":"        self.addCleanup(self.image_client.delete_image, image[\u0027id\u0027])"},{"line_number":155,"context_line":"        self.assertEqual(\"queued\", image[\u0027status\u0027])"},{"line_number":156,"context_line":"        with open(img_path, \u0027rb\u0027) as image_file:"},{"line_number":157,"context_line":"            if CONF.image_feature_enabled.api_v1:"},{"line_number":158,"context_line":"                self.image_client.update_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":159,"context_line":"            else:"},{"line_number":160,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":161,"context_line":"        return image[\u0027id\u0027]"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @decorators.idempotent_id(\u0027bdbb5441-9204-419d-a225-b4fdbfb1a1a8\u0027)"},{"line_number":164,"context_line":"    @utils.services(\u0027compute\u0027, \u0027volume\u0027, \u0027image\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_9e4d193d","line":161,"range":{"start_line":112,"start_character":0,"end_line":161,"end_character":26},"in_reply_to":"9f560f44_4f8595ac","updated":"2020-08-25 06:58:28.000000000","message":"I have moved the code to this file because I didn\u0027t wanted this patch to be dependent on scenario_manager patch, but yeah I agree with the fact that this file is just a scenario test and therefore doesn\u0027t require the implementation of image_create here.","commit_id":"dedeb20960b448bc6e9a9ba318b79f5e7cedec35"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1930633815bf678a427c3faf65b8f02bd1b02741","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                        address[\u0027addr\u0027] \u003d\u003d floating_ip[\u0027ip\u0027]):"},{"line_number":110,"context_line":"                    return address"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def image_create(self):"},{"line_number":113,"context_line":"        img_path \u003d CONF.scenario.img_file"},{"line_number":114,"context_line":"        if not os.path.exists(img_path):"},{"line_number":115,"context_line":"            # TODO(kopecmartin): replace LOG.warning for rasing"},{"line_number":116,"context_line":"            # InvalidConfiguration exception after tempest 25.0.0 is"},{"line_number":117,"context_line":"            # released - there will be one release which accepts both"},{"line_number":118,"context_line":"            # behaviors in order to avoid many failures across CIs and etc."},{"line_number":119,"context_line":"            LOG.warning("},{"line_number":120,"context_line":"                \u0027Starting Tempest 25.0.0 release, CONF.scenario.img_file need \u0027"},{"line_number":121,"context_line":"                \u0027a full path for the image. CONF.scenario.img_dir was \u0027"},{"line_number":122,"context_line":"                \u0027deprecated and will be removed in the next release. Till \u0027"},{"line_number":123,"context_line":"                \u0027Tempest 25.0.0, old behavior is maintained and keep working \u0027"},{"line_number":124,"context_line":"                \u0027but starting Tempest 26.0.0, you need to specify the full \u0027"},{"line_number":125,"context_line":"                \u0027path in CONF.scenario.img_file config option.\u0027)"},{"line_number":126,"context_line":"            img_path \u003d os.path.join(CONF.scenario.img_dir, img_path)"},{"line_number":127,"context_line":"        img_container_format \u003d CONF.scenario.img_container_format"},{"line_number":128,"context_line":"        img_disk_format \u003d CONF.scenario.img_disk_format"},{"line_number":129,"context_line":"        img_properties \u003d CONF.scenario.img_properties"},{"line_number":130,"context_line":"        LOG.debug(\"paths: img: %s, container_format: %s, disk_format: %s, \""},{"line_number":131,"context_line":"                  \"properties: %s\","},{"line_number":132,"context_line":"                  img_path, img_container_format, img_disk_format,"},{"line_number":133,"context_line":"                  img_properties)"},{"line_number":134,"context_line":"        if img_properties is None:"},{"line_number":135,"context_line":"            img_properties \u003d {}"},{"line_number":136,"context_line":"        name \u003d \u0027scenario-img\u0027"},{"line_number":137,"context_line":"        params \u003d {"},{"line_number":138,"context_line":"            \u0027name\u0027: name,"},{"line_number":139,"context_line":"            \u0027container_format\u0027: img_container_format,"},{"line_number":140,"context_line":"            \u0027disk_format\u0027: img_disk_format,"},{"line_number":141,"context_line":"        }"},{"line_number":142,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":143,"context_line":"            params[\u0027is_public\u0027] \u003d \u0027False\u0027"},{"line_number":144,"context_line":"            if img_properties:"},{"line_number":145,"context_line":"                params[\u0027properties\u0027] \u003d img_properties"},{"line_number":146,"context_line":"            params \u003d {\u0027headers\u0027: common_image.image_meta_to_headers(**params)}"},{"line_number":147,"context_line":"        else:"},{"line_number":148,"context_line":"            params[\u0027visibility\u0027] \u003d \u0027private\u0027"},{"line_number":149,"context_line":"            # Additional properties are flattened out in the v2 API."},{"line_number":150,"context_line":"            if img_properties:"},{"line_number":151,"context_line":"                params.update(img_properties)"},{"line_number":152,"context_line":"        body \u003d self.image_client.create_image(**params)"},{"line_number":153,"context_line":"        image \u003d body[\u0027image\u0027] if \u0027image\u0027 in body else body"},{"line_number":154,"context_line":"        self.addCleanup(self.image_client.delete_image, image[\u0027id\u0027])"},{"line_number":155,"context_line":"        self.assertEqual(\"queued\", image[\u0027status\u0027])"},{"line_number":156,"context_line":"        with open(img_path, \u0027rb\u0027) as image_file:"},{"line_number":157,"context_line":"            if CONF.image_feature_enabled.api_v1:"},{"line_number":158,"context_line":"                self.image_client.update_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":159,"context_line":"            else:"},{"line_number":160,"context_line":"                self.image_client.store_image_file(image[\u0027id\u0027], image_file)"},{"line_number":161,"context_line":"        return image[\u0027id\u0027]"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @decorators.idempotent_id(\u0027bdbb5441-9204-419d-a225-b4fdbfb1a1a8\u0027)"},{"line_number":164,"context_line":"    @utils.services(\u0027compute\u0027, \u0027volume\u0027, \u0027image\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_de7dd1e7","line":161,"range":{"start_line":112,"start_character":0,"end_line":161,"end_character":26},"in_reply_to":"9f560f44_9e4d193d","updated":"2020-08-25 07:32:54.000000000","message":"This patch and the other one (scenario manager one) are not dependent in a sense that one patch would need the changes of the other one in order to work. So you don\u0027t have to make them dependent if you don\u0027t want to.\n\nHowever, as the 2 reviews edits the same file, it\u0027s likely that if one of the reviews merges the other will throw a merge conflict error and a rebase will be needed (that happens only in cases when gerrit can\u0027t do that rebase itself and has troubles understanding the order of the changes).\n\nIn order to avoid the mentioned conflict error you can (don\u0027t have to) make one of the patches dependent on the other one, here\u0027s a doc regarding dependent reviews: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#adding-a-dependency\n\nAdding one patch as dependent on the other one in order to avoid merge conflicts has it\u0027s pros and cons, so it\u0027s entirely on the owner of the patches ..","commit_id":"dedeb20960b448bc6e9a9ba318b79f5e7cedec35"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"aeddf479f29dbcb5f009f19df2da962fd262097d","unresolved":false,"context_lines":[{"line_number":232,"context_line":"            if not test_utils.call_until_true("},{"line_number":233,"context_line":"                is_floating_ip_detached_from_server,"},{"line_number":234,"context_line":"                CONF.compute.build_timeout,"},{"line_number":235,"context_line":"               CONF.compute.build_interval):"},{"line_number":236,"context_line":"                msg \u003d (\"Floating IP \u0027%s\u0027 should not be in server addresses: %s\""},{"line_number":237,"context_line":"                       % (floating_ip[\u0027ip\u0027], server[\u0027addresses\u0027]))"},{"line_number":238,"context_line":"                raise exceptions.TimeoutException(msg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_f2557351","line":235,"updated":"2020-08-24 16:36:39.000000000","message":"Unreleated change, revert this back,\nAlso not sure why pep8 didn\u0027t caught this indentation error :/","commit_id":"dedeb20960b448bc6e9a9ba318b79f5e7cedec35"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"157f20bfbef067e7ab5174f15144e76a44d1c356","unresolved":false,"context_lines":[{"line_number":232,"context_line":"            if not test_utils.call_until_true("},{"line_number":233,"context_line":"                is_floating_ip_detached_from_server,"},{"line_number":234,"context_line":"                CONF.compute.build_timeout,"},{"line_number":235,"context_line":"               CONF.compute.build_interval):"},{"line_number":236,"context_line":"                msg \u003d (\"Floating IP \u0027%s\u0027 should not be in server addresses: %s\""},{"line_number":237,"context_line":"                       % (floating_ip[\u0027ip\u0027], server[\u0027addresses\u0027]))"},{"line_number":238,"context_line":"                raise exceptions.TimeoutException(msg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_0397f6ed","line":235,"in_reply_to":"9f560f44_f2557351","updated":"2020-08-25 06:58:28.000000000","message":"pep8 didn\u0027t caught this indentation error because pep8 itself prompted this error, hence I fixed it. I don\u0027t know why pep8 is okay with other all and not with L#235","commit_id":"dedeb20960b448bc6e9a9ba318b79f5e7cedec35"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"89d3dea5228a72c0ebff59fca0160c19ac8bc791","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            if not test_utils.call_until_true("},{"line_number":179,"context_line":"                is_floating_ip_detached_from_server,"},{"line_number":180,"context_line":"                CONF.compute.build_timeout,"},{"line_number":181,"context_line":"               CONF.compute.build_interval):"},{"line_number":182,"context_line":"                msg \u003d (\"Floating IP \u0027%s\u0027 should not be in server addresses: %s\""},{"line_number":183,"context_line":"                       % (floating_ip[\u0027ip\u0027], server[\u0027addresses\u0027]))"},{"line_number":184,"context_line":"                raise exceptions.TimeoutException(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_bb274ac7","line":181,"updated":"2020-08-25 12:14:39.000000000","message":"again the unintentional change","commit_id":"65de221b8b9e2e37d809ec2363542f9883317fcd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"111be0ce7283c872f3beab506192629add3f9155","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from tempest.scenario import manager"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONF \u003d config.CONF"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestMinimumBasicScenario(manager.ScenarioTest):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_9a668955","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":29},"updated":"2020-08-27 23:01:47.000000000","message":"we do not use this in this file","commit_id":"9cc6c7f734376ecf51f30c43562b22b14554fc29"}]}
