)]}'
{"nova/tests/virt/hyperv/test_vmutils.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"065bc533d71b92973ca505fb19c319a6106b7641","unresolved":false,"context_lines":[{"line_number":531,"context_line":"        self._vmutils._modify_virt_resource.assert_called_with("},{"line_number":532,"context_line":"            mock_rasds[0], self._FAKE_VM_PATH)"},{"line_number":533,"context_line":"        self.assertEqual("},{"line_number":534,"context_line":"            mock_rasds[0].HostResource[0], fake_new_mounted_disk_path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_137ae3f0","line":534,"updated":"2014-08-28 15:40:44.000000000","message":"self.assertEqual has signature\n assertEqual(expected, actual)\nso it\u0027s better to use\n self.assertEqual(fake_new_mounted_disk_path, mock_rasds[0].HostResource[0])","commit_id":"58031630523647bb7943b4ba1f73c4f30271057b"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"b64d373d20a1c0fea6568cebb186c42990a6d6d4","unresolved":false,"context_lines":[{"line_number":531,"context_line":"        self._vmutils._modify_virt_resource.assert_called_with("},{"line_number":532,"context_line":"            mock_rasds[0], self._FAKE_VM_PATH)"},{"line_number":533,"context_line":"        self.assertEqual("},{"line_number":534,"context_line":"            mock_rasds[0].HostResource[0], fake_new_mounted_disk_path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_e8dba9ea","line":534,"in_reply_to":"1abeadc6_137ae3f0","updated":"2014-08-28 21:25:39.000000000","message":"Done","commit_id":"58031630523647bb7943b4ba1f73c4f30271057b"}],"nova/virt/hyperv/vmutils.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c605d37beabe1b8e5e0eae5f6350512f49a78294","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        self._add_virt_resource(diskdrive, vm.path_())"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"    def _get_disk_resource_address(self, disk_resource):"},{"line_number":361,"context_line":"        return disk_resource.Address"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def set_disk_host_resource(self, vm_name, controller_path, address,"},{"line_number":364,"context_line":"                               mounted_disk_path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_fc80808d","line":361,"updated":"2014-05-25 19:43:40.000000000","message":"I\u0027m not entirely sure this helper method helps all that much :)","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"dc616ab9f5a5aedb46007bff441bbd4daa3816db","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        self._add_virt_resource(diskdrive, vm.path_())"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"    def _get_disk_resource_address(self, disk_resource):"},{"line_number":361,"context_line":"        return disk_resource.Address"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def set_disk_host_resource(self, vm_name, controller_path, address,"},{"line_number":364,"context_line":"                               mounted_disk_path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_9fb04ef6","line":361,"in_reply_to":"5adbc538_fc80808d","updated":"2014-05-25 22:05:34.000000000","message":"It does! :-) It gets overloaded in vmutilsv2.py. MSFT refactored the API in V2 and this way by overriding only the areas that change we keep the common code together (see also comment in vmutilsv2).","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c605d37beabe1b8e5e0eae5f6350512f49a78294","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                    str(address)):"},{"line_number":372,"context_line":"                if (disk_resource.HostResource and"},{"line_number":373,"context_line":"                        disk_resource.HostResource[0] !\u003d mounted_disk_path):"},{"line_number":374,"context_line":"                    LOG.debug(_(\u0027Updating disk host resource \"%(old)s\" to \u0027"},{"line_number":375,"context_line":"                                \u0027\"%(new)s\"\u0027),"},{"line_number":376,"context_line":"                              {\u0027old\u0027: disk_resource.HostResource[0],"},{"line_number":377,"context_line":"                               \u0027new\u0027: mounted_disk_path})"}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_9c721ce4","line":374,"updated":"2014-05-25 19:43:40.000000000","message":"Per logging guidelines, we no longer i18n debug level log messages...\n\nSee: https://wiki.openstack.org/wiki/LoggingStandards#Guidelines","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"dc616ab9f5a5aedb46007bff441bbd4daa3816db","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                    str(address)):"},{"line_number":372,"context_line":"                if (disk_resource.HostResource and"},{"line_number":373,"context_line":"                        disk_resource.HostResource[0] !\u003d mounted_disk_path):"},{"line_number":374,"context_line":"                    LOG.debug(_(\u0027Updating disk host resource \"%(old)s\" to \u0027"},{"line_number":375,"context_line":"                                \u0027\"%(new)s\"\u0027),"},{"line_number":376,"context_line":"                              {\u0027old\u0027: disk_resource.HostResource[0],"},{"line_number":377,"context_line":"                               \u0027new\u0027: mounted_disk_path})"}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_bf942a45","line":374,"in_reply_to":"5adbc538_9c721ce4","updated":"2014-05-25 22:05:34.000000000","message":"Done tx, was actually planning to change this one to info.","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":8531,"name":"Yu Zhang","email":"zhangyu11@huawei.com","username":"zhyu"},"change_message_id":"21aecd608f4b7abbc73c2ed3f37f0c63142d22b8","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                disk_found \u003d True"},{"line_number":389,"context_line":"                break"},{"line_number":390,"context_line":"        if not disk_found:"},{"line_number":391,"context_line":"            LOG.warn(_(\u0027Disk not found\u0027))"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def set_nic_connection(self, vm_name, nic_name, vswitch_conn_data):"},{"line_number":394,"context_line":"        nic_data \u003d self._get_nic_data_by_name(nic_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_fca98690","line":391,"updated":"2014-08-29 12:53:38.000000000","message":"IMHO, this warning message is helpless if someone really want to find what happens incorrectly. The disk and instance info should be provided.","commit_id":"a763ef17ba17a5d8ae6c3f223cc1e96e5a63170a"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"53d562a31959ec578c99f22ce374ef1b6dce7e09","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                disk_found \u003d True"},{"line_number":389,"context_line":"                break"},{"line_number":390,"context_line":"        if not disk_found:"},{"line_number":391,"context_line":"            LOG.warn(_(\u0027Disk not found\u0027))"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def set_nic_connection(self, vm_name, nic_name, vswitch_conn_data):"},{"line_number":394,"context_line":"        nic_data \u003d self._get_nic_data_by_name(nic_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_f26e0a2e","line":391,"in_reply_to":"1abeadc6_52989e74","updated":"2014-08-29 15:44:01.000000000","message":"Done","commit_id":"a763ef17ba17a5d8ae6c3f223cc1e96e5a63170a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ab05c47c576de6aaba88dc2c667226ad97bf269d","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                disk_found \u003d True"},{"line_number":389,"context_line":"                break"},{"line_number":390,"context_line":"        if not disk_found:"},{"line_number":391,"context_line":"            LOG.warn(_(\u0027Disk not found\u0027))"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def set_nic_connection(self, vm_name, nic_name, vswitch_conn_data):"},{"line_number":394,"context_line":"        nic_data \u003d self._get_nic_data_by_name(nic_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_52989e74","line":391,"in_reply_to":"1abeadc6_fca98690","updated":"2014-08-29 15:38:21.000000000","message":"I agree with Zhang here.","commit_id":"a763ef17ba17a5d8ae6c3f223cc1e96e5a63170a"}],"nova/virt/hyperv/vmutilsv2.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c605d37beabe1b8e5e0eae5f6350512f49a78294","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    _ETHERNET_PORT_ALLOCATION_SETTING_DATA_CLASS \u003d \\"},{"line_number":58,"context_line":"    \u0027Msvm_EthernetPortAllocationSettingData\u0027"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    _AUTOMATIC_STARTUP_ACTION_NONE \u003d 2"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    _vm_power_states_map \u003d {constants.HYPERV_VM_STATE_ENABLED: 2,"},{"line_number":63,"context_line":"                            constants.HYPERV_VM_STATE_DISABLED: 3,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_1c7e0caf","line":60,"updated":"2014-05-25 19:43:40.000000000","message":"The vmutils.py value of this was 0. Is it wise to redefine the same constant differently between vmutils versions? I can imagine some confusion later on down the line when a reader of the code finds that the same constant is defined as a different value depending on whether it is in the v2 file of vmutils.py...","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"dc616ab9f5a5aedb46007bff441bbd4daa3816db","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    _ETHERNET_PORT_ALLOCATION_SETTING_DATA_CLASS \u003d \\"},{"line_number":58,"context_line":"    \u0027Msvm_EthernetPortAllocationSettingData\u0027"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    _AUTOMATIC_STARTUP_ACTION_NONE \u003d 2"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    _vm_power_states_map \u003d {constants.HYPERV_VM_STATE_ENABLED: 2,"},{"line_number":63,"context_line":"                            constants.HYPERV_VM_STATE_DISABLED: 3,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_ff9eb262","line":60,"in_reply_to":"5adbc538_1c7e0caf","updated":"2014-05-25 22:05:34.000000000","message":"MSFT refactored the API, so constants with identical meaning have different values between v1 and v2, this is consistent with the rest of the class. By overriding the constants we can avoid redefining identical code in V2.","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c605d37beabe1b8e5e0eae5f6350512f49a78294","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self._add_virt_resource(diskdrive, vm.path_())"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _get_disk_resource_address(self, disk_resource):"},{"line_number":149,"context_line":"        return disk_resource.AddressOnParent"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def create_scsi_controller(self, vm_name):"},{"line_number":152,"context_line":"        \"\"\"Create an iscsi controller ready to mount volumes.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_3c4ae883","line":149,"updated":"2014-05-25 19:43:40.000000000","message":"Is this used anywhere?","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"dc616ab9f5a5aedb46007bff441bbd4daa3816db","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self._add_virt_resource(diskdrive, vm.path_())"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _get_disk_resource_address(self, disk_resource):"},{"line_number":149,"context_line":"        return disk_resource.AddressOnParent"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def create_scsi_controller(self, vm_name):"},{"line_number":152,"context_line":"        \"\"\"Create an iscsi controller ready to mount volumes.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5adbc538_1f9c3e69","line":149,"in_reply_to":"5adbc538_3c4ae883","updated":"2014-05-25 22:05:34.000000000","message":"please see comment on the base class method.","commit_id":"ad1e82eee2ca45d1f418a4295c2a0d9e6efbe5c5"}]}
