)]}'
{"nova/tests/virt/vmwareapi/test_configdrive.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"62327f901a84e3e01903e389f1f43f7146d0c28c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    def _spawn_vm(self, injected_files\u003d[], admin_password\u003dNone,"},{"line_number":116,"context_line":"                  block_device_info\u003dNone):"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        def _fake_glance_read(object):"},{"line_number":119,"context_line":"            pass"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        def _fake_http_write(host, data_center_name, datastore_name, cookies,"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAXX%2F%2F%2BgI%3D","line":118,"updated":"2014-04-24 22:07:01.000000000","message":"There is no reason to have these fake methods if they don\u0027t do anything.","commit_id":"a498c43623979ea51404efe1269125d419b876c9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                              \u0027vm_state\u0027: \u0027building\u0027,"},{"line_number":64,"context_line":"                              \u0027project_id\u0027: \u0027fake\u0027,"},{"line_number":65,"context_line":"                              \u0027user_id\u0027: \u0027fake\u0027,"},{"line_number":66,"context_line":"                              \u0027name\u0027: \u002711\u0027,"},{"line_number":67,"context_line":"                              \u0027kernel_id\u0027: \u00271\u0027,"},{"line_number":68,"context_line":"                              \u0027ramdisk_id\u0027: \u00271\u0027,"},{"line_number":69,"context_line":"                              \u0027mac_addresses\u0027: ["}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_84e19c00","line":66,"updated":"2014-05-11 15:36:49.000000000","message":"Not sure why this is needed.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                              \u0027vm_state\u0027: \u0027building\u0027,"},{"line_number":64,"context_line":"                              \u0027project_id\u0027: \u0027fake\u0027,"},{"line_number":65,"context_line":"                              \u0027user_id\u0027: \u0027fake\u0027,"},{"line_number":66,"context_line":"                              \u0027name\u0027: \u002711\u0027,"},{"line_number":67,"context_line":"                              \u0027kernel_id\u0027: \u00271\u0027,"},{"line_number":68,"context_line":"                              \u0027ramdisk_id\u0027: \u00271\u0027,"},{"line_number":69,"context_line":"                              \u0027mac_addresses\u0027: ["}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_e4ad008a","line":66,"in_reply_to":"7adec928_84e19c00","updated":"2014-05-11 23:36:27.000000000","message":"Ack. not needed.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                              \u0027task_state\u0027:"},{"line_number":80,"context_line":"                                  \u0027scheduling\u0027,"},{"line_number":81,"context_line":"                              \u0027reservation_id\u0027: \u0027r-3t8muvr0\u0027,"},{"line_number":82,"context_line":"                              \u0027id\u0027: nova.tests.image.fake.get_valid_image_id(),"},{"line_number":83,"context_line":"                              \u0027uuid\u0027: \u0027fake-uuid\u0027,"},{"line_number":84,"context_line":"                              \u0027node\u0027: self.node_name,"},{"line_number":85,"context_line":"                              \u0027metadata\u0027: []}"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_a4e77811","line":82,"updated":"2014-05-11 15:36:49.000000000","message":"This is the instance id but you\u0027re setting it to an image id?","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                              \u0027task_state\u0027:"},{"line_number":80,"context_line":"                                  \u0027scheduling\u0027,"},{"line_number":81,"context_line":"                              \u0027reservation_id\u0027: \u0027r-3t8muvr0\u0027,"},{"line_number":82,"context_line":"                              \u0027id\u0027: nova.tests.image.fake.get_valid_image_id(),"},{"line_number":83,"context_line":"                              \u0027uuid\u0027: \u0027fake-uuid\u0027,"},{"line_number":84,"context_line":"                              \u0027node\u0027: self.node_name,"},{"line_number":85,"context_line":"                              \u0027metadata\u0027: []}"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_44ba34c1","line":82,"in_reply_to":"7adec928_a4e77811","updated":"2014-05-11 23:36:27.000000000","message":"Ack. This is a bad change. nuking it.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":126,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027),"},{"line_number":127,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        ) as (http_write, glance_read, fake_start_transfer):"},{"line_number":130,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"},{"line_number":131,"context_line":"                        injected_files\u003dinjected_files,"},{"line_number":132,"context_line":"                        admin_password\u003dadmin_password,"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_c4e2c400","line":129,"updated":"2014-05-11 15:36:49.000000000","message":"Do we not care about asserting the calls on any of these mocks?","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":126,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027),"},{"line_number":127,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        ) as (http_write, glance_read, fake_start_transfer):"},{"line_number":130,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"},{"line_number":131,"context_line":"                        injected_files\u003dinjected_files,"},{"line_number":132,"context_line":"                        admin_password\u003dadmin_password,"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_e477c000","line":129,"in_reply_to":"7adec928_c4e2c400","updated":"2014-05-11 23:36:27.000000000","message":"y need to add some asserts","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                              \u0027vcpus\u0027: 4,"},{"line_number":75,"context_line":"                              \u0027root_gb\u0027: 80,"},{"line_number":76,"context_line":"                              \u0027image_ref\u0027:"},{"line_number":77,"context_line":"                                  nova.tests.image.fake.get_valid_image_id(),"},{"line_number":78,"context_line":"                              \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":79,"context_line":"                              \u0027task_state\u0027:"},{"line_number":80,"context_line":"                                  \u0027scheduling\u0027,"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_af501d5f","line":77,"updated":"2014-05-13 13:31:42.000000000","message":"Shouldn\u0027t this actually be the fake image from line 56, so self.image.id?","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                              \u0027vcpus\u0027: 4,"},{"line_number":75,"context_line":"                              \u0027root_gb\u0027: 80,"},{"line_number":76,"context_line":"                              \u0027image_ref\u0027:"},{"line_number":77,"context_line":"                                  nova.tests.image.fake.get_valid_image_id(),"},{"line_number":78,"context_line":"                              \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":79,"context_line":"                              \u0027task_state\u0027:"},{"line_number":80,"context_line":"                                  \u0027scheduling\u0027,"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_f0bda169","line":77,"in_reply_to":"7adec928_af501d5f","updated":"2014-05-13 20:11:56.000000000","message":"i changed image to use the same call into image.fake to get the image-ref so these are consistent now.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                              \u0027task_state\u0027:"},{"line_number":80,"context_line":"                                  \u0027scheduling\u0027,"},{"line_number":81,"context_line":"                              \u0027reservation_id\u0027: \u0027r-3t8muvr0\u0027,"},{"line_number":82,"context_line":"                              \u0027id\u0027: \u00271\u0027,"},{"line_number":83,"context_line":"                              \u0027uuid\u0027: \u0027fake-uuid\u0027,"},{"line_number":84,"context_line":"                              \u0027node\u0027: self.node_name,"},{"line_number":85,"context_line":"                              \u0027metadata\u0027: []}"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_ef1ce5c3","line":82,"updated":"2014-05-13 13:31:42.000000000","message":"Why change this to a string?  It should be an integer...and this is an unrelated change anyway.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                              \u0027task_state\u0027:"},{"line_number":80,"context_line":"                                  \u0027scheduling\u0027,"},{"line_number":81,"context_line":"                              \u0027reservation_id\u0027: \u0027r-3t8muvr0\u0027,"},{"line_number":82,"context_line":"                              \u0027id\u0027: \u00271\u0027,"},{"line_number":83,"context_line":"                              \u0027uuid\u0027: \u0027fake-uuid\u0027,"},{"line_number":84,"context_line":"                              \u0027node\u0027: self.node_name,"},{"line_number":85,"context_line":"                              \u0027metadata\u0027: []}"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_505f3572","line":82,"in_reply_to":"7adec928_ef1ce5c3","updated":"2014-05-13 20:11:56.000000000","message":"done","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            return read_file_handle"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        def fake_write_handle(host, dc_name, ds_name, cookies,"},{"line_number":126,"context_line":"                 file_path, file_size, scheme\u003d\"https\"):"},{"line_number":127,"context_line":"            return write_file_handle"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        with contextlib.nested("}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_efa6a552","line":126,"updated":"2014-05-13 13:31:42.000000000","message":"Wondering if any of these parameters are assert-able in the test, i.e. do we have stubs with these values in scope of the test that can be used to assert this is called correctly, otherwise this side_effect is just a no-op for the most part.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            return read_file_handle"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        def fake_write_handle(host, dc_name, ds_name, cookies,"},{"line_number":126,"context_line":"                 file_path, file_size, scheme\u003d\"https\"):"},{"line_number":127,"context_line":"            return write_file_handle"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        with contextlib.nested("}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_1065ad44","line":126,"in_reply_to":"7adec928_efa6a552","updated":"2014-05-13 20:11:56.000000000","message":"done","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                        network_info\u003dself.network_info,"},{"line_number":140,"context_line":"                        block_device_info\u003dblock_device_info)"},{"line_number":141,"context_line":"            fake_start_transfer.assert_called_once_with(self.context,"},{"line_number":142,"context_line":"                read_file_handle, 74185822,"},{"line_number":143,"context_line":"                write_file_handle\u003dwrite_file_handle)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def test_create_vm_with_config_drive_verify_method_invocation(self):"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_0ff03166","line":142,"updated":"2014-05-13 13:31:42.000000000","message":"Where is the metadata size calculated for this test?  Can we do the same calculation here rather than hard-code it?","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                        network_info\u003dself.network_info,"},{"line_number":140,"context_line":"                        block_device_info\u003dblock_device_info)"},{"line_number":141,"context_line":"            fake_start_transfer.assert_called_once_with(self.context,"},{"line_number":142,"context_line":"                read_file_handle, 74185822,"},{"line_number":143,"context_line":"                write_file_handle\u003dwrite_file_handle)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def test_create_vm_with_config_drive_verify_method_invocation(self):"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_f061213a","line":142,"in_reply_to":"7adec928_0ff03166","updated":"2014-05-13 20:11:56.000000000","message":"done","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2e934807eedd49345ff44f98e9d64e609ed7d597","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        def fake_write_handle(host, dc_name, ds_name, cookies,"},{"line_number":132,"context_line":"                 file_path, file_size, scheme\u003d\"https\"):"},{"line_number":133,"context_line":"            self.assertEqual(dc_name, \u0027dc1\u0027)"},{"line_number":134,"context_line":"            self.assertEqual(ds_name, \u0027ds1\u0027)"},{"line_number":135,"context_line":"            self.assertEqual(cookies, \u0027Fake-CookieJar\u0027)"},{"line_number":136,"context_line":"            split_file_path \u003d file_path.split(\u0027/\u0027)"}],"source_content_type":"text/x-python","patch_set":57,"id":"7adec928_be167ca5","line":133,"updated":"2014-05-14 19:25:50.000000000","message":"please use the expected value first","commit_id":"7f14370739074f72c2d954132171a893aeb702f3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4522843a47f5a06d0b6e8b7701654747e04305f","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        (image_service, image_id) \u003d glance.get_remote_image_service(context,"},{"line_number":84,"context_line":"                                    image_ref)"},{"line_number":85,"context_line":"        metadata \u003d image_service.show(context, image_id)"},{"line_number":86,"context_line":"        self.image \u003d {"},{"line_number":87,"context_line":"            \u0027id\u0027: image_ref,"},{"line_number":88,"context_line":"            \u0027disk_format\u0027: \u0027vmdk\u0027,"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_f5a3b7fd","line":85,"updated":"2014-05-15 13:49:48.000000000","message":"Is this doing a real call to the glance service or is this fall faked out somewhere?   I thought we faked out the image service to return fake images, but this looks different.  Looks like that\u0027s line 52, so looks like this is OK after all.","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"fe669233796521c1d8f1eb8eb46ecb3f8698bd06","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        (image_service, image_id) \u003d glance.get_remote_image_service(context,"},{"line_number":84,"context_line":"                                    image_ref)"},{"line_number":85,"context_line":"        metadata \u003d image_service.show(context, image_id)"},{"line_number":86,"context_line":"        self.image \u003d {"},{"line_number":87,"context_line":"            \u0027id\u0027: image_ref,"},{"line_number":88,"context_line":"            \u0027disk_format\u0027: \u0027vmdk\u0027,"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_f5dbb74c","line":85,"in_reply_to":"7adec928_f5a3b7fd","updated":"2014-05-15 14:09:18.000000000","message":"right","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"}],"nova/tests/virt/vmwareapi/test_driver_api.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"45c624658046cb6ee13c689e67b6d432cd7630a0","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                                                      size)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def _cached_files_exist(self, exists\u003dTrue):"},{"line_number":642,"context_line":"        cache \u003d (\u0027[%s] vmware_base/%s/%s.vmdk\u0027 %"},{"line_number":643,"context_line":"                 (self.ds, self.fake_image_uuid, self.fake_image_uuid))"},{"line_number":644,"context_line":"        if exists:"},{"line_number":645,"context_line":"            self.assertTrue(vmwareapi_fake.get_file(cache))"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAXH%2F%2FDpU%3D","line":642,"updated":"2014-04-24 10:18:26.000000000","message":"I suggest to use ds_util.build_datastore_path for all those datastore paths","commit_id":"00d9109d5890a59fb6586a79d7988b3e77c4871c"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"62327f901a84e3e01903e389f1f43f7146d0c28c","unresolved":false,"context_lines":[{"line_number":486,"context_line":"                   instance_type\u003d\u0027m1.large\u0027):"},{"line_number":487,"context_line":"        \"\"\"Create and spawn the VM.\"\"\""},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"        def _fake_glance_read(object):"},{"line_number":490,"context_line":"            pass"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        def _fake_http_write(host, data_center_name, datastore_name, cookies,"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAXX%2F%2F%2Bf8%3D","line":489,"updated":"2014-04-24 22:07:01.000000000","message":"ditto","commit_id":"a498c43623979ea51404efe1269125d419b876c9"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"62327f901a84e3e01903e389f1f43f7146d0c28c","unresolved":false,"context_lines":[{"line_number":1532,"context_line":"        self.stubs.Set(self.conn._volumeops, \"attach_disk_to_vm\","},{"line_number":1533,"context_line":"                       fake_attach_disk_to_vm)"},{"line_number":1534,"context_line":""},{"line_number":1535,"context_line":"        def _fake_glance_read(object):"},{"line_number":1536,"context_line":"            pass"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"        def _fake_http_write(host, data_center_name, datastore_name,"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAXX%2F%2F%2Bf4%3D","line":1535,"updated":"2014-04-24 22:07:01.000000000","message":"ditto","commit_id":"a498c43623979ea51404efe1269125d419b876c9"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ba839b4360d868d3556c30e89cd64cd994de4833","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    session \u003d vmwareapi_fake.DataObject()"},{"line_number":137,"context_line":"    session.key \u003d \u0027fake_key\u0027"},{"line_number":138,"context_line":"    session.userName \u003d \u0027fake_username\u0027"},{"line_number":139,"context_line":"    inst._session \u003d session"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"class VMwareSessionTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":32,"id":"9ad9bd40_ddabac87","line":139,"updated":"2014-04-30 16:18:59.000000000","message":"Again, same complaint.","commit_id":"c54f1bb1d15a8d900ea10630503e57435dc2ecba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":483,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027),"},{"line_number":484,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"        ) as (http_write, glance_read, fake_start_transfer):"},{"line_number":487,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"},{"line_number":488,"context_line":"                            injected_files\u003d[], admin_password\u003dNone,"},{"line_number":489,"context_line":"                            network_info\u003dself.network_info,"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_24bb68e6","line":486,"updated":"2014-05-11 15:36:49.000000000","message":"Should we assert calls to any of these?","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":483,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027),"},{"line_number":484,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"        ) as (http_write, glance_read, fake_start_transfer):"},{"line_number":487,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"},{"line_number":488,"context_line":"                            injected_files\u003d[], admin_password\u003dNone,"},{"line_number":489,"context_line":"                            network_info\u003dself.network_info,"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_870d1e3a","line":486,"in_reply_to":"7adec928_24bb68e6","updated":"2014-05-11 23:36:27.000000000","message":"yes we should!","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        self.instance \u003d fake_instance.fake_instance_obj("},{"line_number":464,"context_line":"                self.context, **values)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def _create_vm(self, node\u003dNone, num_instances\u003d1, uuid\u003dNone,"},{"line_number":467,"context_line":"                   instance_type\u003d\u0027m1.large\u0027, powered_on\u003dTrue):"},{"line_number":468,"context_line":"        \"\"\"Create and spawn the VM.\"\"\""},{"line_number":469,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_813df5bd","line":466,"updated":"2014-05-13 13:31:42.000000000","message":"Is there value in having basically the same tests in here AND in test_configdrive?  They are both going through the spawn method on the driver right?  Or is one using vmops and the other is using the driver?  I just don\u0027t like duplicated code but if there is a reasonable justification for this I can be sold cheaply and easily.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        self.instance \u003d fake_instance.fake_instance_obj("},{"line_number":464,"context_line":"                self.context, **values)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def _create_vm(self, node\u003dNone, num_instances\u003d1, uuid\u003dNone,"},{"line_number":467,"context_line":"                   instance_type\u003d\u0027m1.large\u0027, powered_on\u003dTrue):"},{"line_number":468,"context_line":"        \"\"\"Create and spawn the VM.\"\"\""},{"line_number":469,"context_line":""}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_8bca6e6c","line":466,"in_reply_to":"7adec928_813df5bd","updated":"2014-05-13 20:11:56.000000000","message":"we need create_vm here to support a lot of the other testing in this method.  i agree it\u0027s duplicate code, but it\u0027s needed here too and this one is more complex that the test_config one.  Ideas for consolidating these?","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":474,"context_line":"            return read_file_handle"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        def _fake_write_mock(host, dc_name, ds_name, cookies,"},{"line_number":477,"context_line":"                 file_path, file_size, scheme\u003d\"https\"):"},{"line_number":478,"context_line":"            self.vim.fake_transfer_file(ds_name\u003dds_name,"},{"line_number":479,"context_line":"                                        file_path\u003dfile_path)"},{"line_number":480,"context_line":"            return write_file_handle"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_4f3dd9dd","line":477,"updated":"2014-05-13 13:31:42.000000000","message":"Same comment as in test_configdrive about asserting the parameter values here, there should be stubs in scope that we can assert against for fake values I\u0027d think.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":474,"context_line":"            return read_file_handle"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        def _fake_write_mock(host, dc_name, ds_name, cookies,"},{"line_number":477,"context_line":"                 file_path, file_size, scheme\u003d\"https\"):"},{"line_number":478,"context_line":"            self.vim.fake_transfer_file(ds_name\u003dds_name,"},{"line_number":479,"context_line":"                                        file_path\u003dfile_path)"},{"line_number":480,"context_line":"            return write_file_handle"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_6bcfe27f","line":477,"in_reply_to":"7adec928_4f3dd9dd","updated":"2014-05-13 20:11:56.000000000","message":"done","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":488,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":489,"context_line":"                               _fake_write_mock),"},{"line_number":490,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":491,"context_line":"                                fake_read_handle),"},{"line_number":492,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":493,"context_line":"        ) as (fake_http_write, fake_glance_read, fake_start_transfer):"},{"line_number":494,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_2f1ded73","line":491,"updated":"2014-05-13 13:31:42.000000000","message":"Alignment is a bit off here.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":488,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":489,"context_line":"                               _fake_write_mock),"},{"line_number":490,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":491,"context_line":"                                fake_read_handle),"},{"line_number":492,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":493,"context_line":"        ) as (fake_http_write, fake_glance_read, fake_start_transfer):"},{"line_number":494,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_abc9ea79","line":491,"in_reply_to":"7adec928_2f1ded73","updated":"2014-05-13 20:11:56.000000000","message":"Done","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":496,"context_line":"                            network_info\u003dself.network_info,"},{"line_number":497,"context_line":"                            block_device_info\u003dNone)"},{"line_number":498,"context_line":"            fake_start_transfer.assert_called_once_with(self.context,"},{"line_number":499,"context_line":"                read_file_handle, 74185822,"},{"line_number":500,"context_line":"                write_file_handle\u003dwrite_file_handle)"},{"line_number":501,"context_line":"            self._check_vm_record(num_instances\u003dnum_instances,"},{"line_number":502,"context_line":"                                  powered_on\u003dpowered_on)"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_8f0d2141","line":499,"updated":"2014-05-13 13:31:42.000000000","message":"Same comment as test_configdrive about calculating the meta size rather than hard-coding.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":496,"context_line":"                            network_info\u003dself.network_info,"},{"line_number":497,"context_line":"                            block_device_info\u003dNone)"},{"line_number":498,"context_line":"            fake_start_transfer.assert_called_once_with(self.context,"},{"line_number":499,"context_line":"                read_file_handle, 74185822,"},{"line_number":500,"context_line":"                write_file_handle\u003dwrite_file_handle)"},{"line_number":501,"context_line":"            self._check_vm_record(num_instances\u003dnum_instances,"},{"line_number":502,"context_line":"                                  powered_on\u003dpowered_on)"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_2badda9c","line":499,"in_reply_to":"7adec928_8f0d2141","updated":"2014-05-13 20:11:56.000000000","message":"Done","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4522843a47f5a06d0b6e8b7701654747e04305f","unresolved":false,"context_lines":[{"line_number":483,"context_line":"            self.vim.fake_transfer_file(ds_name\u003dds_name,"},{"line_number":484,"context_line":"                                        file_path\u003dfile_path)"},{"line_number":485,"context_line":"            image_ref \u003d self.image[\u0027id\u0027]"},{"line_number":486,"context_line":"            if dc_name not in [\u0027dc1\u0027, \u0027dc2\u0027]:"},{"line_number":487,"context_line":"                self.fail()"},{"line_number":488,"context_line":"            if ds_name not in [\u0027ds1\u0027, \u0027ds2\u0027]:"},{"line_number":489,"context_line":"                self.fail()"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_b584cf5e","line":486,"updated":"2014-05-15 13:49:48.000000000","message":"Use self.assertIn here instead.","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"fe669233796521c1d8f1eb8eb46ecb3f8698bd06","unresolved":false,"context_lines":[{"line_number":483,"context_line":"            self.vim.fake_transfer_file(ds_name\u003dds_name,"},{"line_number":484,"context_line":"                                        file_path\u003dfile_path)"},{"line_number":485,"context_line":"            image_ref \u003d self.image[\u0027id\u0027]"},{"line_number":486,"context_line":"            if dc_name not in [\u0027dc1\u0027, \u0027dc2\u0027]:"},{"line_number":487,"context_line":"                self.fail()"},{"line_number":488,"context_line":"            if ds_name not in [\u0027ds1\u0027, \u0027ds2\u0027]:"},{"line_number":489,"context_line":"                self.fail()"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_15866313","line":486,"in_reply_to":"7adec928_b584cf5e","updated":"2014-05-15 14:09:18.000000000","message":"Done","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4522843a47f5a06d0b6e8b7701654747e04305f","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            image_ref \u003d self.image[\u0027id\u0027]"},{"line_number":486,"context_line":"            if dc_name not in [\u0027dc1\u0027, \u0027dc2\u0027]:"},{"line_number":487,"context_line":"                self.fail()"},{"line_number":488,"context_line":"            if ds_name not in [\u0027ds1\u0027, \u0027ds2\u0027]:"},{"line_number":489,"context_line":"                self.fail()"},{"line_number":490,"context_line":"            self.assertEqual(\u0027Fake-CookieJar\u0027, cookies)"},{"line_number":491,"context_line":"            split_file_path \u003d file_path.split(\u0027/\u0027)"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_d5895b76","line":488,"updated":"2014-05-15 13:49:48.000000000","message":"Use self.assertIn here instead.","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"fe669233796521c1d8f1eb8eb46ecb3f8698bd06","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            image_ref \u003d self.image[\u0027id\u0027]"},{"line_number":486,"context_line":"            if dc_name not in [\u0027dc1\u0027, \u0027dc2\u0027]:"},{"line_number":487,"context_line":"                self.fail()"},{"line_number":488,"context_line":"            if ds_name not in [\u0027ds1\u0027, \u0027ds2\u0027]:"},{"line_number":489,"context_line":"                self.fail()"},{"line_number":490,"context_line":"            self.assertEqual(\u0027Fake-CookieJar\u0027, cookies)"},{"line_number":491,"context_line":"            split_file_path \u003d file_path.split(\u0027/\u0027)"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_159d8359","line":488,"in_reply_to":"7adec928_d5895b76","updated":"2014-05-15 14:09:18.000000000","message":"Done","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4522843a47f5a06d0b6e8b7701654747e04305f","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        self.assertIsNone(vm_util.vm_ref_cache_get(self.uuid))"},{"line_number":502,"context_line":"        with contextlib.nested("},{"line_number":503,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":504,"context_line":"                                _fake_write_mock),"},{"line_number":505,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":506,"context_line":"                                fake_read_handle),"},{"line_number":507,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_f5f1f701","line":504,"updated":"2014-05-15 13:49:48.000000000","message":"I mean the alignment should be lined up with the line above, so align with read_write_util on the line above.","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"fe669233796521c1d8f1eb8eb46ecb3f8698bd06","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        self.assertIsNone(vm_util.vm_ref_cache_get(self.uuid))"},{"line_number":502,"context_line":"        with contextlib.nested("},{"line_number":503,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":504,"context_line":"                                _fake_write_mock),"},{"line_number":505,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":506,"context_line":"                                fake_read_handle),"},{"line_number":507,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_55d0ebf5","line":504,"in_reply_to":"7adec928_f5f1f701","updated":"2014-05-15 14:09:18.000000000","message":"Done","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4522843a47f5a06d0b6e8b7701654747e04305f","unresolved":false,"context_lines":[{"line_number":503,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":504,"context_line":"                                _fake_write_mock),"},{"line_number":505,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":506,"context_line":"                                fake_read_handle),"},{"line_number":507,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":508,"context_line":"        ) as (fake_http_write, fake_glance_read, fake_start_transfer):"},{"line_number":509,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_55dc6b73","line":506,"updated":"2014-05-15 13:49:48.000000000","message":"ditto on alignment","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"fe669233796521c1d8f1eb8eb46ecb3f8698bd06","unresolved":false,"context_lines":[{"line_number":503,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":504,"context_line":"                                _fake_write_mock),"},{"line_number":505,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":506,"context_line":"                                fake_read_handle),"},{"line_number":507,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027)"},{"line_number":508,"context_line":"        ) as (fake_http_write, fake_glance_read, fake_start_transfer):"},{"line_number":509,"context_line":"            self.conn.spawn(self.context, self.instance, self.image,"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_35d35f05","line":506,"in_reply_to":"7adec928_55dc6b73","updated":"2014-05-15 14:09:18.000000000","message":"Done","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4522843a47f5a06d0b6e8b7701654747e04305f","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                            network_info\u003dself.network_info,"},{"line_number":512,"context_line":"                            block_device_info\u003dNone)"},{"line_number":513,"context_line":"            fake_start_transfer.assert_called_once_with(self.context,"},{"line_number":514,"context_line":"                read_file_handle, self.image[\u0027size\u0027],"},{"line_number":515,"context_line":"                write_file_handle\u003dwrite_file_handle)"},{"line_number":516,"context_line":"            self._check_vm_record(num_instances\u003dnum_instances,"},{"line_number":517,"context_line":"                                  powered_on\u003dpowered_on)"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_f5c817aa","line":514,"updated":"2014-05-15 13:49:48.000000000","message":"You cast the image size parameter to an int in the other test but not here?  Looking at the code it should be an int.","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"fe669233796521c1d8f1eb8eb46ecb3f8698bd06","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                            network_info\u003dself.network_info,"},{"line_number":512,"context_line":"                            block_device_info\u003dNone)"},{"line_number":513,"context_line":"            fake_start_transfer.assert_called_once_with(self.context,"},{"line_number":514,"context_line":"                read_file_handle, self.image[\u0027size\u0027],"},{"line_number":515,"context_line":"                write_file_handle\u003dwrite_file_handle)"},{"line_number":516,"context_line":"            self._check_vm_record(num_instances\u003dnum_instances,"},{"line_number":517,"context_line":"                                  powered_on\u003dpowered_on)"}],"source_content_type":"text/x-python","patch_set":58,"id":"7adec928_b5b84fc9","line":514,"in_reply_to":"7adec928_f5c817aa","updated":"2014-05-15 14:09:18.000000000","message":"i casted to an int when i created the object in both cases.  I removed the other int cast as it is not needed","commit_id":"3ea6e9f362e13d65fd23ad87336ee283d7a60e4f"}],"nova/tests/virt/vmwareapi/test_vmware_images.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ba839b4360d868d3556c30e89cd64cd994de4833","unresolved":false,"context_lines":[{"line_number":75,"context_line":"class VMwareAPIVMTestCase(test.NoDBTestCase):"},{"line_number":76,"context_line":"    \"\"\"Unit tests for Vmware API connection calls.\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def setUp(self):"},{"line_number":79,"context_line":"        super(VMwareAPIVMTestCase, self).setUp()"},{"line_number":80,"context_line":"        vm_util.vm_refs_cache_reset()"},{"line_number":81,"context_line":"        self.context \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, is_admin\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":32,"id":"9ad9bd40_3da01890","line":78,"updated":"2014-04-30 16:18:59.000000000","message":"Looks like a lot of this was maybe copied from other tests? We *really* need to get away from tests where we have a giant setUp() method that mocks the world, and then a bunch of small tests that depend on those things.","commit_id":"c54f1bb1d15a8d900ea10630503e57435dc2ecba"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ba839b4360d868d3556c30e89cd64cd994de4833","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        self.instance \u003d fake_instance.fake_instance_obj(self.context,"},{"line_number":186,"context_line":"                                                        **values)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def test_fetch_image(self):"},{"line_number":189,"context_line":"        \"\"\"Test fetching images.\"\"\""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        def _fake_http_write(host, data_center_name, datastore_name, cookies,"}],"source_content_type":"text/x-python","patch_set":32,"id":"9ad9bd40_9db684db","line":188,"updated":"2014-04-30 16:18:59.000000000","message":"I can\u0027t imagine that testing fetch_image() *really* depends on all of the above. It\u0027s a simple function, so you should just be able to mock out the things it uses right here and avoid all the above baggage, right?","commit_id":"c54f1bb1d15a8d900ea10630503e57435dc2ecba"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"de240123929b5c8447e3586fe9b5e826003676cf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        ds_name \u003d \u0027ds1\u0027"},{"line_number":43,"context_line":"        host \u003d mock.MagicMock()"},{"line_number":44,"context_line":"        context \u003d mock.MagicMock()"},{"line_number":45,"context_line":"        instance \u003d mock.MagicMock()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        image_data \u003d {"},{"line_number":48,"context_line":"                \u0027id\u0027: nova.tests.image.fake.get_valid_image_id(),"}],"source_content_type":"text/x-python","patch_set":33,"id":"9ad9bd40_e4f37471","line":45,"updated":"2014-05-01 01:15:02.000000000","message":"Not Needed as there is a \"instance \u003d {}\" on line 55.","commit_id":"a67e8d626223b1c9b55e0f7394ae8cda95e6efa2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b74fc8e0e3f715500a9b22d92b4ed7f3208f81ea","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        ds_name \u003d \u0027ds1\u0027"},{"line_number":43,"context_line":"        host \u003d mock.MagicMock()"},{"line_number":44,"context_line":"        context \u003d mock.MagicMock()"},{"line_number":45,"context_line":"        instance \u003d mock.MagicMock()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        image_data \u003d {"},{"line_number":48,"context_line":"                \u0027id\u0027: nova.tests.image.fake.get_valid_image_id(),"}],"source_content_type":"text/x-python","patch_set":33,"id":"9ad9bd40_bd0a56d0","line":45,"in_reply_to":"9ad9bd40_e4f37471","updated":"2014-05-01 10:36:36.000000000","message":"Done","commit_id":"a67e8d626223b1c9b55e0f7394ae8cda95e6efa2"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"de240123929b5c8447e3586fe9b5e826003676cf","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                      host, dc_name,"},{"line_number":91,"context_line":"                                      ds_name, file_path)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        glance_read.assert_called_with(read_iter)"},{"line_number":94,"context_line":"        http_write.assert_called_with(host, dc_name, ds_name, None,"},{"line_number":95,"context_line":"                                      file_path, image_data[\u0027size\u0027])"},{"line_number":96,"context_line":"        start_transfer.assert_called_with(context, read_file_handle,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9ad9bd40_e4c1b4e5","line":93,"updated":"2014-05-01 01:15:02.000000000","message":"all 5 lines (including 93) the assert_called_with should be assert_called_once_with","commit_id":"a67e8d626223b1c9b55e0f7394ae8cda95e6efa2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b74fc8e0e3f715500a9b22d92b4ed7f3208f81ea","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                      host, dc_name,"},{"line_number":91,"context_line":"                                      ds_name, file_path)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        glance_read.assert_called_with(read_iter)"},{"line_number":94,"context_line":"        http_write.assert_called_with(host, dc_name, ds_name, None,"},{"line_number":95,"context_line":"                                      file_path, image_data[\u0027size\u0027])"},{"line_number":96,"context_line":"        start_transfer.assert_called_with(context, read_file_handle,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9ad9bd40_fd2bfe2d","line":93,"in_reply_to":"9ad9bd40_e4c1b4e5","updated":"2014-05-01 10:36:36.000000000","message":"Done","commit_id":"a67e8d626223b1c9b55e0f7394ae8cda95e6efa2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        read_iter \u003d mock.MagicMock()"},{"line_number":54,"context_line":"        instance \u003d {}"},{"line_number":55,"context_line":"        instance[\u0027image_ref\u0027] \u003d \u00271234\u0027"},{"line_number":56,"context_line":"        instance[\u0027uuid\u0027] \u003d \u00271234-5678-9102-3456\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        def fake_read_handle(read_iter):"},{"line_number":59,"context_line":"            return read_file_handle"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_44beb4d5","line":56,"updated":"2014-05-11 15:36:49.000000000","message":"nit: this isn\u0027t a valid UUID, I know it\u0027s fake but I\u0027d at least use uuidutils to generate one.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        read_iter \u003d mock.MagicMock()"},{"line_number":54,"context_line":"        instance \u003d {}"},{"line_number":55,"context_line":"        instance[\u0027image_ref\u0027] \u003d \u00271234\u0027"},{"line_number":56,"context_line":"        instance[\u0027uuid\u0027] \u003d \u00271234-5678-9102-3456\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        def fake_read_handle(read_iter):"},{"line_number":59,"context_line":"            return read_file_handle"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_6721f29e","line":56,"in_reply_to":"7adec928_44beb4d5","updated":"2014-05-11 23:36:27.000000000","message":"we seem to be using fake-uuid or fake_uuid elsewhere, so i\u0027ll switch to that","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        def fake_image_show(context, image_id):"},{"line_number":69,"context_line":"            return image_data"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        fake_read_mock \u003d mock.Mock(side_effect\u003dfake_read_handle)"},{"line_number":72,"context_line":"        fake_write_mock \u003d mock.Mock(side_effect\u003dfake_write_handle)"},{"line_number":73,"context_line":"        fake_download_mock \u003d mock.Mock(side_effect\u003dfake_download)"},{"line_number":74,"context_line":"        fake_image_show_mock \u003d mock.Mock(side_effect\u003dfake_image_show)"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_64b570ed","line":71,"updated":"2014-05-11 15:36:49.000000000","message":"You don\u0027t need these separate vars, just use the side_effect inline with the nested context mocks below.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        def fake_image_show(context, image_id):"},{"line_number":69,"context_line":"            return image_data"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        fake_read_mock \u003d mock.Mock(side_effect\u003dfake_read_handle)"},{"line_number":72,"context_line":"        fake_write_mock \u003d mock.Mock(side_effect\u003dfake_write_handle)"},{"line_number":73,"context_line":"        fake_download_mock \u003d mock.Mock(side_effect\u003dfake_download)"},{"line_number":74,"context_line":"        fake_image_show_mock \u003d mock.Mock(side_effect\u003dfake_image_show)"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_67a65212","line":71,"in_reply_to":"7adec928_64b570ed","updated":"2014-05-11 23:36:27.000000000","message":"Ack.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        with contextlib.nested("},{"line_number":77,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":78,"context_line":"                               fake_read_mock),"},{"line_number":79,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":80,"context_line":"                               fake_write_mock),"},{"line_number":81,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027),"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_a4ce9881","line":78,"updated":"2014-05-11 15:36:49.000000000","message":"Just use your side_effect here, don\u0027t need the duplicate mocks.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        with contextlib.nested("},{"line_number":77,"context_line":"             mock.patch.object(read_write_util, \u0027GlanceFileRead\u0027,"},{"line_number":78,"context_line":"                               fake_read_mock),"},{"line_number":79,"context_line":"             mock.patch.object(read_write_util, \u0027VMwareHTTPWriteFile\u0027,"},{"line_number":80,"context_line":"                               fake_write_mock),"},{"line_number":81,"context_line":"             mock.patch.object(vmware_images, \u0027start_transfer\u0027),"}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_87a99ee1","line":78,"in_reply_to":"7adec928_a4ce9881","updated":"2014-05-11 23:36:27.000000000","message":"Ack.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"499021bb7492ab4976a3f2fa73312024233e4060","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                                      host, dc_name,"},{"line_number":90,"context_line":"                                      ds_name, file_path)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        glance_read.assert_called_onec_with(read_iter)"},{"line_number":93,"context_line":"        http_write.assert_called_once_with(host, dc_name, ds_name, None,"},{"line_number":94,"context_line":"                                           file_path, image_data[\u0027size\u0027])"},{"line_number":95,"context_line":"        start_transfer.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_c4c9e47a","line":92,"updated":"2014-05-11 15:36:49.000000000","message":"Typo so this isn\u0027t getting asserted with mock.","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"09ff88bb872dbc8b4f996a5356e04856ff7f2782","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                                      host, dc_name,"},{"line_number":90,"context_line":"                                      ds_name, file_path)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        glance_read.assert_called_onec_with(read_iter)"},{"line_number":93,"context_line":"        http_write.assert_called_once_with(host, dc_name, ds_name, None,"},{"line_number":94,"context_line":"                                           file_path, image_data[\u0027size\u0027])"},{"line_number":95,"context_line":"        start_transfer.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":52,"id":"7adec928_4751560d","line":92,"in_reply_to":"7adec928_c4c9e47a","updated":"2014-05-11 23:36:27.000000000","message":"Done","commit_id":"dbbb3e966c3338cdc2379eef98d62be1a9bba7b8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e392a5b2f239c883acff6782436732c2cc81bde","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        write_file_handle \u003d mock.MagicMock()"},{"line_number":53,"context_line":"        read_iter \u003d mock.MagicMock()"},{"line_number":54,"context_line":"        instance \u003d {}"},{"line_number":55,"context_line":"        instance[\u0027image_ref\u0027] \u003d nova.tests.image.fake.get_valid_image_id()"},{"line_number":56,"context_line":"        instance[\u0027uuid\u0027] \u003d \u0027fake-uuid\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        def fake_read_handle(read_iter):"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_01872562","line":55,"updated":"2014-05-13 13:31:42.000000000","message":"Shouldn\u0027t this be the self.image.id from the fake above?  Just asking, I\u0027m not sure since it\u0027s not obvious, but would seem to make sense that the fake instance is using the fake image.","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0cb9355bc16f6f0e13a63c34a093dc0b73366e9d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        write_file_handle \u003d mock.MagicMock()"},{"line_number":53,"context_line":"        read_iter \u003d mock.MagicMock()"},{"line_number":54,"context_line":"        instance \u003d {}"},{"line_number":55,"context_line":"        instance[\u0027image_ref\u0027] \u003d nova.tests.image.fake.get_valid_image_id()"},{"line_number":56,"context_line":"        instance[\u0027uuid\u0027] \u003d \u0027fake-uuid\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        def fake_read_handle(read_iter):"}],"source_content_type":"text/x-python","patch_set":55,"id":"7adec928_6b96024e","line":55,"in_reply_to":"7adec928_01872562","updated":"2014-05-13 20:11:56.000000000","message":"yes - it turns out to be the same thing. but i\u0027ll make it explicit","commit_id":"485594f7ab4ed9418bfe0c5ec245f3528ebb196a"}],"nova/virt/vmwareapi/fake.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"45c624658046cb6ee13c689e67b6d432cd7630a0","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"        \"\"\"Fakes fetch image call."},{"line_number":1266,"context_line":"        Just adds a reference to the db for the file."},{"line_number":1267,"context_line":"        \"\"\""},{"line_number":1268,"context_line":"        ds_file_path \u003d \"[\" + ds_name + \"] \" + file_path"},{"line_number":1269,"context_line":"        _add_file(ds_file_path)"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"    def _make_dir(self, method, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAXH%2F%2FEgQ%3D","line":1268,"updated":"2014-04-24 10:18:26.000000000","message":"ds_util.build_datastore_path()","commit_id":"00d9109d5890a59fb6586a79d7988b3e77c4871c"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e2c9a605f7524174faa60727331815fd1b074e6b","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        def _fetch_image_on_datastore(upload_name):"},{"line_number":281,"context_line":"            \"\"\"Fetch image from Glance to datastore.\"\"\""},{"line_number":282,"context_line":"            LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""},{"line_number":283,"context_line":"                        \"data store %(data_store_name)s\") %"},{"line_number":284,"context_line":"                        {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":285,"context_line":"                         \u0027data_store_name\u0027: data_store_name},"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2F21k%3D","side":"PARENT","line":282,"updated":"2014-04-09 22:08:33.000000000","message":"It would be nice to also improve the logging in vmware_images.fetch_images() to include data_store_name in it\u0027s debug messages.","commit_id":"4ac717076332c01e16074d48e8f1810eb4e4d7be"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"fac0a1b644dedc446d2a50ba8c7bad5db545b38b","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        def _fetch_image_on_datastore(upload_name):"},{"line_number":281,"context_line":"            \"\"\"Fetch image from Glance to datastore.\"\"\""},{"line_number":282,"context_line":"            LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""},{"line_number":283,"context_line":"                        \"data store %(data_store_name)s\") %"},{"line_number":284,"context_line":"                        {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":285,"context_line":"                         \u0027data_store_name\u0027: data_store_name},"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2F2mw%3D","side":"PARENT","line":282,"in_reply_to":"AAAAW3%2F%2F21k%3D","updated":"2014-04-09 22:48:11.000000000","message":"You mean like this?\nhttps://review.openstack.org/#/c/86442/1/nova/virt/vmwareapi/vmware_images.py","commit_id":"4ac717076332c01e16074d48e8f1810eb4e4d7be"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e2c9a605f7524174faa60727331815fd1b074e6b","unresolved":false,"context_lines":[{"line_number":296,"context_line":"            LOG.debug(_(\"Downloaded image file data %(image_ref)s to \""},{"line_number":297,"context_line":"                        \"%(upload_name)s on the data store \""},{"line_number":298,"context_line":"                        \"%(data_store_name)s\") %"},{"line_number":299,"context_line":"                        {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":300,"context_line":"                         \u0027upload_name\u0027: upload_name,"},{"line_number":301,"context_line":"                         \u0027data_store_name\u0027: data_store_name},"},{"line_number":302,"context_line":"                      instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2F21U%3D","side":"PARENT","line":299,"updated":"2014-04-09 22:08:33.000000000","message":"ditto with upload_name etc.","commit_id":"4ac717076332c01e16074d48e8f1810eb4e4d7be"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"fac0a1b644dedc446d2a50ba8c7bad5db545b38b","unresolved":false,"context_lines":[{"line_number":296,"context_line":"            LOG.debug(_(\"Downloaded image file data %(image_ref)s to \""},{"line_number":297,"context_line":"                        \"%(upload_name)s on the data store \""},{"line_number":298,"context_line":"                        \"%(data_store_name)s\") %"},{"line_number":299,"context_line":"                        {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":300,"context_line":"                         \u0027upload_name\u0027: upload_name,"},{"line_number":301,"context_line":"                         \u0027data_store_name\u0027: data_store_name},"},{"line_number":302,"context_line":"                      instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2F2mk%3D","side":"PARENT","line":299,"in_reply_to":"AAAAW3%2F%2F21U%3D","updated":"2014-04-09 22:48:11.000000000","message":"You mean like this?\n\nhttps://review.openstack.org/#/c/86442/1/nova/virt/vmwareapi/vmware_images.py","commit_id":"4ac717076332c01e16074d48e8f1810eb4e4d7be"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"64102e2aa65ebb1b279f071a0089184a1aeb6dee","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                    else:"},{"line_number":409,"context_line":"                        upload_file_name \u003d sparse_uploaded_vmdk_name"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"                vmware_images.fetch_image(context,"},{"line_number":412,"context_line":"                                          instance,"},{"line_number":413,"context_line":"                                          host\u003dself._session._host_ip,"},{"line_number":414,"context_line":"                                          data_center_name\u003ddc_info.name,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAXH%2F%2Fbho%3D","line":411,"updated":"2014-04-21 21:03:42.000000000","message":"Where is it tested that this is called from within spawn?","commit_id":"e8a868f7eb1f35c27563bd84ff580ed18d01741b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9c5312b47fe7ccb44c2bf1c16069c6475ac22f16","unresolved":false,"context_lines":[{"line_number":414,"context_line":"                                          dc_name\u003ddc_info.name,"},{"line_number":415,"context_line":"                                          ds_name\u003ddata_store_name,"},{"line_number":416,"context_line":"                                          cookies\u003dcookies,"},{"line_number":417,"context_line":"                                          file_path\u003dupload_file_name)"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"                if not is_iso and disk_type \u003d\u003d \"sparse\":"},{"line_number":420,"context_line":"                    # Copy the sparse virtual disk to a thin virtual disk."}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAXX%2F%2F3gk%3D","line":417,"updated":"2014-04-25 17:09:37.000000000","message":"These should be in order and only cookies should be passed as a keyword argument, based on the function signature.","commit_id":"173b5b6f9675d46b455989d413e7817de366904e"}],"nova/virt/vmwareapi/vmware_images.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0570f3cd6d7905f0af4faba402e3a655025e57b3","unresolved":false,"context_lines":[{"line_number":116,"context_line":"def fetch_image(context, image, instance, **kwargs):"},{"line_number":117,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":118,"context_line":"    LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""},{"line_number":119,"context_line":"                \"data store %(data_store_name)s\") %"},{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2F0ro%3D","line":119,"updated":"2014-04-10 07:09:55.000000000","message":"please use a , instead of the %","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"b5bd05e867a3de8eb2ee8986092141e7f740346c","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":118,"context_line":"    LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""},{"line_number":119,"context_line":"                \"data store %(data_store_name)s\") %"},{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    LOG.debug(_(\"Downloading image %s from glance image server\") % image,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FrZI%3D","line":120,"updated":"2014-04-11 07:48:50.000000000","message":"if we know that the instance contains the image reference, why do we pass \"image\" to this function at all?","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"fd5a8a98d1619d11e01921c36ee85063f214fbc9","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":118,"context_line":"    LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""},{"line_number":119,"context_line":"                \"data store %(data_store_name)s\") %"},{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    LOG.debug(_(\"Downloading image %s from glance image server\") % image,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FnMU%3D","line":120,"in_reply_to":"AAAAW3%2F%2FnXM%3D","updated":"2014-04-11 18:38:07.000000000","message":"Never mind, I\u0027ve just traced this method again in a debugger. There\u0027s no sense at all here.","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"893ba0b42c4a13911c46c43a7c82ca950c6d4bf7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":118,"context_line":"    LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""},{"line_number":119,"context_line":"                \"data store %(data_store_name)s\") %"},{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    LOG.debug(_(\"Downloading image %s from glance image server\") % image,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FnXM%3D","line":120,"in_reply_to":"AAAAW3%2F%2FrZI%3D","updated":"2014-04-11 18:08:36.000000000","message":"See line 125 of this method.","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0570f3cd6d7905f0af4faba402e3a655025e57b3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    LOG.debug(_(\"Downloading image %s from glance image server\") % image,"},{"line_number":124,"context_line":"              instance\u003dinstance)"},{"line_number":125,"context_line":"    (image_service, image_id) \u003d glance.get_remote_image_service(context, image)"},{"line_number":126,"context_line":"    metadata \u003d image_service.show(context, image_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2F0rA%3D","line":123,"updated":"2014-04-10 07:09:55.000000000","message":"do we still need this debug seems to be covered by the one above","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0570f3cd6d7905f0af4faba402e3a655025e57b3","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                file_size)"},{"line_number":137,"context_line":"    start_transfer(context, read_file_handle, file_size,"},{"line_number":138,"context_line":"                   write_file_handle\u003dwrite_file_handle)"},{"line_number":139,"context_line":"    LOG.debug(_(\"Downloaded image %s from glance image server\") % image,"},{"line_number":140,"context_line":"              instance\u003dinstance)"},{"line_number":141,"context_line":"    LOG.debug(_(\"Downloaded image file data %(image_ref)s to \""},{"line_number":142,"context_line":"                \"%(upload_name)s on the data store \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2F0q8%3D","line":139,"updated":"2014-04-10 07:09:55.000000000","message":"ditto regarding the debug print","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0570f3cd6d7905f0af4faba402e3a655025e57b3","unresolved":false,"context_lines":[{"line_number":140,"context_line":"              instance\u003dinstance)"},{"line_number":141,"context_line":"    LOG.debug(_(\"Downloaded image file data %(image_ref)s to \""},{"line_number":142,"context_line":"                \"%(upload_name)s on the data store \""},{"line_number":143,"context_line":"                \"%(data_store_name)s\") %"},{"line_number":144,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":145,"context_line":"               \u0027upload_name\u0027: kwargs.get(\u0027file_path\u0027, \u0027n/a\u0027),"},{"line_number":146,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2F0rg%3D","line":143,"updated":"2014-04-10 07:09:55.000000000","message":"please use a % instead of the %","commit_id":"f34f8cec27408f1ce0503331579751981ba70674"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5bba8a68053723a6e5cc22c3e809975f7db10c5b","unresolved":false,"context_lines":[{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    image_ref \u003d instance.get(\u0027image_ref\u0027)"},{"line_number":124,"context_line":"    (image_service, image_id) \u003d glance.get_remote_image_service(context,"},{"line_number":125,"context_line":"                                                                image_ref)"},{"line_number":126,"context_line":"    metadata \u003d image_service.show(context, image_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2Fjd0%3D","line":123,"updated":"2014-04-12 20:03:36.000000000","message":"Couple things...\n\n1) You make use of the image_ref variable in three places in this function, so probably best to do this assignment above line 118, and then reference image_ref in both the log statements instead of doing instance[\u0027image_ref\u0027] in them.\n\n2) Unless I\u0027m mistaken, instance should be an object, not a DB model/dict-like thing, and therefore you can access the image ref like so:\n\n image_ref \u003d instance.image_ref","commit_id":"e499d6161dd8de19694df08df9c0895f4e2d5dc3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"14f40f5507ef5b78e8cb774053333dea8a4e0605","unresolved":false,"context_lines":[{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    image_ref \u003d instance.get(\u0027image_ref\u0027)"},{"line_number":124,"context_line":"    (image_service, image_id) \u003d glance.get_remote_image_service(context,"},{"line_number":125,"context_line":"                                                                image_ref)"},{"line_number":126,"context_line":"    metadata \u003d image_service.show(context, image_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FfAk%3D","line":123,"in_reply_to":"AAAAW3%2F%2FgDA%3D","updated":"2014-04-14 09:55:00.000000000","message":"Fair enough on #2, Radoslav, agreed. :) Would still like to see #1 addressed, though.","commit_id":"e499d6161dd8de19694df08df9c0895f4e2d5dc3"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"6880fee2c2a679f9521b00659f7febdc8f7d11df","unresolved":false,"context_lines":[{"line_number":120,"context_line":"              {\u0027image_ref\u0027: instance[\u0027image_ref\u0027],"},{"line_number":121,"context_line":"               \u0027data_store_name\u0027: kwargs.get(\u0027datastore_name\u0027, \u0027n/a\u0027)},"},{"line_number":122,"context_line":"              instance\u003dinstance)"},{"line_number":123,"context_line":"    image_ref \u003d instance.get(\u0027image_ref\u0027)"},{"line_number":124,"context_line":"    (image_service, image_id) \u003d glance.get_remote_image_service(context,"},{"line_number":125,"context_line":"                                                                image_ref)"},{"line_number":126,"context_line":"    metadata \u003d image_service.show(context, image_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FgDA%3D","line":123,"in_reply_to":"AAAAW3%2F%2Fjd0%3D","updated":"2014-04-14 07:26:05.000000000","message":"about 2) - we use instance[\u0027foo\u0027] almost everywhere in the driver\n\nthe libvirt driver for example is using all of the following: instance[\u0027foo\u0027], instance.get(\u0027foo\u0027), instance.foo\n\nIf we are going to address this, I prefer to do that in a dedicated patch for the entire driver.","commit_id":"e499d6161dd8de19694df08df9c0895f4e2d5dc3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"216963f783c362c1067a53a7a91fbd6591286db7","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                kwargs.get(\"data_center_name\"),"},{"line_number":133,"context_line":"                                kwargs.get(\"datastore_name\"),"},{"line_number":134,"context_line":"                                kwargs.get(\"cookies\"),"},{"line_number":135,"context_line":"                                kwargs.get(\"file_path\"),"},{"line_number":136,"context_line":"                                file_size)"},{"line_number":137,"context_line":"    start_transfer(context, read_file_handle, file_size,"},{"line_number":138,"context_line":"                   write_file_handle\u003dwrite_file_handle)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXH%2F%2F3oM%3D","line":135,"updated":"2014-04-16 19:48:57.000000000","message":"I know this was existing code, but if there are a fixed set of optional parameters that default to None (which is what you have here) then they should be called out instead of using **kwargs as a shortcut, IMHO.","commit_id":"d593097d041c97334b466b0a5cbe808add78d178"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"64102e2aa65ebb1b279f071a0089184a1aeb6dee","unresolved":false,"context_lines":[{"line_number":113,"context_line":"              instance\u003dinstance)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def fetch_image(context, instance, **kwargs):"},{"line_number":117,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":118,"context_line":"    image_ref \u003d instance[\u0027image_ref\u0027]"},{"line_number":119,"context_line":"    LOG.debug(_(\"Downloading image file data %(image_ref)s to the \""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAXH%2F%2FbhM%3D","line":116,"updated":"2014-04-21 21:03:42.000000000","message":"I see no new or changed unit tests for this. Is that because it\u0027s covered by a test that stubs the world and all the same service calls are made? If so, I\u0027d like to see those tests refactored to use mock so that we can make sure this gets tested thoroughly.","commit_id":"e8a868f7eb1f35c27563bd84ff580ed18d01741b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"64102e2aa65ebb1b279f071a0089184a1aeb6dee","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    host \u003d kwargs.get(\"host\")"},{"line_number":132,"context_line":"    dc_name \u003d kwargs.get(\"data_center_name\")"},{"line_number":133,"context_line":"    ds_name \u003d kwargs.get(\"datastore_name\")"},{"line_number":134,"context_line":"    cookies \u003d kwargs.get(\"cookies\")"},{"line_number":135,"context_line":"    file_path \u003d kwargs.get(\"file_path\")"},{"line_number":136,"context_line":"    write_file_handle \u003d read_write_util.VMwareHTTPWriteFile("},{"line_number":137,"context_line":"        host,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAXH%2F%2Fbi4%3D","line":134,"updated":"2014-04-21 21:03:42.000000000","message":"Don\u0027t do this, use actual keyword arguments to the method. I think I said this before, so it might\u0027ve gotten lost.","commit_id":"e8a868f7eb1f35c27563bd84ff580ed18d01741b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"64102e2aa65ebb1b279f071a0089184a1aeb6dee","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        ds_name,"},{"line_number":140,"context_line":"        cookies,"},{"line_number":141,"context_line":"        file_path,"},{"line_number":142,"context_line":"        file_size)"},{"line_number":143,"context_line":"    start_transfer(context, read_file_handle, file_size,"},{"line_number":144,"context_line":"                   write_file_handle\u003dwrite_file_handle)"},{"line_number":145,"context_line":"    LOG.debug(_(\"Downloaded image file data %(image_ref)s to \""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAXH%2F%2FbiY%3D","line":142,"updated":"2014-04-21 21:03:42.000000000","message":"I\u0027ve seen this in several other patches in this series, but this is not our style. Wrap when you need to, not explicitly like this. This is at most two lines if properly packed.","commit_id":"e8a868f7eb1f35c27563bd84ff580ed18d01741b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9c5312b47fe7ccb44c2bf1c16069c6475ac22f16","unresolved":false,"context_lines":[{"line_number":113,"context_line":"              instance\u003dinstance)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def fetch_image(context, instance, host, dc_name, ds_name, file_path,"},{"line_number":117,"context_line":"                cookies\u003dNone):"},{"line_number":118,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":119,"context_line":"    image_ref \u003d instance[\u0027image_ref\u0027]"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAXX%2F%2F3e4%3D","line":116,"updated":"2014-04-25 17:09:37.000000000","message":"It doesn\u0027t look like we have any specific unit tests for this function, aside from things that test it as part of other calls. I think we should have at least one standalone test.","commit_id":"173b5b6f9675d46b455989d413e7817de366904e"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"75d587289ea1be7b51c71e491f2622c9e8728805","unresolved":false,"context_lines":[{"line_number":113,"context_line":"              instance\u003dinstance)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def fetch_image(context, instance, host, dc_name, ds_name, file_path,"},{"line_number":117,"context_line":"                cookies\u003dNone):"},{"line_number":118,"context_line":"    \"\"\"Download image from the glance image server.\"\"\""},{"line_number":119,"context_line":"    image_ref \u003d instance[\u0027image_ref\u0027]"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAXX%2F%2F1q8%3D","line":116,"in_reply_to":"AAAAXX%2F%2F3e4%3D","updated":"2014-04-25 21:13:53.000000000","message":"you are right - it does get called by create_vm.  I will add explicit tests","commit_id":"173b5b6f9675d46b455989d413e7817de366904e"}]}
