)]}'
{"nova/compute/monitors/numa_mem_bw/virt_driver.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"882c6bb15771c3d043c5868c4c287c0f48303af1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3aaa91ec_b4b5ab32","updated":"2016-06-27 19:45:55.000000000","message":"By the way, I think this is a terrible name for the monitor. This should just be \"mem\" or \"memory\" to mirror our existing \"cpu\" one.  A complicated name like \"numa_mem_bw_if_you_have_numa_otherwise_this_is_not_so_useful_for_you_kthx\" is not necessary :)","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"61abfe73cda6462dc66514a3e85847925b12a222","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3aaa91ec_1923efa8","in_reply_to":"3aaa91ec_b4b5ab32","updated":"2016-06-28 13:23:38.000000000","message":"Done","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0007124adbdd1f1eaa47e7c4de6bf3424dc1a866","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova import objects"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"CONF.import_opt(\u0027compute_driver\u0027, \u0027nova.virt.driver\u0027)"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_bef8ec4a","line":30,"updated":"2016-06-27 19:16:12.000000000","message":"I\u0027m not sure import_opt is needed, but it\u0027s wrong anyway, compute_driver option is in nova.conf.virt now.","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"61abfe73cda6462dc66514a3e85847925b12a222","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova import objects"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"CONF.import_opt(\u0027compute_driver\u0027, \u0027nova.virt.driver\u0027)"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_3eab318b","line":30,"in_reply_to":"3aaa91ec_79221e03","updated":"2016-06-28 13:23:38.000000000","message":"Done","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"61abfe73cda6462dc66514a3e85847925b12a222","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova import objects"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"CONF.import_opt(\u0027compute_driver\u0027, \u0027nova.virt.driver\u0027)"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_dea30db0","line":30,"in_reply_to":"3aaa91ec_bef8ec4a","updated":"2016-06-28 13:23:38.000000000","message":"Done","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bb9016fba4b775ffc283840ed66c8a29cce33907","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova import objects"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"CONF.import_opt(\u0027compute_driver\u0027, \u0027nova.virt.driver\u0027)"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_79221e03","line":30,"in_reply_to":"3aaa91ec_bef8ec4a","updated":"2016-06-27 19:36:08.000000000","message":"This isn\u0027t even in the existing CPU one, so not needed I think.","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bb9016fba4b775ffc283840ed66c8a29cce33907","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class Monitor(base.MemoryBandwidthMonitorBase):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, compute_manager):"},{"line_number":37,"context_line":"        super(Monitor, self).__init__(compute_manager)"},{"line_number":38,"context_line":"        self.source \u003d CONF.compute_driver"},{"line_number":39,"context_line":"        self.driver \u003d self.compute_manager.driver"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_19783af8","line":36,"updated":"2016-06-27 19:36:08.000000000","message":"Why are you not using resource_tracker here to mirror the cpu monitor?","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"61abfe73cda6462dc66514a3e85847925b12a222","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class Monitor(base.MemoryBandwidthMonitorBase):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, compute_manager):"},{"line_number":37,"context_line":"        super(Monitor, self).__init__(compute_manager)"},{"line_number":38,"context_line":"        self.source \u003d CONF.compute_driver"},{"line_number":39,"context_line":"        self.driver \u003d self.compute_manager.driver"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_1eae3598","line":36,"in_reply_to":"3aaa91ec_19783af8","updated":"2016-06-28 13:23:38.000000000","message":"Done","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"934c0d7f2f6b6989a4648d8f363416ce3c4deda6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                if self._data.get(\"timestamp\"):"},{"line_number":59,"context_line":"                    delta \u003d now - self._data.get(\"timestamp\")"},{"line_number":60,"context_line":"                    time_diff \u003d delta.seconds"},{"line_number":61,"context_line":"                self.driver.get_current_memory_bw(metric_object)"},{"line_number":62,"context_line":"                mem_counter \u003d metric_object.numa_membw_values"},{"line_number":63,"context_line":"                if mem_counter and time_diff \u003e 0:"},{"line_number":64,"context_line":"                    current_mem_bw \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_f9072e7f","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":49},"updated":"2016-06-27 19:33:19.000000000","message":"I should note this in the change that adds this, but I\u0027m not crazy about passing an object to the driver and having the driver mutate it, I\u0027d much rather call a method on the driver to give us whatever stats we need, and then use those here to populate the monitor object so there is a clear separation of duties.","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"61abfe73cda6462dc66514a3e85847925b12a222","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                if self._data.get(\"timestamp\"):"},{"line_number":59,"context_line":"                    delta \u003d now - self._data.get(\"timestamp\")"},{"line_number":60,"context_line":"                    time_diff \u003d delta.seconds"},{"line_number":61,"context_line":"                self.driver.get_current_memory_bw(metric_object)"},{"line_number":62,"context_line":"                mem_counter \u003d metric_object.numa_membw_values"},{"line_number":63,"context_line":"                if mem_counter and time_diff \u003e 0:"},{"line_number":64,"context_line":"                    current_mem_bw \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_5e90bd4e","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":49},"in_reply_to":"3aaa91ec_b973e614","updated":"2016-06-28 13:23:38.000000000","message":"Done","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"61abfe73cda6462dc66514a3e85847925b12a222","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                if self._data.get(\"timestamp\"):"},{"line_number":59,"context_line":"                    delta \u003d now - self._data.get(\"timestamp\")"},{"line_number":60,"context_line":"                    time_diff \u003d delta.seconds"},{"line_number":61,"context_line":"                self.driver.get_current_memory_bw(metric_object)"},{"line_number":62,"context_line":"                mem_counter \u003d metric_object.numa_membw_values"},{"line_number":63,"context_line":"                if mem_counter and time_diff \u003e 0:"},{"line_number":64,"context_line":"                    current_mem_bw \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_be9f215e","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":49},"in_reply_to":"3aaa91ec_f9072e7f","updated":"2016-06-28 13:23:38.000000000","message":"Done","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bb9016fba4b775ffc283840ed66c8a29cce33907","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                if self._data.get(\"timestamp\"):"},{"line_number":59,"context_line":"                    delta \u003d now - self._data.get(\"timestamp\")"},{"line_number":60,"context_line":"                    time_diff \u003d delta.seconds"},{"line_number":61,"context_line":"                self.driver.get_current_memory_bw(metric_object)"},{"line_number":62,"context_line":"                mem_counter \u003d metric_object.numa_membw_values"},{"line_number":63,"context_line":"                if mem_counter and time_diff \u003e 0:"},{"line_number":64,"context_line":"                    current_mem_bw \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_b973e614","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":49},"in_reply_to":"3aaa91ec_f9072e7f","updated":"2016-06-27 19:36:08.000000000","message":"Yeah, this is terrible. The CPU metric doesn\u0027t do this. Please mirror that behavior both with a single method and without passing the metric(s) into it.","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"934c0d7f2f6b6989a4648d8f363416ce3c4deda6","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        except (NotImplementedError, TypeError, KeyError):"},{"line_number":84,"context_line":"            LOG.exception(_LE(\"Not all properties needed are implemented \""},{"line_number":85,"context_line":"                              \"in the compute driver\"))"},{"line_number":86,"context_line":"            raise exception.ResourceMonitorError("},{"line_number":87,"context_line":"                monitor\u003dself.__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_79f4de86","line":86,"range":{"start_line":86,"start_character":28,"end_line":86,"end_character":48},"updated":"2016-06-27 19:33:19.000000000","message":"Does anything handle this ever?","commit_id":"0dd22737103926db45892c8de072e3f5048fc6a2"}]}
