)]}'
{"nova/tests/unit/virt/vmwareapi/test_vmops.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7574bc0712452caadd3c4201b98c9a8049a1b9fa","unresolved":false,"context_lines":[{"line_number":1960,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_cache_stream_optimized_image\u0027)"},{"line_number":1961,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_cache_flat_image\u0027)"},{"line_number":1962,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_delete_datastore_file\u0027)"},{"line_number":1963,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_update_image_size\u0027)"},{"line_number":1964,"context_line":"    def _test_fetch_image_if_missing(self,"},{"line_number":1965,"context_line":"                                     mock_update_image_size,"},{"line_number":1966,"context_line":"                                     mock_delete_datastore_file,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_8bef8086","line":1963,"updated":"2015-12-16 10:10:38.000000000","message":"I feel dirty just thinking about adding to this mess. However, cleaning up this code is out of scope, so...","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"78195bb7796db5bd0fb11416b44e1fb60b6bb13d","unresolved":false,"context_lines":[{"line_number":1960,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_cache_stream_optimized_image\u0027)"},{"line_number":1961,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_cache_flat_image\u0027)"},{"line_number":1962,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_delete_datastore_file\u0027)"},{"line_number":1963,"context_line":"    @mock.patch.object(vmops.VMwareVMOps, \u0027_update_image_size\u0027)"},{"line_number":1964,"context_line":"    def _test_fetch_image_if_missing(self,"},{"line_number":1965,"context_line":"                                     mock_update_image_size,"},{"line_number":1966,"context_line":"                                     mock_delete_datastore_file,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_ac7849f3","line":1963,"in_reply_to":"5a710552_8bef8086","updated":"2015-12-16 13:31:26.000000000","message":"Exactly my own thoughts... Would be better to have many small tests that only test a specific scenario/functionality.","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d4d669839987853970a934c7448c45b1f5587137","unresolved":false,"context_lines":[{"line_number":553,"context_line":"        elif disk_type \u003d\u003d constants.DISK_TYPE_STREAM_OPTIMIZED:"},{"line_number":554,"context_line":"            image_prepare \u003d self._prepare_stream_optimized_image"},{"line_number":555,"context_line":"            image_cache \u003d self._cache_stream_optimized_image"},{"line_number":556,"context_line":"            image_size_update \u003d self._update_image_size"},{"line_number":557,"context_line":"        elif disk_type in constants.SUPPORTED_FLAT_VARIANTS:"},{"line_number":558,"context_line":"            image_prepare \u003d self._prepare_flat_image"},{"line_number":559,"context_line":"            image_cache \u003d self._cache_flat_image"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_471e9864","line":556,"updated":"2015-12-17 13:51:17.000000000","message":"this is not going to work for vSAN datastores because there is no -flat file there","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f6920dca377f35455245c71ccda82bf766e3a667","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        else:"},{"line_number":561,"context_line":"            reason \u003d _(\"disk type \u0027%s\u0027 not supported\") % disk_type"},{"line_number":562,"context_line":"            raise exception.InvalidDiskInfo(reason\u003dreason)"},{"line_number":563,"context_line":"        return image_prepare, image_fetch, image_cache, image_size_update"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def _fetch_image_if_missing(self, context, vi):"},{"line_number":566,"context_line":"        LOG.debug(\"Processing image %s\", vi.ii.image_id, instance\u003dvi.instance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_4f2752b6","line":563,"updated":"2015-12-16 15:01:31.000000000","message":"this is becoming very upgly. can you please return a named collection if possible?","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"3e959589a9ae0eeea208f98a6132b7a342ec03f4","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        else:"},{"line_number":561,"context_line":"            reason \u003d _(\"disk type \u0027%s\u0027 not supported\") % disk_type"},{"line_number":562,"context_line":"            raise exception.InvalidDiskInfo(reason\u003dreason)"},{"line_number":563,"context_line":"        return image_prepare, image_fetch, image_cache, image_size_update"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def _fetch_image_if_missing(self, context, vi):"},{"line_number":566,"context_line":"        LOG.debug(\"Processing image %s\", vi.ii.image_id, instance\u003dvi.instance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_261eac5f","line":563,"in_reply_to":"5a710552_4f2752b6","updated":"2015-12-16 16:34:50.000000000","message":"This has always been ugly :) I agree a named tuple would be cleaner here, but I still think this version is good.","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f6920dca377f35455245c71ccda82bf766e3a667","unresolved":false,"context_lines":[{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        with lockutils.lock(str(vi.cache_image_path),"},{"line_number":569,"context_line":"                            lock_file_prefix\u003d\u0027nova-vmware-fetch_image\u0027):"},{"line_number":570,"context_line":"            image_prepare, image_fetch, image_cache, image_size_update \\"},{"line_number":571,"context_line":"                \u003d self._get_image_callbacks(vi)"},{"line_number":572,"context_line":"            self.check_cache_folder(vi.datastore.name, vi.datastore.ref)"},{"line_number":573,"context_line":"            ds_browser \u003d self._get_ds_browser(vi.datastore.ref)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_ef3ddebb","line":570,"updated":"2015-12-16 15:01:31.000000000","message":"why was this moved to the locking?","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"3e959589a9ae0eeea208f98a6132b7a342ec03f4","unresolved":false,"context_lines":[{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        with lockutils.lock(str(vi.cache_image_path),"},{"line_number":569,"context_line":"                            lock_file_prefix\u003d\u0027nova-vmware-fetch_image\u0027):"},{"line_number":570,"context_line":"            image_prepare, image_fetch, image_cache, image_size_update \\"},{"line_number":571,"context_line":"                \u003d self._get_image_callbacks(vi)"},{"line_number":572,"context_line":"            self.check_cache_folder(vi.datastore.name, vi.datastore.ref)"},{"line_number":573,"context_line":"            ds_browser \u003d self._get_ds_browser(vi.datastore.ref)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_c3f79a57","line":570,"in_reply_to":"5a710552_ef3ddebb","updated":"2015-12-16 16:34:50.000000000","message":"It doesn\u0027t really make any difference because the lock is going to be taken unconditionally, and this isn\u0027t exactly expensive compared to the actual image operations. You could argue it\u0027s slightly tidier to just have everything in the lock block. I wouldn\u0027t personally rate this as important.","commit_id":"aac4319105b89694a3356ef24caff6c8c9edf742"}]}
