)]}'
{"nova/tests/virt/vmwareapi/test_driver_api.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d62d12c3c727ca7f51af2857b744b56e1a53b87b","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                self._check_vm_create_spec_with_ide_controller("},{"line_number":461,"context_line":"                    kwargs.get(\"config\"))"},{"line_number":462,"context_line":"            return task_ref"},{"line_number":463,"context_line":"        self.stubs.Set(self.conn._session, \"_call_method\", fake_call_method)"},{"line_number":464,"context_line":"        node \u003d self.node_name"},{"line_number":465,"context_line":"        self._create_instance_in_the_db(node\u003dnode)"},{"line_number":466,"context_line":"        self.type_data \u003d db.flavor_get_by_name(None, \u0027m1.large\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BYp8%3D","line":463,"updated":"2014-02-21 13:53:54.000000000","message":"can you please use mock here instead. please see https://github.com/openstack/nova/blob/master/nova/tests/virt/vmwareapi/test_driver_api.py#L495","commit_id":"90664dc8fbef6fb8bdb7a1a448ee18946bbb8511"},{"author":{"_account_id":9046,"name":"Maithem","email":"munshedm@vmware.com","username":"Maithem"},"change_message_id":"9211c976b0b9edc12086758e769655c699e9423e","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                self._check_vm_create_spec_with_ide_controller("},{"line_number":461,"context_line":"                    kwargs.get(\"config\"))"},{"line_number":462,"context_line":"            return task_ref"},{"line_number":463,"context_line":"        self.stubs.Set(self.conn._session, \"_call_method\", fake_call_method)"},{"line_number":464,"context_line":"        node \u003d self.node_name"},{"line_number":465,"context_line":"        self._create_instance_in_the_db(node\u003dnode)"},{"line_number":466,"context_line":"        self.type_data \u003d db.flavor_get_by_name(None, \u0027m1.large\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAU3%2F%2F6cE%3D","line":463,"in_reply_to":"AAAAUX%2F%2BYp8%3D","updated":"2014-02-24 04:51:05.000000000","message":"Done","commit_id":"90664dc8fbef6fb8bdb7a1a448ee18946bbb8511"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"72d197c95d4013ca7ec5afee60ad18f4f6511798","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                    kwargs.get(\"config\"))"},{"line_number":466,"context_line":"            return task_ref"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        node \u003d self.node_name"},{"line_number":469,"context_line":"        self._create_instance_in_the_db(node\u003dnode)"},{"line_number":470,"context_line":"        self.type_data \u003d db.flavor_get_by_name(None, \u0027m1.large\u0027)"},{"line_number":471,"context_line":"        ret_val \u003d (vmwareapi_fake._FAKE_FILE_SIZE, image_prop)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAU3%2F%2F49w%3D","line":468,"updated":"2014-02-24 09:25:38.000000000","message":"redundant -- \u0027node\u0027 is already assigned on line 452","commit_id":"8dd789c04bd12ab97fe69af2a0d54e078cfa45b0"}],"nova/tests/virt/vmwareapi/test_vm_util.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"68a6b9abab7087400497a0ab626095cb4b9df3e4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                and operation \u003d\u003d \"add\""},{"line_number":71,"context_line":"                and device.key \u003d\u003d -101):"},{"line_number":72,"context_line":"                scsi_controller_added \u003d True"},{"line_number":73,"context_line":"        self.assertEqual(True, scsi_controller_added)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def test_get_datastore_ref_and_name(self):"},{"line_number":76,"context_line":"        fake_objects \u003d fake.FakeRetrieveResult()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2B2d0%3D","line":73,"updated":"2014-01-21 12:53:00.000000000","message":"Please use self.assertTrue(scsi_controller_added)","commit_id":"d961a8d8f71799004c451d07abcd34be834ba999"},{"author":{"_account_id":9046,"name":"Maithem","email":"munshedm@vmware.com","username":"Maithem"},"change_message_id":"c9c870c4094d2a98581667bd9865c087b0f3830c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                and operation \u003d\u003d \"add\""},{"line_number":71,"context_line":"                and device.key \u003d\u003d -101):"},{"line_number":72,"context_line":"                scsi_controller_added \u003d True"},{"line_number":73,"context_line":"        self.assertEqual(True, scsi_controller_added)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def test_get_datastore_ref_and_name(self):"},{"line_number":76,"context_line":"        fake_objects \u003d fake.FakeRetrieveResult()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BRxE%3D","line":73,"in_reply_to":"AAAAUH%2F%2B2d0%3D","updated":"2014-01-28 13:26:32.000000000","message":"Done","commit_id":"d961a8d8f71799004c451d07abcd34be834ba999"}],"nova/tests/virt/vmwareapi/test_vmwareapi_vm_util.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bf2b113677bfe2acfc12a4c40d55106353ef05cd","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def test_get_vm_create_spec_with_ide_controller(self):"},{"line_number":54,"context_line":"        client_factory \u003d fake.FakeFactory()"},{"line_number":55,"context_line":"        instance \u003d {\u0027uuid\u0027: \u0027bda5fb9e-b347-40e8-8256-42397848cb00\u0027,"},{"line_number":56,"context_line":"                         \u0027vcpus\u0027: 2, \u0027memory_mb\u0027: 2048}"},{"line_number":57,"context_line":"        vif_info \u003d {\u0027vif_model\u0027: \u0027e1000\u0027, \u0027network_ref\u0027: None,"},{"line_number":58,"context_line":"                    \u0027network_name\u0027: \u0027fake_network\u0027, \u0027type\u0027: None,"},{"line_number":59,"context_line":"                    \u0027mac_address\u0027: \u0027DE:AD:BE:EF:00:00\u0027, \u0027iface_id\u0027: None}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FT4w%3D","line":56,"updated":"2014-01-15 06:53:38.000000000","message":"indentation here is a little odd","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bf2b113677bfe2acfc12a4c40d55106353ef05cd","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        for deviceConfig in rs_spec.deviceChange:"},{"line_number":66,"context_line":"            device \u003d deviceConfig.device"},{"line_number":67,"context_line":"            operation \u003d deviceConfig.operation"},{"line_number":68,"context_line":"            if device.obj_name \u003d\u003d \"ns0:VirtualLsiLogicController\" and \\"},{"line_number":69,"context_line":"            operation \u003d\u003d \"add\" and device.key \u003d\u003d -101:"},{"line_number":70,"context_line":"                scsi_controller_added \u003d True"},{"line_number":71,"context_line":"        self.assertEqual(True, scsi_controller_added)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FT4c%3D","line":68,"updated":"2014-01-15 06:53:38.000000000","message":"can you please write this without the \\\nif (device.obj_name ....\n    .... and devive.key \u003d\u003d -101):","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bf2b113677bfe2acfc12a4c40d55106353ef05cd","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self.assertEqual(\u0027lsiLogicsas\u0027, adapter_type)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def test_get_vmdk_path_and_adapter_type_with_ide_controller(self):"},{"line_number":326,"context_line":"        #Test if a scsi controller is returned if the primary disk is"},{"line_number":327,"context_line":"        #attached to an ide controller"},{"line_number":328,"context_line":"        controller_key \u003d 200"},{"line_number":329,"context_line":"        scsi_controller_key \u003d 1000"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FT4Y%3D","line":326,"updated":"2014-01-15 06:53:38.000000000","message":"please add a space after #","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"}],"nova/virt/vmwareapi/vm_util.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bf2b113677bfe2acfc12a4c40d55106353ef05cd","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    device_config_spec \u003d vif_spec_list"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    #Add scsi controller for VMs with their primary"},{"line_number":88,"context_line":"    #disk connected to an ide controller, for hot adding"},{"line_number":89,"context_line":"    if adapter_type \u003d\u003d \"ide\":"},{"line_number":90,"context_line":"        key \u003d -101"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FT5Q%3D","line":87,"updated":"2014-01-15 06:53:38.000000000","message":"minor nit - space after the #","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bf2b113677bfe2acfc12a4c40d55106353ef05cd","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    #Add scsi controller for VMs with their primary"},{"line_number":88,"context_line":"    #disk connected to an ide controller, for hot adding"},{"line_number":89,"context_line":"    if adapter_type \u003d\u003d \"ide\":"},{"line_number":90,"context_line":"        key \u003d -101"},{"line_number":91,"context_line":"        scsi_controller \u003d create_controller_spec(client_factory, key,"},{"line_number":92,"context_line":"                                                 adapter_type\u003d\"lsiLogic\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FT5Y%3D","line":89,"updated":"2014-01-15 06:53:38.000000000","message":"Maybe we should consider adding in defines for various adapter types.","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"41af274401d81fd5d5fe08f97d1903658ae0764b","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        hardware_devices \u003d hardware_devices.VirtualDevice"},{"line_number":309,"context_line":"    vmdk_file_path \u003d None"},{"line_number":310,"context_line":"    vmdk_controller_key \u003d None"},{"line_number":311,"context_line":"    scsi_controller_key \u003d None"},{"line_number":312,"context_line":"    disk_type \u003d None"},{"line_number":313,"context_line":"    unit_number \u003d 0"},{"line_number":314,"context_line":"    scsi_unit_number \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FTsY%3D","line":311,"updated":"2014-01-15 08:04:22.000000000","message":"returning a controller_key and unit_number from this function is something that we want to fix, please take a look at https://review.openstack.org/#/c/66523/","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"41af274401d81fd5d5fe08f97d1903658ae0764b","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    adapter_type \u003d adapter_type_dict.get(vmdk_controller_key, \"\")"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    if adapter_type \u003d\u003d \"ide\":"},{"line_number":345,"context_line":"        adapter_type \u003d \"lsiLogic\""},{"line_number":346,"context_line":"        vmdk_controller_key \u003d scsi_controller_key"},{"line_number":347,"context_line":"        unit_number \u003d scsi_unit_number"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FTss%3D","line":344,"updated":"2014-01-15 08:04:22.000000000","message":"this is pretty ugly hack; this function is supposed to return the type of the adapter which has the vmdk and you are effectively changing the contract here","commit_id":"871cc51d136fe2402f6151c7ad0cc31abb64a6ed"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"b58d22c08fcddef148f886391ca52ebd9c9d04be","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_vm_create_spec(client_factory, instance, name, data_store_name,"},{"line_number":55,"context_line":"                       vif_infos, adapter_type\u003dNone, os_type\u003d\"otherGuest\"):"},{"line_number":56,"context_line":"    \"\"\"Builds the VM Create spec.\"\"\""},{"line_number":57,"context_line":"    config_spec \u003d client_factory.create(\u0027ns0:VirtualMachineConfigSpec\u0027)"},{"line_number":58,"context_line":"    config_spec.name \u003d name"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9%2FIA%3D","line":55,"updated":"2014-01-31 10:21:34.000000000","message":"you need to fix the spawn() method to pass the adapter_type here","commit_id":"e809cc998e88d922e331bc60e1639e27f2c00843"},{"author":{"_account_id":9046,"name":"Maithem","email":"munshedm@vmware.com","username":"Maithem"},"change_message_id":"df286b7981d6c70de9bdee9ee555e9d4ba6c2686","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_vm_create_spec(client_factory, instance, name, data_store_name,"},{"line_number":55,"context_line":"                       vif_infos, adapter_type\u003dNone, os_type\u003d\"otherGuest\"):"},{"line_number":56,"context_line":"    \"\"\"Builds the VM Create spec.\"\"\""},{"line_number":57,"context_line":"    config_spec \u003d client_factory.create(\u0027ns0:VirtualMachineConfigSpec\u0027)"},{"line_number":58,"context_line":"    config_spec.name \u003d name"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9w9E%3D","line":55,"in_reply_to":"AAAAUH%2F9%2FIA%3D","updated":"2014-02-04 07:27:57.000000000","message":"Good catch...Done","commit_id":"e809cc998e88d922e331bc60e1639e27f2c00843"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ad55b46432a708c3ebc3a559cf07e4107d0b4438","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        key \u003d -101"},{"line_number":148,"context_line":"        scsi_controller \u003d create_controller_spec(client_factory, key,"},{"line_number":149,"context_line":"                                                 adapter_type\u003d\"lsiLogic\")"},{"line_number":150,"context_line":"        device_config_spec.append(scsi_controller)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    config_spec.deviceChange \u003d device_config_spec"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FeyQ%3D","line":150,"updated":"2014-02-26 11:36:54.000000000","message":"I\u0027m not really convinced this should be done. IMHO if the user has specified \u0027ide\u0027 as their desired disk adapter type, then they have consciously opted out of using hotplug, and we shouldn\u0027t silently add another SCSI adapter behind their back.\n\nThis same limitation of hotplug wrt IDE exists for the libvirt driver too, and most likely for XenAPI too. So I don\u0027t think we should treat vmware specially in this respect either","commit_id":"626d458f17a58ad0eb2f39ec33c5944148d35abb"},{"author":{"_account_id":9046,"name":"Maithem","email":"munshedm@vmware.com","username":"Maithem"},"change_message_id":"e21fab5e3ba38b5e6af69dd0626cf424dd10b1b0","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        key \u003d -101"},{"line_number":148,"context_line":"        scsi_controller \u003d create_controller_spec(client_factory, key,"},{"line_number":149,"context_line":"                                                 adapter_type\u003d\"lsiLogic\")"},{"line_number":150,"context_line":"        device_config_spec.append(scsi_controller)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    config_spec.deviceChange \u003d device_config_spec"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVX%2F%2F14k%3D","line":150,"in_reply_to":"AAAAU3%2F%2FeyQ%3D","updated":"2014-02-27 22:17:40.000000000","message":"Daniel thanks for sharing you honest opinion. It does raise valid questions, but doesn’t hold solid grounds for the following reasons:\n\n1.\t The adapter_type parameter is not directly controlled by the user to “choose”, which IDE type they want, this is done at the time an image is created and uploaded to glance. What if a service provider has a catalog of 100s of images that have an ide adapter type, while the guest OS  supports scsi and they want the hot adding feature. Should the service provider recreate all of the images, just to change one parameter from ide to lsiLogic?\n\n2.\tThis isn’t a “special accommodation” for the VC driver. Different drivers have different behavior. The contract between the drivers and nova-compute , is to respect the API defined here: https://github.com/openstack/nova/blob/master/nova/virt/driver.py . This change doesn’t break the contract. It doesn’t make sense to have all the drivers with similar internal implementations, since the underlying technology is different for each hypervisor.\n\n3.\tIf you don’t want users hot adding disks, then there are other means to enforce this. You shouldn’t be using the ide adapter type limitations to enforce such policy. \n\n4.\tAdding a SCSI adds value and doesn’t do harm, since the primary/root disk is still attached to an IDE controller.\n\n5.\tIf you feel that there is a strong use case for other drivers to have similar functionally, please propose to add it\n\nRegards,\n\nMaithem","commit_id":"626d458f17a58ad0eb2f39ec33c5944148d35abb"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"e0fa3db356dc48fd7773a02dc54d44c4ab42b026","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        key \u003d -101"},{"line_number":148,"context_line":"        scsi_controller \u003d create_controller_spec(client_factory, key,"},{"line_number":149,"context_line":"                                                 adapter_type\u003d\"lsiLogic\")"},{"line_number":150,"context_line":"        device_config_spec.append(scsi_controller)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    config_spec.deviceChange \u003d device_config_spec"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVX%2F%2F2HY%3D","line":150,"in_reply_to":"AAAAU3%2F%2FeyQ%3D","updated":"2014-02-28 22:04:24.000000000","message":"I\u0027m going to agree here.\n\nMainly because you said \"ide\" at some point and it we have no idea if your guest OS even supports an lsiLogic SCSI board. (Highly unlikely, I know... but what if they are running an old DOS for some pedantic reason.)\n\nhttp://kb.vmware.com/selfservice/microsites/search.do?language\u003den_US\u0026cmd\u003ddisplayKC\u0026externalId\u003d1025883\n\nI might prefer to see an error like HotPlugOnIDENotSupported raised from this point.","commit_id":"626d458f17a58ad0eb2f39ec33c5944148d35abb"}],"nova/virt/vmwareapi/volumeops.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"72d197c95d4013ca7ec5afee60ad18f4f6511798","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # Attach the disk to virtual machine instance"},{"line_number":219,"context_line":"        # Hot adding disks to ide controllers isn\u0027t"},{"line_number":220,"context_line":"        # supported, always attach to a scsi controller"},{"line_number":221,"context_line":"        self.attach_disk_to_vm(vm_ref, instance, \u0027lsiLogic\u0027,"},{"line_number":222,"context_line":"                               disk_type, vmdk_path\u003dvolume_vmdk_path)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # Store the uuid of the volume_device"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAU3%2F%2F4wQ%3D","line":221,"updated":"2014-02-24 09:25:38.000000000","message":"what if the primary disk is attached on lsiLogicSAS controller? does hot adding work there?","commit_id":"8dd789c04bd12ab97fe69af2a0d54e078cfa45b0"},{"author":{"_account_id":9046,"name":"Maithem","email":"munshedm@vmware.com","username":"Maithem"},"change_message_id":"827a507d37a548ff53112835cec4ff3b8cb444be","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # Attach the disk to virtual machine instance"},{"line_number":219,"context_line":"        # Hot adding disks to ide controllers isn\u0027t"},{"line_number":220,"context_line":"        # supported, always attach to a scsi controller"},{"line_number":221,"context_line":"        self.attach_disk_to_vm(vm_ref, instance, \u0027lsiLogic\u0027,"},{"line_number":222,"context_line":"                               disk_type, vmdk_path\u003dvolume_vmdk_path)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # Store the uuid of the volume_device"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAU3%2F%2FiEY%3D","line":221,"in_reply_to":"AAAAU3%2F%2F4wQ%3D","updated":"2014-02-26 03:52:46.000000000","message":"I tried it with: lsiLogic, busLogic and lsiLogicsas, it seems to be working fine.","commit_id":"8dd789c04bd12ab97fe69af2a0d54e078cfa45b0"}]}
