)]}'
{"nova/virt/driver.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"56913f0552a5cacb2d6e573db1522a7adf10edc9","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        This method is expected to be called only once during"},{"line_number":1234,"context_line":"        the lifecycle of the compute process."},{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"        :param metric_obj: A mutable reference of the metric object"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"        \"\"\""},{"line_number":1239,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_b48e1a25","line":1236,"updated":"2016-06-10 13:59:41.000000000","message":"Here and below, would be good to say that metric object is of type `nova.objects.MonitorMetric`","commit_id":"2701c1639178a51cf7226626d9ad7cb4fb619ee0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"56913f0552a5cacb2d6e573db1522a7adf10edc9","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"        \"\"\"Get the aggregated counter values representing the memory"},{"line_number":1243,"context_line":"        bandwidth on the system. Counter values are taken in this case as"},{"line_number":1244,"context_line":"        opposed to the rate because instantenous values of the rate"},{"line_number":1245,"context_line":"        won\u0027t represent the bandwidth accurately. So the flexibility is"},{"line_number":1246,"context_line":"        that Nova will read the memory counter values and then should be"},{"line_number":1247,"context_line":"        able to represent a rate by keeping control of the elapsed time"},{"line_number":1248,"context_line":"        between two fetch operations."}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_94915e49","line":1245,"updated":"2016-06-10 13:59:41.000000000","message":"s/the flexibility/the idea here/","commit_id":"2701c1639178a51cf7226626d9ad7cb4fb619ee0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"56913f0552a5cacb2d6e573db1522a7adf10edc9","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"        opposed to the rate because instantenous values of the rate"},{"line_number":1245,"context_line":"        won\u0027t represent the bandwidth accurately. So the flexibility is"},{"line_number":1246,"context_line":"        that Nova will read the memory counter values and then should be"},{"line_number":1247,"context_line":"        able to represent a rate by keeping control of the elapsed time"},{"line_number":1248,"context_line":"        between two fetch operations."},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"        :param metric_obj: A mutable reference of the metric object"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_f498a26c","line":1247,"updated":"2016-06-10 13:59:41.000000000","message":"s/keeping control of/keeping track of/","commit_id":"2701c1639178a51cf7226626d9ad7cb4fb619ee0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6aab96a46a26808024df690544b7e438564fbdcc","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        This method is expected to be called only once during"},{"line_number":1234,"context_line":"        the lifecycle of the compute process."},{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"        :param metric_obj: A mutable reference of the Monitor metric object"},{"line_number":1237,"context_line":"                           of type nova.objects.MonitorMetric"},{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":"        \"\"\""},{"line_number":1240,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":22,"id":"3aaa91ec_79fe9e39","line":1237,"range":{"start_line":1236,"start_character":27,"end_line":1237,"end_character":61},"updated":"2016-06-27 19:38:12.000000000","message":"As noted elsewhere in this series, I\u0027m not crazy about passing an object in for the virt driver to mutate, which doesn\u0027t return anything. I\u0027d rather see the monitor ask the virt driver for some specific information and then use that to populate the monitor object.\n\nIf we\u0027re worried about supporting more virt drivers than libvirt with different values, then I\u0027d think we should handle it like the MigrateData object which has a common base class with hypervisor-specific subclasses - but in that case the virt drivers create the object and return them to the compute manager, couldn\u0027t we do the same for this?","commit_id":"ad5d663469b916e3cce71f64dead13bae6ea61ca"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"cfb7780e0a157ae49bee3a64f28abcfa1c0047e6","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"        This method is expected to be called only once during"},{"line_number":1234,"context_line":"        the lifecycle of the compute process."},{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"        :param metric_obj: A mutable reference of the Monitor metric object"},{"line_number":1237,"context_line":"                           of type nova.objects.MonitorMetric"},{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":"        \"\"\""},{"line_number":1240,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":22,"id":"3aaa91ec_9ee2252e","line":1237,"range":{"start_line":1236,"start_character":27,"end_line":1237,"end_character":61},"in_reply_to":"3aaa91ec_79fe9e39","updated":"2016-06-28 13:25:34.000000000","message":"Done","commit_id":"ad5d663469b916e3cce71f64dead13bae6ea61ca"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"54492987b02b70881bb8ee4213967e2e30dc1e05","unresolved":false,"context_lines":[{"line_number":1252,"context_line":"                           of type nova.objects.MonitorMetric"},{"line_number":1253,"context_line":""},{"line_number":1254,"context_line":"        \"\"\""},{"line_number":1255,"context_line":"        raise NotImplementedError()"},{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":"    def block_stats(self, instance, disk_id):"},{"line_number":1258,"context_line":"        \"\"\"Return performance counters associated with the given disk_id on the"}],"source_content_type":"text/x-python","patch_set":22,"id":"3aaa91ec_79cdfe5c","line":1255,"updated":"2016-06-27 19:33:28.000000000","message":"Why does this not mirror (or extend, even) the existing cpu-bsed metrics? Having two calls for this doesn\u0027t seem very useful to me. Shouldn\u0027t there be a get_host_mem_stats() type of method? Why these two overly specific ones?","commit_id":"ad5d663469b916e3cce71f64dead13bae6ea61ca"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"cfb7780e0a157ae49bee3a64f28abcfa1c0047e6","unresolved":false,"context_lines":[{"line_number":1252,"context_line":"                           of type nova.objects.MonitorMetric"},{"line_number":1253,"context_line":""},{"line_number":1254,"context_line":"        \"\"\""},{"line_number":1255,"context_line":"        raise NotImplementedError()"},{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":"    def block_stats(self, instance, disk_id):"},{"line_number":1258,"context_line":"        \"\"\"Return performance counters associated with the given disk_id on the"}],"source_content_type":"text/x-python","patch_set":22,"id":"3aaa91ec_3eca11a2","line":1255,"in_reply_to":"3aaa91ec_79cdfe5c","updated":"2016-06-28 13:25:34.000000000","message":"Done","commit_id":"ad5d663469b916e3cce71f64dead13bae6ea61ca"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"56913f0552a5cacb2d6e573db1522a7adf10edc9","unresolved":false,"context_lines":[{"line_number":103,"context_line":"from nova.virt.libvirt import imagecache"},{"line_number":104,"context_line":"from nova.virt.libvirt import instancejobtracker"},{"line_number":105,"context_line":"from nova.virt.libvirt import migration as libvirt_migrate"},{"line_number":106,"context_line":"from nova.virt.libvirt import pcp_utils"},{"line_number":107,"context_line":"from nova.virt.libvirt.storage import dmcrypt"},{"line_number":108,"context_line":"from nova.virt.libvirt.storage import lvm"},{"line_number":109,"context_line":"from nova.virt.libvirt.storage import rbd_utils"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_5471b643","line":106,"updated":"2016-06-10 13:59:41.000000000","message":"This is introduced in https://review.openstack.org/#/c/203163/ but this patch doesn\u0027t actually depend on (git-wise) that patch. Instead, you\u0027re using the Depends-on: cross-project Gerrit commit message thing. I\u0027m pretty sure you need to git rebase this patch onto https://review.openstack.org/#/c/203163/ to make it a hard dependency.","commit_id":"2701c1639178a51cf7226626d9ad7cb4fb619ee0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d587f4fdbd090fc4e66e1af95b88885dd97f16c1","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            # initialize PcP"},{"line_number":396,"context_line":"            self.pcp_inst \u003d pcp_utils.PCPDriver()"},{"line_number":397,"context_line":"            self.pcp_ver_flg \u003d self._check_min_pcp_ver(MIN_PCP_NUMA_MEM_BW)"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"        self.job_tracker \u003d instancejobtracker.InstanceJobTracker()"},{"line_number":400,"context_line":"        self._remotefs \u003d remotefs.RemoteFilesystem()"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3aaa91ec_a93cdfbf","line":398,"updated":"2016-06-29 08:56:57.000000000","message":"I think it also need test coverage along with the _check_min_pcp_ver","commit_id":"0cf88082077b568a169cc98c490425c29b8c9c11"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"365f65f36fa92d645598c623d6474d38d2c09dbf","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            # initialize PcP"},{"line_number":396,"context_line":"            self.pcp_inst \u003d pcp_utils.PCPDriver()"},{"line_number":397,"context_line":"            self.pcp_ver_flg \u003d self._check_min_pcp_ver(MIN_PCP_NUMA_MEM_BW)"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"        self.job_tracker \u003d instancejobtracker.InstanceJobTracker()"},{"line_number":400,"context_line":"        self._remotefs \u003d remotefs.RemoteFilesystem()"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3aaa91ec_f6eb50da","line":398,"in_reply_to":"3aaa91ec_a93cdfbf","updated":"2016-06-29 13:45:57.000000000","message":"This is already covered... as a part of: https://review.openstack.org/#/c/266773/29/nova/tests/unit/virt/libvirt/test_driver.py@14394 \n\nDo you agree?","commit_id":"0cf88082077b568a169cc98c490425c29b8c9c11"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9aba56a3dff27ebc0db39c2e19ffc41e63cea180","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            # initialize PcP"},{"line_number":396,"context_line":"            self.pcp_inst \u003d pcp_utils.PCPDriver()"},{"line_number":397,"context_line":"            self.pcp_ver_flg \u003d self._check_min_pcp_ver(MIN_PCP_NUMA_MEM_BW)"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"        self.job_tracker \u003d instancejobtracker.InstanceJobTracker()"},{"line_number":400,"context_line":"        self._remotefs \u003d remotefs.RemoteFilesystem()"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3aaa91ec_a31d0964","line":398,"in_reply_to":"3aaa91ec_f6eb50da","updated":"2016-06-29 14:10:14.000000000","message":"Ahh I see, so when that test create the LibvirtDriver it triggers this code. \nCould you add a negative test as well where the version is not big enough?","commit_id":"0cf88082077b568a169cc98c490425c29b8c9c11"}]}
