)]}'
{"glance_store/_drivers/filesystem.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"33fcd0623cf2aaa8e7443ec96e8ac62a03787469","unresolved":false,"context_lines":[{"line_number":153,"context_line":"               default\u003d64 * units.Ki,"},{"line_number":154,"context_line":"               min\u003d1,"},{"line_number":155,"context_line":"               help\u003d\"\"\""},{"line_number":156,"context_line":"Chunk size, in bytes."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"The chunk size used when reading or writing image files."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_05d18e57","line":156,"range":{"start_line":156,"start_character":20,"end_line":156,"end_character":21},"updated":"2018-09-17 18:08:15.000000000","message":"The other stores use MiB as a default. Shouldn\u0027t we be consistent across all stores?","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"fc21b4c07cd2b3a5f7e186e869613fd4a58d3e9b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"               default\u003d64 * units.Ki,"},{"line_number":154,"context_line":"               min\u003d1,"},{"line_number":155,"context_line":"               help\u003d\"\"\""},{"line_number":156,"context_line":"Chunk size, in bytes."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"The chunk size used when reading or writing image files."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_68992fce","line":156,"range":{"start_line":156,"start_character":20,"end_line":156,"end_character":21},"in_reply_to":"3f79a3b5_05d18e57","updated":"2018-09-18 06:53:29.000000000","message":"I was thinking about that as well, but I didn\u0027t want to change the default value. If we still want to allow \u003c1MB chunk sizes, we\u0027ll have to use a float opt. Let me know what you think.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"33fcd0623cf2aaa8e7443ec96e8ac62a03787469","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        fdir \u003d store_conf.filesystem_store_datadir"},{"line_number":399,"context_line":"        fdirs \u003d store_conf.filesystem_store_datadirs"},{"line_number":400,"context_line":"        fstore_perm \u003d store_conf.filesystem_store_file_perm"},{"line_number":401,"context_line":"        meta_file \u003d store_conf.filesystem_store_metadata_file"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        self.chunk_size \u003d store_conf.filesystem_store_chunk_size"},{"line_number":404,"context_line":"        self.READ_CHUNKSIZE \u003d self.chunk_size"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_65b72223","line":401,"range":{"start_line":401,"start_character":8,"end_line":401,"end_character":17},"updated":"2018-09-17 18:08:15.000000000","message":"These should be in both the \"if\" and the \"else\", you seem to have lost a few lines here.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"fc21b4c07cd2b3a5f7e186e869613fd4a58d3e9b","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        fdir \u003d store_conf.filesystem_store_datadir"},{"line_number":399,"context_line":"        fdirs \u003d store_conf.filesystem_store_datadirs"},{"line_number":400,"context_line":"        fstore_perm \u003d store_conf.filesystem_store_file_perm"},{"line_number":401,"context_line":"        meta_file \u003d store_conf.filesystem_store_metadata_file"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        self.chunk_size \u003d store_conf.filesystem_store_chunk_size"},{"line_number":404,"context_line":"        self.READ_CHUNKSIZE \u003d self.chunk_size"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_68e7ef47","line":401,"range":{"start_line":401,"start_character":8,"end_line":401,"end_character":17},"in_reply_to":"3f79a3b5_65b72223","updated":"2018-09-18 06:53:29.000000000","message":"Not necessarily, I\u0027m simplifying this a bit, preserving the logic. Basically, we\u0027re fetching the same fields, but choosing the group in that \"if\" check.\n\n\"store_conf\" will point to the backend group, if set, otherwise to the default \"glance_store\" group. This way, we avoid some duplicated code.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"492142cffdb4cbf39c50d7839b90b1c940338bed","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"The chunk size used when reading or writing image files."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"\"\"\")]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"MULTI_FILESYSTEM_METADATA_SCHEMA \u003d {"},{"line_number":163,"context_line":"    \"type\": \"array\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_d882bda5","line":160,"updated":"2019-02-22 17:27:25.000000000","message":"Please keep the help text consistent with the other options.  We need a brief description of the implications of modifying this option, plus the \"Possible Values\" and \"Related Options\".\n\nI think the reason the default size is small is to prevent thread starvation if the glance node is handling a large number of read/write requests, so that may be one reason not to set this this value too high.","commit_id":"cefa6bfcc3b34cee6770d15c82235394aaa625bc"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"3cb19507e567c4f9ae3fa073a3441c338ce29958","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"The chunk size used when reading or writing image files."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"\"\"\")]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"MULTI_FILESYSTEM_METADATA_SCHEMA \u003d {"},{"line_number":163,"context_line":"    \"type\": \"array\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_e8a0f7a7","line":160,"in_reply_to":"9fdfeff1_d882bda5","updated":"2019-02-25 12:47:41.000000000","message":"Done","commit_id":"cefa6bfcc3b34cee6770d15c82235394aaa625bc"}],"glance_store/tests/unit/test_filesystem_store.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"33fcd0623cf2aaa8e7443ec96e8ac62a03787469","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        verifier \u003d mock.MagicMock(name\u003d\u0027mock_verifier\u0027)"},{"line_number":182,"context_line":"        self.store.chunk_size \u003d units.Ki"},{"line_number":183,"context_line":"        self.store.READ_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":184,"context_line":"        self.store.WRITE_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        image_id \u003d str(uuid.uuid4())"},{"line_number":187,"context_line":"        file_size \u003d units.Ki  # 1K"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e559f2fc","line":184,"range":{"start_line":184,"start_character":37,"end_line":184,"end_character":41},"updated":"2018-09-17 18:08:15.000000000","message":"I think we should have these in setUp.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"fc21b4c07cd2b3a5f7e186e869613fd4a58d3e9b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        verifier \u003d mock.MagicMock(name\u003d\u0027mock_verifier\u0027)"},{"line_number":182,"context_line":"        self.store.chunk_size \u003d units.Ki"},{"line_number":183,"context_line":"        self.store.READ_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":184,"context_line":"        self.store.WRITE_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        image_id \u003d str(uuid.uuid4())"},{"line_number":187,"context_line":"        file_size \u003d units.Ki  # 1K"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_08d8bb7c","line":184,"range":{"start_line":184,"start_character":37,"end_line":184,"end_character":41},"in_reply_to":"3f79a3b5_e559f2fc","updated":"2018-09-18 06:53:29.000000000","message":"We do, but in setUp we\u0027re setting the chunk size to 10, while those tests require a 1kb chunk size.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"492142cffdb4cbf39c50d7839b90b1c940338bed","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def test_add_with_verifier(self):"},{"line_number":180,"context_line":"        \"\"\"Test that \u0027verifier.update\u0027 is called when verifier is provided.\"\"\""},{"line_number":181,"context_line":"        verifier \u003d mock.MagicMock(name\u003d\u0027mock_verifier\u0027)"},{"line_number":182,"context_line":"        self.store.chunk_size \u003d units.Ki"},{"line_number":183,"context_line":"        self.store.READ_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":184,"context_line":"        self.store.WRITE_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        image_id \u003d str(uuid.uuid4())"},{"line_number":187,"context_line":"        file_size \u003d units.Ki  # 1K"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_b8f7b9d4","line":184,"range":{"start_line":182,"start_character":0,"end_line":184,"end_character":58},"updated":"2019-02-22 17:27:25.000000000","message":"Since your change has the store reading this value out of the config, I don\u0027t like that this test sets the data members explicitly.  I suggest using the pattern\n\n  self.config(filesystem_store_chunk_size\u003dunits.Ki,\n              group\u003d\u0027glance_store\u0027)\n\ninstead of lines 182-184.  That being said, since the default chunk size is \u003e 1Ki, this test doesn\u0027t actually show where the chunk size is coming from (I think the reason it was set here is to guarantee that the full content will be handed to the mock verifier the first time through).","commit_id":"cefa6bfcc3b34cee6770d15c82235394aaa625bc"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"3cb19507e567c4f9ae3fa073a3441c338ce29958","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def test_add_with_verifier(self):"},{"line_number":180,"context_line":"        \"\"\"Test that \u0027verifier.update\u0027 is called when verifier is provided.\"\"\""},{"line_number":181,"context_line":"        verifier \u003d mock.MagicMock(name\u003d\u0027mock_verifier\u0027)"},{"line_number":182,"context_line":"        self.store.chunk_size \u003d units.Ki"},{"line_number":183,"context_line":"        self.store.READ_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":184,"context_line":"        self.store.WRITE_CHUNKSIZE \u003d self.store.chunk_size"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        image_id \u003d str(uuid.uuid4())"},{"line_number":187,"context_line":"        file_size \u003d units.Ki  # 1K"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_a8e2efd2","line":184,"range":{"start_line":182,"start_character":0,"end_line":184,"end_character":58},"in_reply_to":"9fdfeff1_b8f7b9d4","updated":"2019-02-25 12:47:41.000000000","message":"Done","commit_id":"cefa6bfcc3b34cee6770d15c82235394aaa625bc"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"492142cffdb4cbf39c50d7839b90b1c940338bed","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            # Make sure the image didn\u0027t get deleted"},{"line_number":381,"context_line":"            self.store.get(loc)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def test_configure_add_with_multi_datadirs(self):"},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        Tests multiple filesystem specified by filesystem_store_datadirs"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f881c1c4","line":382,"updated":"2019-02-22 17:27:25.000000000","message":"I think you should add a test somewhere in this configure_add section to make sure the READ, WRITE chunksizes are being read from the the config.  This will protect your change from regressions.","commit_id":"cefa6bfcc3b34cee6770d15c82235394aaa625bc"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"3cb19507e567c4f9ae3fa073a3441c338ce29958","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            # Make sure the image didn\u0027t get deleted"},{"line_number":381,"context_line":"            self.store.get(loc)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def test_configure_add_with_multi_datadirs(self):"},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        Tests multiple filesystem specified by filesystem_store_datadirs"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_e81317b7","line":382,"in_reply_to":"9fdfeff1_f881c1c4","updated":"2019-02-25 12:47:41.000000000","message":"Done","commit_id":"cefa6bfcc3b34cee6770d15c82235394aaa625bc"}],"glance_store/tests/unit/test_multistore_filesystem.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"33fcd0623cf2aaa8e7443ec96e8ac62a03787469","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.config(enabled_backends\u003denabled_backends)"},{"line_number":61,"context_line":"        store.register_store_opts(self.conf)"},{"line_number":62,"context_line":"        self.config(default_backend\u003d\u0027file1\u0027,"},{"line_number":63,"context_line":"                    group\u003d\u0027glance_store\u0027)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # Ensure stores + locations cleared"},{"line_number":66,"context_line":"        location.SCHEME_TO_CLS_BACKEND_MAP \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_a56f7a90","line":63,"range":{"start_line":63,"start_character":39,"end_line":63,"end_character":41},"updated":"2018-09-17 18:08:15.000000000","message":"This is not related to this patch, please revert this part.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"fc21b4c07cd2b3a5f7e186e869613fd4a58d3e9b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.config(enabled_backends\u003denabled_backends)"},{"line_number":61,"context_line":"        store.register_store_opts(self.conf)"},{"line_number":62,"context_line":"        self.config(default_backend\u003d\u0027file1\u0027,"},{"line_number":63,"context_line":"                    group\u003d\u0027glance_store\u0027)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # Ensure stores + locations cleared"},{"line_number":66,"context_line":"        location.SCHEME_TO_CLS_BACKEND_MAP \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_a8e0a728","line":63,"range":{"start_line":63,"start_character":39,"end_line":63,"end_character":41},"in_reply_to":"3f79a3b5_a56f7a90","updated":"2018-09-18 06:53:29.000000000","message":"My bad, will do.","commit_id":"a8740040bfa3db26e1ca3b8f332a51b781253967"}]}
