)]}'
{"cinder/tests/test_vmware_vmdk.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7c512a2999f48bbe023602bac4a7158930060769","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        size \u003d volume[\u0027size\u0027] * units.Gi"},{"line_number":436,"context_line":"        driver._select_datastore_summary.assert_called_once_with(size, dss)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    @mock.patch(\u0027cinder.volume.volume_types.get_volume_type_extra_specs\u0027)"},{"line_number":439,"context_line":"    def test_get_disk_type(self, get_volume_type_extra_specs):"},{"line_number":440,"context_line":"        \"\"\"Test _get_disk_type.\"\"\""},{"line_number":441,"context_line":"        # Test with no volume type."}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_22ada6e9","line":438,"updated":"2015-02-26 08:06:30.000000000","message":"What about adding a unit test for get_adapter_type()?","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"18cafd29491bd8016a581ddbe730c9dd88a82290","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        size \u003d volume[\u0027size\u0027] * units.Gi"},{"line_number":436,"context_line":"        driver._select_datastore_summary.assert_called_once_with(size, dss)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    @mock.patch(\u0027cinder.volume.volume_types.get_volume_type_extra_specs\u0027)"},{"line_number":439,"context_line":"    def test_get_disk_type(self, get_volume_type_extra_specs):"},{"line_number":440,"context_line":"        \"\"\"Test _get_disk_type.\"\"\""},{"line_number":441,"context_line":"        # Test with no volume type."}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_e44701ba","line":438,"in_reply_to":"ba7be1f8_22ada6e9","updated":"2015-02-26 18:06:07.000000000","message":"Done","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"1a95a55d3be9689e477b7eacbc23a624f54ba839","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        self.assertEqual(volumeops.VirtualDiskAdapterType.LSI_LOGIC,"},{"line_number":468,"context_line":"                         vmdk.VMwareEsxVmdkDriver._get_adapter_type(volume))"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        # Test with valid vmdk_type."},{"line_number":471,"context_line":"        volume_type_id \u003d mock.sentinel.volume_type_id"},{"line_number":472,"context_line":"        volume \u003d {\u0027volume_type_id\u0027: volume_type_id}"},{"line_number":473,"context_line":"        get_volume_type_extra_specs.return_value \u003d \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_bbfd4370","line":470,"updated":"2015-03-09 23:12:21.000000000","message":"Please fix the comment.","commit_id":"39f030b766f09f2eeec93cd283c47d6e3f6fd411"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"1a95a55d3be9689e477b7eacbc23a624f54ba839","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        get_volume_type_extra_specs.assert_called_once_with("},{"line_number":479,"context_line":"            volume_type_id, \u0027vmware:adapter_type\u0027)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        # Test with invalid vmdk_type."},{"line_number":482,"context_line":"        get_volume_type_extra_specs.return_value \u003d \u0027foobar\u0027"},{"line_number":483,"context_line":"        self.assertRaises(vmdk_exceptions.InvalidAdapterTypeException,"},{"line_number":484,"context_line":"                          vmdk.VMwareEsxVmdkDriver._get_adapter_type, volume)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_db003768","line":481,"updated":"2015-03-09 23:12:21.000000000","message":"Please fix the comment.","commit_id":"39f030b766f09f2eeec93cd283c47d6e3f6fd411"}],"cinder/volume/drivers/vmware/vmdk.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7c512a2999f48bbe023602bac4a7158930060769","unresolved":false,"context_lines":[{"line_number":52,"context_line":"THIN_VMDK_TYPE \u003d \u0027thin\u0027"},{"line_number":53,"context_line":"THICK_VMDK_TYPE \u003d \u0027thick\u0027"},{"line_number":54,"context_line":"EAGER_ZEROED_THICK_VMDK_TYPE \u003d \u0027eagerZeroedThick\u0027"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"CREATE_PARAM_ADAPTER_TYPE \u003d \u0027adapter_type\u0027"},{"line_number":57,"context_line":"CREATE_PARAM_DISK_LESS \u003d \u0027disk_less\u0027"},{"line_number":58,"context_line":"CREATE_PARAM_BACKING_NAME \u003d \u0027name\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_3f769f06","line":55,"updated":"2015-02-26 08:06:30.000000000","message":"Please remove this constant.","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7c512a2999f48bbe023602bac4a7158930060769","unresolved":false,"context_lines":[{"line_number":1323,"context_line":""},{"line_number":1324,"context_line":"        try:"},{"line_number":1325,"context_line":"            # validate disk and adapter types in image meta-data"},{"line_number":1326,"context_line":"            ImageDiskType.validate(image_disk_type)"},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"            if image_disk_type \u003d\u003d ImageDiskType.STREAM_OPTIMIZED:"},{"line_number":1329,"context_line":"                self._fetch_stream_optimized_image(context, volume,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_dfb82377","line":1326,"updated":"2015-02-26 08:06:30.000000000","message":"What about moving this after line 1319?","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"18cafd29491bd8016a581ddbe730c9dd88a82290","unresolved":false,"context_lines":[{"line_number":1323,"context_line":""},{"line_number":1324,"context_line":"        try:"},{"line_number":1325,"context_line":"            # validate disk and adapter types in image meta-data"},{"line_number":1326,"context_line":"            ImageDiskType.validate(image_disk_type)"},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"            if image_disk_type \u003d\u003d ImageDiskType.STREAM_OPTIMIZED:"},{"line_number":1329,"context_line":"                self._fetch_stream_optimized_image(context, volume,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_044335af","line":1326,"in_reply_to":"ba7be1f8_dfb82377","updated":"2015-02-26 18:06:07.000000000","message":"Done","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7c512a2999f48bbe023602bac4a7158930060769","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"    def _in_use(self, volume):"},{"line_number":1415,"context_line":"        \"\"\"Check if the given volume is in use.\"\"\""},{"line_number":1416,"context_line":"        return volume[\u0027instance_uuid\u0027] is not None"},{"line_number":1417,"context_line":""},{"line_number":1418,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":1419,"context_line":"        \"\"\"Convert the volume to be of the new type."},{"line_number":1420,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_bf11af5e","line":1417,"updated":"2015-02-26 08:06:30.000000000","message":"Missed adapter type change due to retype.","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"18cafd29491bd8016a581ddbe730c9dd88a82290","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"    def _in_use(self, volume):"},{"line_number":1415,"context_line":"        \"\"\"Check if the given volume is in use.\"\"\""},{"line_number":1416,"context_line":"        return volume[\u0027instance_uuid\u0027] is not None"},{"line_number":1417,"context_line":""},{"line_number":1418,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":1419,"context_line":"        \"\"\"Convert the volume to be of the new type."},{"line_number":1420,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_2415999b","line":1417,"in_reply_to":"ba7be1f8_bf11af5e","updated":"2015-02-26 18:06:07.000000000","message":"Done","commit_id":"a75dd76399ce7ec58aabf91134248c0f3e8e02e2"}],"cinder/volume/drivers/vmware/volumeops.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5fe8e6fd90b719f7986c0ba29f015bae26ea75e5","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"        config_spec \u003d cf.create(\u0027ns0:VirtualMachineConfigSpec\u0027)"},{"line_number":1146,"context_line":"        config_specs \u003d []"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"        # Find the existing SCSI controller to remove, then attach a new"},{"line_number":1149,"context_line":"        # SCSI controller of the desired adapter type"},{"line_number":1150,"context_line":"        hardware_devices \u003d self._session.invoke_api(vim_util,"},{"line_number":1151,"context_line":"                                                    \u0027get_object_property\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_5e64f1e4","line":1148,"updated":"2015-02-27 13:18:43.000000000","message":"I think we should extract this to a utility method like _get_disk_device.","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"b2459c706c0430c70f93088a0e1ee8bac93d12de","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"        config_spec \u003d cf.create(\u0027ns0:VirtualMachineConfigSpec\u0027)"},{"line_number":1146,"context_line":"        config_specs \u003d []"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"        # Find the existing SCSI controller to remove, then attach a new"},{"line_number":1149,"context_line":"        # SCSI controller of the desired adapter type"},{"line_number":1150,"context_line":"        hardware_devices \u003d self._session.invoke_api(vim_util,"},{"line_number":1151,"context_line":"                                                    \u0027get_object_property\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_b21232b2","line":1148,"in_reply_to":"ba7be1f8_5e64f1e4","updated":"2015-03-02 16:03:33.000000000","message":"Done","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5fe8e6fd90b719f7986c0ba29f015bae26ea75e5","unresolved":false,"context_lines":[{"line_number":1161,"context_line":"                remove_config_spec.operation \u003d \"remove\""},{"line_number":1162,"context_line":"                remove_config_spec.device \u003d device"},{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_becfadb2","line":1164,"updated":"2015-02-27 13:18:43.000000000","message":"There is always a default IDE controller. So this code may not remove the desired controller always.\n\nAlso, we shouldn\u0027t remove the default IDE controller because we may have to use it again (see the comment below).","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"b2459c706c0430c70f93088a0e1ee8bac93d12de","unresolved":false,"context_lines":[{"line_number":1161,"context_line":"                remove_config_spec.operation \u003d \"remove\""},{"line_number":1162,"context_line":"                remove_config_spec.device \u003d device"},{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_92444eb8","line":1164,"in_reply_to":"ba7be1f8_becfadb2","updated":"2015-03-02 16:03:33.000000000","message":"Done","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5fe8e6fd90b719f7986c0ba29f015bae26ea75e5","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_d34e1a96","line":1166,"updated":"2015-02-27 13:18:43.000000000","message":"I think, for IDE, we should use the default IDE controller. Creating an IDE controller like this will fail. Please test this once before you update this code to use default IDE controller. Also, see line 648.","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4814c5a8b10611ec5e99ddb79013c97e0a163ca5","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_28828c4f","line":1166,"in_reply_to":"9a80dd14_5f04017e","updated":"2015-03-05 09:16:27.000000000","message":"In vSphere web client:\n\nEdit Settings -\u003e Hard disk 1 -\u003e Virtual Device Node -\u003e Select IDE radio button","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"0cabd5b5993f3ea34ed845b2ab88b1090adc43ae","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_5f04017e","line":1166,"in_reply_to":"9a80dd14_f09ed162","updated":"2015-03-04 14:35:11.000000000","message":"How did you do it?","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"b2459c706c0430c70f93088a0e1ee8bac93d12de","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_72499acf","line":1166,"in_reply_to":"ba7be1f8_d34e1a96","updated":"2015-03-02 16:03:33.000000000","message":"Done","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"d3b9180ce47d396f1fdb354883d8ddea1b6ec806","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_fb01e26a","line":1166,"in_reply_to":"ba7be1f8_d34e1a96","updated":"2015-03-02 17:39:53.000000000","message":"I tested out retyping SCSI to IDE and it failed.  I do not believe you can retype a disk that was SCSI to IDE.  I was getting this error:\n\nVMwareDriverException: Incompatible device backing specified for device \u00271\u0027.","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"801aecc04756650e1c4a8885ec581b47a62a912b","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                config_specs.append(remove_config_spec)"},{"line_number":1164,"context_line":"                break"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":"        add_config_spec \u003d self._create_controller_config_spec(adapter_type)"},{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_f09ed162","line":1166,"in_reply_to":"ba7be1f8_fb01e26a","updated":"2015-03-04 09:54:21.000000000","message":"I\u0027m able to do this from vSphere client, therefore it is possible using vSphere API.","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5fe8e6fd90b719f7986c0ba29f015bae26ea75e5","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""},{"line_number":1170,"context_line":"        reconfig_task \u003d self._session.invoke_api(self._session.vim,"},{"line_number":1171,"context_line":"                                                 \"ReconfigVM_Task\","},{"line_number":1172,"context_line":"                                                 backing,"},{"line_number":1173,"context_line":"                                                 spec\u003dconfig_spec)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_53214ab3","line":1170,"updated":"2015-02-27 13:18:43.000000000","message":"We need to update the disk device\u0027s controller key.","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"b2459c706c0430c70f93088a0e1ee8bac93d12de","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"        config_specs.append(add_config_spec)"},{"line_number":1168,"context_line":"        config_spec.deviceChange \u003d config_specs"},{"line_number":1169,"context_line":""},{"line_number":1170,"context_line":"        reconfig_task \u003d self._session.invoke_api(self._session.vim,"},{"line_number":1171,"context_line":"                                                 \"ReconfigVM_Task\","},{"line_number":1172,"context_line":"                                                 backing,"},{"line_number":1173,"context_line":"                                                 spec\u003dconfig_spec)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_523ad634","line":1170,"in_reply_to":"ba7be1f8_53214ab3","updated":"2015-03-02 16:03:33.000000000","message":"Done","commit_id":"a6810e4e5a58275aeff56869e7113cfeae8a2120"}]}
