)]}'
{"nova/tests/unit/virt/hyperv/test_hostops.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self._hostops._hostutils.get_cpus_info.assert_called_once_with()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        expected \u003d [mock.call(fkey)"},{"line_number":66,"context_line":"                    for fkey in six.iterkeys(constants.PROCESSOR_FEATURE)]"},{"line_number":67,"context_line":"        self._hostops._hostutils.is_cpu_feature_present.has_calls(expected)"},{"line_number":68,"context_line":"        expected_response \u003d self._get_mock_cpu_info()"},{"line_number":69,"context_line":"        self.assertEqual(expected_response, response)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_a1d6cc25","line":66,"updated":"2015-11-19 12:39:43.000000000","message":"I don\u0027t understand why we need six here, keys is an interator in python 3.\n\nWe wanted to stop doing extraneous six things. So this is a -1 able change.","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self._hostops._hostutils.get_cpus_info.assert_called_once_with()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        expected \u003d [mock.call(fkey)"},{"line_number":66,"context_line":"                    for fkey in six.iterkeys(constants.PROCESSOR_FEATURE)]"},{"line_number":67,"context_line":"        self._hostops._hostutils.is_cpu_feature_present.has_calls(expected)"},{"line_number":68,"context_line":"        expected_response \u003d self._get_mock_cpu_info()"},{"line_number":69,"context_line":"        self.assertEqual(expected_response, response)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_5ba1f244","line":66,"in_reply_to":"ba8a016a_a1d6cc25","updated":"2015-11-19 18:49:41.000000000","message":"Done","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            self.FAKE_TICK_COUNT)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        response \u003d self._hostops.get_host_uptime()"},{"line_number":179,"context_line":"        tdelta \u003d datetime.timedelta(milliseconds\u003dint(self.FAKE_TICK_COUNT))"},{"line_number":180,"context_line":"        expected \u003d \"%s up %s,  0 users,  load average: 0, 0, 0\" % ("},{"line_number":181,"context_line":"                   str(mock_time()), str(tdelta))"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_6181c4fa","line":179,"updated":"2015-11-19 12:39:43.000000000","message":"are you sure the int is big enough n python 2 for this test? (nit: don\u0027t know).","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            self.FAKE_TICK_COUNT)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        response \u003d self._hostops.get_host_uptime()"},{"line_number":179,"context_line":"        tdelta \u003d datetime.timedelta(milliseconds\u003dint(self.FAKE_TICK_COUNT))"},{"line_number":180,"context_line":"        expected \u003d \"%s up %s,  0 users,  load average: 0, 0, 0\" % ("},{"line_number":181,"context_line":"                   str(mock_time()), str(tdelta))"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_db29629c","line":179,"in_reply_to":"ba8a016a_6181c4fa","updated":"2015-11-19 18:49:41.000000000","message":"python2 automatically converts the int to a long in case of an overflow:\n\n    \u003e\u003e\u003e i \u003d 1\n    \u003e\u003e\u003e i \u003c\u003c 32\n    4294967296L","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"}],"nova/tests/unit/virt/hyperv/test_vmutils.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        mock_svc.GetSummaryInformation.return_value \u003d (self._FAKE_RET_VAL,"},{"line_number":95,"context_line":"                                                       [mock_summary])"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        for key, val in six.iteritems(self._FAKE_SUMMARY_INFO):"},{"line_number":98,"context_line":"            setattr(mock_summary, key, val)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        summary \u003d self._vmutils.get_vm_summary_info(self._FAKE_VM_NAME)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_c1951033","line":97,"updated":"2015-11-19 12:39:43.000000000","message":"no, just use items please. -1","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        mock_svc.GetSummaryInformation.return_value \u003d (self._FAKE_RET_VAL,"},{"line_number":95,"context_line":"                                                       [mock_summary])"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        for key, val in six.iteritems(self._FAKE_SUMMARY_INFO):"},{"line_number":98,"context_line":"            setattr(mock_summary, key, val)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        summary \u003d self._vmutils.get_vm_summary_info(self._FAKE_VM_NAME)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_16125f57","line":97,"in_reply_to":"ba8a016a_c1951033","updated":"2015-11-19 18:49:41.000000000","message":"no longer applicable, test_vmutils is removed in the \"Depends-On\" patch.","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"}],"nova/virt/hyperv/hostops.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        cpu_info[\u0027topology\u0027] \u003d topology"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        features \u003d list()"},{"line_number":70,"context_line":"        for fkey, fname in six.iteritems(constants.PROCESSOR_FEATURE):"},{"line_number":71,"context_line":"            if self._hostutils.is_cpu_feature_present(fkey):"},{"line_number":72,"context_line":"                features.append(fname)"},{"line_number":73,"context_line":"        cpu_info[\u0027features\u0027] \u003d features"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_c1bc30bd","line":70,"updated":"2015-11-19 12:39:43.000000000","message":"no, just use items please. -1","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        cpu_info[\u0027topology\u0027] \u003d topology"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        features \u003d list()"},{"line_number":70,"context_line":"        for fkey, fname in six.iteritems(constants.PROCESSOR_FEATURE):"},{"line_number":71,"context_line":"            if self._hostutils.is_cpu_feature_present(fkey):"},{"line_number":72,"context_line":"                features.append(fname)"},{"line_number":73,"context_line":"        cpu_info[\u0027features\u0027] \u003d features"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_76296b89","line":70,"in_reply_to":"ba8a016a_c1bc30bd","updated":"2015-11-19 18:49:41.000000000","message":"Done","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"}],"nova/virt/hyperv/livemigrationutils.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        volutils_remote \u003d volumeutilsv2.VolumeUtilsV2(dest_host)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        disk_paths_remote \u003d {}"},{"line_number":129,"context_line":"        for rasd_rel_path, disk_path in six.iteritems(disk_paths):"},{"line_number":130,"context_line":"            target \u003d self._volutils.get_target_from_disk_path(disk_path)"},{"line_number":131,"context_line":"            if target:"},{"line_number":132,"context_line":"                (target_iqn, target_lun) \u003d target"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_011b18cb","line":129,"updated":"2015-11-19 12:39:43.000000000","message":"again, just use items","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        volutils_remote \u003d volumeutilsv2.VolumeUtilsV2(dest_host)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        disk_paths_remote \u003d {}"},{"line_number":129,"context_line":"        for rasd_rel_path, disk_path in six.iteritems(disk_paths):"},{"line_number":130,"context_line":"            target \u003d self._volutils.get_target_from_disk_path(disk_path)"},{"line_number":131,"context_line":"            if target:"},{"line_number":132,"context_line":"                (target_iqn, target_lun) \u003d target"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_f6447b4a","line":129,"in_reply_to":"ba8a016a_011b18cb","updated":"2015-11-19 18:49:41.000000000","message":"no longer applicable.","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"}],"nova/virt/hyperv/vmutils.py":[{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"e75008fc83f586bce9c301ed170546eae1b3d90b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2010 Cloud.com, Inc"},{"line_number":2,"context_line":"# Copyright 2012 Cloudbase Solutions Srl // Pedro Navarro Perez"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_8799a821","line":2,"updated":"2015-11-10 15:00:03.000000000","message":"Unneeded change.","commit_id":"1b712ab9020927c76a6e8c6e17680bfe959e9aab"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"efec4965ce6ef8002ceadf7cd72cd1b97e65e589","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2010 Cloud.com, Inc"},{"line_number":2,"context_line":"# Copyright 2012 Cloudbase Solutions Srl // Pedro Navarro Perez"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_c25ebe11","line":2,"in_reply_to":"da85f559_8799a821","updated":"2015-11-10 15:02:14.000000000","message":"Done","commit_id":"1b712ab9020927c76a6e8c6e17680bfe959e9aab"}],"nova/virt/hyperv/volumeops.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        mapping \u003d driver.block_device_info_get_mapping(block_device_info)"},{"line_number":94,"context_line":"        block_devices \u003d self._group_block_devices_by_type("},{"line_number":95,"context_line":"            mapping)"},{"line_number":96,"context_line":"        for driver_type, block_device_mapping in six.iteritems(block_devices):"},{"line_number":97,"context_line":"            volume_driver \u003d self._get_volume_driver(driver_type)"},{"line_number":98,"context_line":"            volume_driver.disconnect_volumes(block_device_mapping)"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_6159c48d","line":96,"updated":"2015-11-19 12:39:43.000000000","message":"items","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        mapping \u003d driver.block_device_info_get_mapping(block_device_info)"},{"line_number":94,"context_line":"        block_devices \u003d self._group_block_devices_by_type("},{"line_number":95,"context_line":"            mapping)"},{"line_number":96,"context_line":"        for driver_type, block_device_mapping in six.iteritems(block_devices):"},{"line_number":97,"context_line":"            volume_driver \u003d self._get_volume_driver(driver_type)"},{"line_number":98,"context_line":"            volume_driver.disconnect_volumes(block_device_mapping)"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_967acf86","line":96,"in_reply_to":"ba8a016a_6159c48d","updated":"2015-11-19 18:49:41.000000000","message":"Done","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1b51eace9cd89f8a5078c61788e5c9cd873390b6","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            target_iqn \u003d vol[\u0027connection_info\u0027][\u0027data\u0027][\u0027target_iqn\u0027]"},{"line_number":206,"context_line":"            iscsi_targets[target_iqn] +\u003d 1"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        for target_iqn, disconnected_luns in six.iteritems(iscsi_targets):"},{"line_number":209,"context_line":"            self.logout_storage_target(target_iqn, disconnected_luns)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def logout_storage_target(self, target_iqn, disconnected_luns_count\u003d1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_a1632c41","line":208,"updated":"2015-11-19 12:39:43.000000000","message":"items","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"082ebd61da5463aaec16d2a0d41d5a8054b839e2","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            target_iqn \u003d vol[\u0027connection_info\u0027][\u0027data\u0027][\u0027target_iqn\u0027]"},{"line_number":206,"context_line":"            iscsi_targets[target_iqn] +\u003d 1"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        for target_iqn, disconnected_luns in six.iteritems(iscsi_targets):"},{"line_number":209,"context_line":"            self.logout_storage_target(target_iqn, disconnected_luns)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def logout_storage_target(self, target_iqn, disconnected_luns_count\u003d1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_b66113d5","line":208,"in_reply_to":"ba8a016a_a1632c41","updated":"2015-11-19 18:49:41.000000000","message":"Done","commit_id":"6d86a64d1180b38bf395bde55ce3fac198873927"}]}
