)]}'
{"nova/tests/unit/fake_diagnostics.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"95fc521469384439103b3988f215c5a6cc68e7c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"3a461143_13f3b59f","updated":"2017-01-26 15:04:08.000000000","message":"This should be used in the previous, libvirt-focused patch. I don\u0027t want to hold that up, so could you address this in a follow up patch?","commit_id":"5a4965caf65225816e6ee61c31e2f090f01b919d"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"2cc331fe509beab819d9317990a826b05e080c3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"3a461143_739a3916","in_reply_to":"3a461143_13f3b59f","updated":"2017-01-26 15:07:14.000000000","message":"sure. I will update it in the next patch","commit_id":"5a4965caf65225816e6ee61c31e2f090f01b919d"}],"nova/tests/unit/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7834a697a9ed1d5475df26383060595d3ad07ad2","unresolved":false,"context_lines":[{"line_number":334,"context_line":"        fake_image.FakeImageService_reset()"},{"line_number":335,"context_line":"        super(XenAPIVMTestCase, self).tearDown()"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def _fake_diagnostics_object("},{"line_number":338,"context_line":"            self, util1\u003dNone, util2\u003dNone, util3\u003dNone, util4\u003dNone, rx_rate\u003dNone,"},{"line_number":339,"context_line":"            tx_rate\u003dNone, read_bytes\u003dNone, write_bytes\u003dNone, maximum\u003dNone,"},{"line_number":340,"context_line":"            used\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a461143_c95d08eb","line":337,"updated":"2017-01-26 13:14:16.000000000","message":"This is essentially a duplicate of https://review.openstack.org/#/c/394480/18/nova/tests/unit/virt/libvirt/test_driver.py.\n\nCould we move this stuff into a new \u0027nova/tests/unit/fake_diagnostics.py\u0027 file, or similar?","commit_id":"cdd9313a72c71519e7d0e9ee0423fb0de86f5854"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7834a697a9ed1d5475df26383060595d3ad07ad2","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        super(XenAPIVMTestCase, self).tearDown()"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def _fake_diagnostics_object("},{"line_number":338,"context_line":"            self, util1\u003dNone, util2\u003dNone, util3\u003dNone, util4\u003dNone, rx_rate\u003dNone,"},{"line_number":339,"context_line":"            tx_rate\u003dNone, read_bytes\u003dNone, write_bytes\u003dNone, maximum\u003dNone,"},{"line_number":340,"context_line":"            used\u003dNone):"},{"line_number":341,"context_line":"        return objects.Diagnostics("},{"line_number":342,"context_line":"                config_drive\u003dFalse,"},{"line_number":343,"context_line":"                state\u003d\u0027running\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a461143_49e59835","line":340,"range":{"start_line":338,"start_character":12,"end_line":340,"end_character":23},"updated":"2017-01-26 13:14:16.000000000","message":"You only call this in one place. Could you not hardcode most/all of these instead? We can add extra functionality if we need it in the future","commit_id":"cdd9313a72c71519e7d0e9ee0423fb0de86f5854"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"95fc521469384439103b3988f215c5a6cc68e7c2","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            config_drive\u003dFalse,"},{"line_number":424,"context_line":"            state\u003d\u0027running\u0027,"},{"line_number":425,"context_line":"            driver\u003d\u0027xenapi\u0027,"},{"line_number":426,"context_line":"            cpu_details\u003d[dict(id\u003d0, utilisation\u003d11),"},{"line_number":427,"context_line":"                         dict(id\u003d1, utilisation\u003d22),"},{"line_number":428,"context_line":"                         dict(id\u003d2, utilisation\u003d33),"},{"line_number":429,"context_line":"                         dict(id\u003d3, utilisation\u003d44)],"},{"line_number":430,"context_line":"            nic_details\u003d[dict(mac_address\u003d\u0027DE:AD:BE:EF:00:01\u0027,"},{"line_number":431,"context_line":"                              rx_rate\u003d50,"},{"line_number":432,"context_line":"                              tx_rate\u003d100)],"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a461143_93ab2589","line":429,"range":{"start_line":426,"start_character":12,"end_line":429,"end_character":52},"updated":"2017-01-26 15:04:08.000000000","message":"nit: dict comprehension could help here, I imagine","commit_id":"5a4965caf65225816e6ee61c31e2f090f01b919d"}],"nova/virt/xenapi/fake.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"4f8634f91a8fab6acce255fbe27ae802074aa36f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    is created."},{"line_number":237,"context_line":"    \"\"\""},{"line_number":238,"context_line":"    vbd_rec[\u0027currently_attached\u0027] \u003d False"},{"line_number":239,"context_line":"    vbd_rec[\u0027device\u0027] \u003d \u0027\u0027"},{"line_number":240,"context_line":"    vbd_rec.setdefault(\u0027other_config\u0027, {})"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    vm_ref \u003d vbd_rec[\u0027VM\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_9a4d4ec6","line":239,"updated":"2017-01-18 13:35:04.000000000","message":"As the tests are using device, we should nwo set it to something sensible, e.g.:\nvbd_rec[\u0027device\u0027] \u003d \u0027xvd\u0027+chr(int(vbd_rec[\u0027userdevice\u0027])+97)","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"472b0019923c3d8a7f50629cc06dacc92a0e71ed","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    is created."},{"line_number":237,"context_line":"    \"\"\""},{"line_number":238,"context_line":"    vbd_rec[\u0027currently_attached\u0027] \u003d False"},{"line_number":239,"context_line":"    vbd_rec[\u0027device\u0027] \u003d \u0027\u0027"},{"line_number":240,"context_line":"    vbd_rec.setdefault(\u0027other_config\u0027, {})"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    vm_ref \u003d vbd_rec[\u0027VM\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_583d92ba","line":239,"in_reply_to":"7a3c09a3_9a4d4ec6","updated":"2017-01-18 20:17:39.000000000","message":"In current tests value of \u0027userdevice\u0027 can be \u0027autodetect\u0027, \u0027fake\u0027, a number or unset. To use your example we must decide what we should do with all possible values and change some tests. I think it\u0027s not related to diagnostics blueprint. Maybe we can use a vbd_rec[\u0027userdevice\u0027] as device name and left a \u0027TODO\u0027 here. It will give us \"good\" device names like \u0027vbd_0_read\u0027 instead of \u0027vbd__read\u0027 in most of cases and we wouldn\u0027t change not related tests.","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"4f8634f91a8fab6acce255fbe27ae802074aa36f","unresolved":false,"context_lines":[{"line_number":844,"context_line":"              \u0027memory_internal_free\u0027: str(5 * units.Mi),  # 5GB in kilobytes"},{"line_number":845,"context_line":"              \u0027vif_0_rx\u0027: \u002750\u0027,"},{"line_number":846,"context_line":"              \u0027vif_0_tx\u0027: \u0027100\u0027,"},{"line_number":847,"context_line":"              \u0027vbd__read\u0027: \u002750\u0027,"},{"line_number":848,"context_line":"              \u0027vbd__write\u0027: \u0027100\u0027}"},{"line_number":849,"context_line":"        return vm[field] if field in vm else 0"},{"line_number":850,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_da919648","line":847,"updated":"2017-01-18 13:35:04.000000000","message":"I don\u0027t like vbd__read; we should have a device number.","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"472b0019923c3d8a7f50629cc06dacc92a0e71ed","unresolved":false,"context_lines":[{"line_number":844,"context_line":"              \u0027memory_internal_free\u0027: str(5 * units.Mi),  # 5GB in kilobytes"},{"line_number":845,"context_line":"              \u0027vif_0_rx\u0027: \u002750\u0027,"},{"line_number":846,"context_line":"              \u0027vif_0_tx\u0027: \u0027100\u0027,"},{"line_number":847,"context_line":"              \u0027vbd__read\u0027: \u002750\u0027,"},{"line_number":848,"context_line":"              \u0027vbd__write\u0027: \u0027100\u0027}"},{"line_number":849,"context_line":"        return vm[field] if field in vm else 0"},{"line_number":850,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_0339dc41","line":847,"in_reply_to":"7a3c09a3_da919648","updated":"2017-01-18 20:17:39.000000000","message":"ok","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"4f8634f91a8fab6acce255fbe27ae802074aa36f","unresolved":false,"context_lines":[{"line_number":846,"context_line":"              \u0027vif_0_tx\u0027: \u0027100\u0027,"},{"line_number":847,"context_line":"              \u0027vbd__read\u0027: \u002750\u0027,"},{"line_number":848,"context_line":"              \u0027vbd__write\u0027: \u0027100\u0027}"},{"line_number":849,"context_line":"        return vm[field] if field in vm else 0"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"    def pool_eject(self, session, host_ref):"},{"line_number":852,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_7aa18293","line":849,"updated":"2017-01-18 13:35:04.000000000","message":"return vm.get(field, 0)?","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"472b0019923c3d8a7f50629cc06dacc92a0e71ed","unresolved":false,"context_lines":[{"line_number":846,"context_line":"              \u0027vif_0_tx\u0027: \u0027100\u0027,"},{"line_number":847,"context_line":"              \u0027vbd__read\u0027: \u002750\u0027,"},{"line_number":848,"context_line":"              \u0027vbd__write\u0027: \u0027100\u0027}"},{"line_number":849,"context_line":"        return vm[field] if field in vm else 0"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"    def pool_eject(self, session, host_ref):"},{"line_number":852,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_43f4c486","line":849,"in_reply_to":"7a3c09a3_7aa18293","updated":"2017-01-18 20:17:39.000000000","message":"agree","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7834a697a9ed1d5475df26383060595d3ad07ad2","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    \"\"\""},{"line_number":238,"context_line":"    vbd_rec[\u0027currently_attached\u0027] \u003d False"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    # TODO(snikitin): Find a better way for generating of device name"},{"line_number":241,"context_line":"    vbd_rec[\u0027device\u0027] \u003d vbd_rec.get(\u0027userdevice\u0027, \u0027\u0027)"},{"line_number":242,"context_line":"    vbd_rec.setdefault(\u0027other_config\u0027, {})"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"3a461143_c9aa68d4","line":240,"range":{"start_line":240,"start_character":22,"end_line":240,"end_character":69},"updated":"2017-01-26 13:14:16.000000000","message":"What\u0027s wrong with this? :) A little more information would be appreciated here","commit_id":"cdd9313a72c71519e7d0e9ee0423fb0de86f5854"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"95fc521469384439103b3988f215c5a6cc68e7c2","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    \"\"\""},{"line_number":238,"context_line":"    vbd_rec[\u0027currently_attached\u0027] \u003d False"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    # TODO(snikitin): Find a better way for generating of device name."},{"line_number":241,"context_line":"    # Usually \u0027userdevice\u0027 has numeric values like \u00271\u0027, \u00272\u0027, \u00273\u0027, etc."},{"line_number":242,"context_line":"    # Ideally they should be transformed to something like \u0027xvda\u0027, \u0027xvdb\u0027,"},{"line_number":243,"context_line":"    # \u0027xvdx\u0027, etc. But \u0027userdevice\u0027 also may be \u0027autodetect\u0027, \u0027fake\u0027 or even"},{"line_number":244,"context_line":"    # unset. We should handle it in future."},{"line_number":245,"context_line":"    vbd_rec[\u0027device\u0027] \u003d vbd_rec.get(\u0027userdevice\u0027, \u0027\u0027)"},{"line_number":246,"context_line":"    vbd_rec.setdefault(\u0027other_config\u0027, {})"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3a461143_13ae5585","line":244,"range":{"start_line":240,"start_character":0,"end_line":244,"end_character":43},"updated":"2017-01-26 15:04:08.000000000","message":"Perfection :)","commit_id":"5a4965caf65225816e6ee61c31e2f090f01b919d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cc08384b4fcbf236561fbb2d8bfbdd54efb85155","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    # Usually \u0027userdevice\u0027 has numeric values like \u00271\u0027, \u00272\u0027, \u00273\u0027, etc."},{"line_number":242,"context_line":"    # Ideally they should be transformed to something like \u0027xvda\u0027, \u0027xvdb\u0027,"},{"line_number":243,"context_line":"    # \u0027xvdx\u0027, etc. But \u0027userdevice\u0027 also may be \u0027autodetect\u0027, \u0027fake\u0027 or even"},{"line_number":244,"context_line":"    # unset. We should handle it in future."},{"line_number":245,"context_line":"    vbd_rec[\u0027device\u0027] \u003d vbd_rec.get(\u0027userdevice\u0027, \u0027\u0027)"},{"line_number":246,"context_line":"    vbd_rec.setdefault(\u0027other_config\u0027, {})"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"fa31d9ce_8360dba6","line":244,"updated":"2017-02-14 10:55:11.000000000","message":"So I don\u0027t think autodetect or fake are possible values at this point in the code, although the unit tests might make it look that way.\n\nHonestly, we should get away from the \"xvda\" names as we don\u0027t know what they will be, we really only know the PCI device position, as given by these ints.","commit_id":"bc6b94e0c92aa7bdb5fc9551ce1e70cd7fbbb236"}],"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"0640e9ca92e17cedbeb91c1258d84161fbbddc46","unresolved":false,"context_lines":[{"line_number":1746,"context_line":"    _add_cpu_usage(session, vm_ref, diags)"},{"line_number":1747,"context_line":"    _add_nic_usage(session, vm_ref, diags)"},{"line_number":1748,"context_line":"    _add_disk_usage(session, vm_ref, diags)"},{"line_number":1749,"context_line":"    _add_memory_usage(session, vm_ref, diags)"},{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"    return diags"},{"line_number":1752,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_f4c5f05b","line":1749,"updated":"2017-01-11 15:33:15.000000000","message":"nice that you pulled these to their own methods","commit_id":"6a280d2064dd069444995f2abbfc1e031fed714a"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"4f8634f91a8fab6acce255fbe27ae802074aa36f","unresolved":false,"context_lines":[{"line_number":1736,"context_line":""},{"line_number":1737,"context_line":""},{"line_number":1738,"context_line":"def compile_instance_diagnostics(session, instance, vm_ref):"},{"line_number":1739,"context_line":"    xen_power_state \u003d session.call_xenapi(\"VM.get_power_state\", vm_ref)"},{"line_number":1740,"context_line":"    vm_power_state \u003d power_state.STATE_MAP[XENAPI_POWER_STATE[xen_power_state]]"},{"line_number":1741,"context_line":"    config_drive \u003d configdrive.required_by(instance)"},{"line_number":1742,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_7a5c224b","line":1739,"updated":"2017-01-18 13:35:04.000000000","message":"Can we use the new style:\nsession.VM.get_power_state(vm_ref)","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"472b0019923c3d8a7f50629cc06dacc92a0e71ed","unresolved":false,"context_lines":[{"line_number":1736,"context_line":""},{"line_number":1737,"context_line":""},{"line_number":1738,"context_line":"def compile_instance_diagnostics(session, instance, vm_ref):"},{"line_number":1739,"context_line":"    xen_power_state \u003d session.call_xenapi(\"VM.get_power_state\", vm_ref)"},{"line_number":1740,"context_line":"    vm_power_state \u003d power_state.STATE_MAP[XENAPI_POWER_STATE[xen_power_state]]"},{"line_number":1741,"context_line":"    config_drive \u003d configdrive.required_by(instance)"},{"line_number":1742,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_78024eb6","line":1739,"in_reply_to":"7a3c09a3_7a5c224b","updated":"2017-01-18 20:17:39.000000000","message":"Done","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"4f8634f91a8fab6acce255fbe27ae802074aa36f","unresolved":false,"context_lines":[{"line_number":1752,"context_line":""},{"line_number":1753,"context_line":""},{"line_number":1754,"context_line":"def _add_cpu_usage(session, vm_ref, diag_obj):"},{"line_number":1755,"context_line":"    cpu_num \u003d int(session.call_xenapi(\"VM.get_VCPUs_max\", vm_ref))"},{"line_number":1756,"context_line":"    for cpu_num in range(0, cpu_num):"},{"line_number":1757,"context_line":"        utilisation \u003d float(session.call_xenapi("},{"line_number":1758,"context_line":"            \"VM.query_data_source\", vm_ref, \"cpu%d\" % cpu_num)) * 100"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_fa365201","line":1755,"updated":"2017-01-18 13:35:04.000000000","message":"Replace all call_xenapi\u0027s with the new style","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"472b0019923c3d8a7f50629cc06dacc92a0e71ed","unresolved":false,"context_lines":[{"line_number":1752,"context_line":""},{"line_number":1753,"context_line":""},{"line_number":1754,"context_line":"def _add_cpu_usage(session, vm_ref, diag_obj):"},{"line_number":1755,"context_line":"    cpu_num \u003d int(session.call_xenapi(\"VM.get_VCPUs_max\", vm_ref))"},{"line_number":1756,"context_line":"    for cpu_num in range(0, cpu_num):"},{"line_number":1757,"context_line":"        utilisation \u003d float(session.call_xenapi("},{"line_number":1758,"context_line":"            \"VM.query_data_source\", vm_ref, \"cpu%d\" % cpu_num)) * 100"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_d82fc23c","line":1755,"in_reply_to":"7a3c09a3_fa365201","updated":"2017-01-18 20:17:39.000000000","message":"Done","commit_id":"33a6783728dfc95ff6fccf9800ba300d3d962db5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7834a697a9ed1d5475df26383060595d3ad07ad2","unresolved":false,"context_lines":[{"line_number":1761,"context_line":"    diags \u003d diagnostics.Diagnostics(state\u003dvm_power_state,"},{"line_number":1762,"context_line":"                                    driver\u003d\u0027xenapi\u0027,"},{"line_number":1763,"context_line":"                                    config_drive\u003dconfig_drive)"},{"line_number":1764,"context_line":"    _add_cpu_usage(session, vm_ref, diags)"},{"line_number":1765,"context_line":"    _add_nic_usage(session, vm_ref, diags)"},{"line_number":1766,"context_line":"    _add_disk_usage(session, vm_ref, diags)"},{"line_number":1767,"context_line":"    _add_memory_usage(session, vm_ref, diags)"},{"line_number":1768,"context_line":""},{"line_number":1769,"context_line":"    return diags"},{"line_number":1770,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"3a461143_096630ed","line":1767,"range":{"start_line":1764,"start_character":0,"end_line":1767,"end_character":45},"updated":"2017-01-26 13:14:16.000000000","message":"I personally dislike these  \"out parameter\"-style functions (passing a reference to the object to modify as a parameter, modifying that in the function, and not returning anything). It seems to be a thing with C developers. In this case, however, this seems to be an artifact of the \u0027add_x\u0027-style functions we have and mostly unavoidable, thus, I won\u0027t block on this","commit_id":"cdd9313a72c71519e7d0e9ee0423fb0de86f5854"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"fa07511b4490a8bc8a97c1d7ad6e759e8f784dfc","unresolved":false,"context_lines":[{"line_number":1772,"context_line":"def _add_cpu_usage(session, vm_ref, diag_obj):"},{"line_number":1773,"context_line":"    cpu_num \u003d int(session.VM.get_VCPUs_max(vm_ref))"},{"line_number":1774,"context_line":"    for cpu_num in range(0, cpu_num):"},{"line_number":1775,"context_line":"        utilisation \u003d _vm_query_data_source(session, vm_ref, \"cpu%d\" % cpu_num)"},{"line_number":1776,"context_line":"        if utilisation is not None:"},{"line_number":1777,"context_line":"            utilisation *\u003d 100"},{"line_number":1778,"context_line":"        diag_obj.add_cpu(id\u003dcpu_num, utilisation\u003dutilisation)"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a1ced50_89aa4b18","line":1775,"range":{"start_line":1775,"start_character":8,"end_line":1775,"end_character":79},"updated":"2017-03-17 04:35:31.000000000","message":"can we use VM_metrics.get_VCPUs_utilisation to get the utilization ?\n\n@BobBall that API works right?","commit_id":"18a13c9229036f85506a1bca790871aa6529cd19"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6f5f71a61404a6ad942084447bc14276254e5636","unresolved":false,"context_lines":[{"line_number":1772,"context_line":"def _add_cpu_usage(session, vm_ref, diag_obj):"},{"line_number":1773,"context_line":"    cpu_num \u003d int(session.VM.get_VCPUs_max(vm_ref))"},{"line_number":1774,"context_line":"    for cpu_num in range(0, cpu_num):"},{"line_number":1775,"context_line":"        utilisation \u003d _vm_query_data_source(session, vm_ref, \"cpu%d\" % cpu_num)"},{"line_number":1776,"context_line":"        if utilisation is not None:"},{"line_number":1777,"context_line":"            utilisation *\u003d 100"},{"line_number":1778,"context_line":"        diag_obj.add_cpu(id\u003dcpu_num, utilisation\u003dutilisation)"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a1ced50_120afbd2","line":1775,"range":{"start_line":1775,"start_character":8,"end_line":1775,"end_character":79},"in_reply_to":"1a1ced50_89aa4b18","updated":"2017-03-17 09:33:15.000000000","message":"See https://git.openstack.org/cgit/openstack/ceilometer/commit/ceilometer/compute/virt/xenapi/inspector.py?id\u003d1374cf7d229ed0b8fca0fbdc6477703d9fff0ecc\n\nI\u0027d recommend using query data source.","commit_id":"18a13c9229036f85506a1bca790871aa6529cd19"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"fa07511b4490a8bc8a97c1d7ad6e759e8f784dfc","unresolved":false,"context_lines":[{"line_number":1775,"context_line":"        utilisation \u003d _vm_query_data_source(session, vm_ref, \"cpu%d\" % cpu_num)"},{"line_number":1776,"context_line":"        if utilisation is not None:"},{"line_number":1777,"context_line":"            utilisation *\u003d 100"},{"line_number":1778,"context_line":"        diag_obj.add_cpu(id\u003dcpu_num, utilisation\u003dutilisation)"},{"line_number":1779,"context_line":""},{"line_number":1780,"context_line":""},{"line_number":1781,"context_line":"def _add_nic_usage(session, vm_ref, diag_obj):"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a1ced50_44dd9a6f","line":1778,"range":{"start_line":1778,"start_character":25,"end_line":1778,"end_character":36},"updated":"2017-03-17 04:35:31.000000000","message":"yea, assigning cpu number to ID seems fine as there is no separate id things.","commit_id":"18a13c9229036f85506a1bca790871aa6529cd19"}]}
