)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"bf3b5eb7892d5305774a9f49279e5663deb6aa14","unresolved":false,"context_lines":[{"line_number":15,"context_line":"* Replace six.moves.range() with range() in driver.py: there is"},{"line_number":16,"context_line":"  a \"from six.moves import range\" import at top level"},{"line_number":17,"context_line":"* Replace six.iteritems(dict) with dict.items() to cleanup the code."},{"line_number":18,"context_line":"*"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Co-Authored-By: Davanum Srinivas \u003cdavanum@gmail.com\u003e"},{"line_number":21,"context_line":"Co-Authored-By: Victor Stinner \u003cvstinner@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a74a57a_d8b97bee","line":18,"updated":"2016-11-23 11:10:07.000000000","message":"nit: extra *","commit_id":"78275192b3578418500873abc0ecd10752b35292"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"637a3b823fc12a51e28a2174da22a402ca417ce2","unresolved":false,"context_lines":[{"line_number":13552,"context_line":"        drvr.get_host_ip_addr().AndReturn(\u0027foo\u0027)"},{"line_number":13553,"context_line":"        self.mox.ReplayAll()"},{"line_number":13554,"context_line":"        self.assertTrue(drvr._is_storage_shared_with(\u0027foo\u0027, \u0027/path\u0027))"},{"line_number":13555,"context_line":"        self.mox.UnsetStubs()"},{"line_number":13556,"context_line":""},{"line_number":13557,"context_line":"    def test_store_pid_remove_pid(self):"},{"line_number":13558,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_716aa6b4","line":13555,"range":{"start_line":13555,"start_character":8,"end_line":13555,"end_character":29},"updated":"2016-11-28 13:04:26.000000000","message":"This isn\u0027t mentioned in the commit message. Is it necessary?","commit_id":"dda8d45c0d6ba53d20f6d00c6cc466a9b2c9634b"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"834cefee7f0ddee026dc5821f0210c926de60450","unresolved":false,"context_lines":[{"line_number":13552,"context_line":"        drvr.get_host_ip_addr().AndReturn(\u0027foo\u0027)"},{"line_number":13553,"context_line":"        self.mox.ReplayAll()"},{"line_number":13554,"context_line":"        self.assertTrue(drvr._is_storage_shared_with(\u0027foo\u0027, \u0027/path\u0027))"},{"line_number":13555,"context_line":"        self.mox.UnsetStubs()"},{"line_number":13556,"context_line":""},{"line_number":13557,"context_line":"    def test_store_pid_remove_pid(self):"},{"line_number":13558,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_54b64ef9","line":13555,"range":{"start_line":13555,"start_character":8,"end_line":13555,"end_character":29},"in_reply_to":"5a74a57a_716aa6b4","updated":"2016-11-29 05:13:51.000000000","message":"yes, we need this. if we don\u0027t UnsetStubs, there\u0027s error occurred on Python 3","commit_id":"dda8d45c0d6ba53d20f6d00c6cc466a9b2c9634b"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a9e35c3492ca37fe802ce79179aed6e8692b2a8b","unresolved":false,"context_lines":[{"line_number":1072,"context_line":"            logical_volumes \u003d lvm.list_volumes(vg)"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"            disks \u003d [fullpath(disk) for disk in logical_volumes"},{"line_number":1075,"context_line":"                     if belongs_to_instance(disk)]"},{"line_number":1076,"context_line":"            return disks"},{"line_number":1077,"context_line":"        return []"},{"line_number":1078,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_26435b6d","line":1075,"updated":"2016-12-07 03:06:40.000000000","message":"This code is operated on the unit test test_lvm_disks of py27 and py34.","commit_id":"0ae8cbf83ea46f32f79834beb0b7dd5838df40cd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a9e35c3492ca37fe802ce79179aed6e8692b2a8b","unresolved":false,"context_lines":[{"line_number":5013,"context_line":"        else:"},{"line_number":5014,"context_line":"            info \u003d libvirt_utils.get_fs_info(CONF.instances_path)"},{"line_number":5015,"context_line":""},{"line_number":5016,"context_line":"        for (k, v) in info.items():"},{"line_number":5017,"context_line":"            info[k] \u003d v / units.Gi"},{"line_number":5018,"context_line":""},{"line_number":5019,"context_line":"        return info"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_8193395a","line":5016,"updated":"2016-12-07 03:06:40.000000000","message":"I am not sure this change reason.\nAccording to http://python-future.org/compatible_idioms.html#iterating-through-dict-keys-values-items , direct items() without six seems inefficient on py2.","commit_id":"0ae8cbf83ea46f32f79834beb0b7dd5838df40cd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48aceab5c7e7a448dfb310f1a3fa4438e6d96687","unresolved":false,"context_lines":[{"line_number":5013,"context_line":"        else:"},{"line_number":5014,"context_line":"            info \u003d libvirt_utils.get_fs_info(CONF.instances_path)"},{"line_number":5015,"context_line":""},{"line_number":5016,"context_line":"        for (k, v) in info.items():"},{"line_number":5017,"context_line":"            info[k] \u003d v / units.Gi"},{"line_number":5018,"context_line":""},{"line_number":5019,"context_line":"        return info"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_493f67d6","line":5016,"in_reply_to":"3a71b18c_45b3ea97","updated":"2016-12-07 17:21:41.000000000","message":"Thanks, this was discussed on http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html as you said.","commit_id":"0ae8cbf83ea46f32f79834beb0b7dd5838df40cd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d93ef1e0713127b7a9456c35756f88acdc7ad113","unresolved":false,"context_lines":[{"line_number":5013,"context_line":"        else:"},{"line_number":5014,"context_line":"            info \u003d libvirt_utils.get_fs_info(CONF.instances_path)"},{"line_number":5015,"context_line":""},{"line_number":5016,"context_line":"        for (k, v) in info.items():"},{"line_number":5017,"context_line":"            info[k] \u003d v / units.Gi"},{"line_number":5018,"context_line":""},{"line_number":5019,"context_line":"        return info"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_d310955b","line":5016,"in_reply_to":"3a71b18c_45b3ea97","updated":"2016-12-07 11:26:09.000000000","message":"The inefficiency mentioned there is only a concern with extremely large dictionaries. There was a discussion on the os-dev list more than a year ago (thread starts at http://markmail.org/message/hxengzn4sfewyiec ). In there lifeless demonstrates that items() is the way to go unless the number of items is really huge. items() is more readable so the better choice.\n\nAnd besides the inefficiency is on 2.x, which is legacy ;)","commit_id":"0ae8cbf83ea46f32f79834beb0b7dd5838df40cd"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"362d807e204b344708368803ae4d8fa6826547fd","unresolved":false,"context_lines":[{"line_number":5013,"context_line":"        else:"},{"line_number":5014,"context_line":"            info \u003d libvirt_utils.get_fs_info(CONF.instances_path)"},{"line_number":5015,"context_line":""},{"line_number":5016,"context_line":"        for (k, v) in info.items():"},{"line_number":5017,"context_line":"            info[k] \u003d v / units.Gi"},{"line_number":5018,"context_line":""},{"line_number":5019,"context_line":"        return info"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_45b3ea97","line":5016,"in_reply_to":"3a71b18c_8193395a","updated":"2016-12-07 06:49:59.000000000","message":"This follows the guide in https://wiki.openstack.org/wiki/Python3#Common_patterns.","commit_id":"0ae8cbf83ea46f32f79834beb0b7dd5838df40cd"}]}
