)]}'
{"nova/compute/monitors/__init__.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3b77e8aa67383ca91bdb245d1c8ad51fbc7232d1","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    def __init__(self):"},{"line_number":48,"context_line":"        super(ResourceMonitorHandler, self).__init__("},{"line_number":49,"context_line":"                nova.compute.monitors.base.MonitorBase)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def choose_monitors(self, manager):"},{"line_number":52,"context_line":"        \"\"\"This function checks the monitor names and metrics names against a"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_5949a08d","line":49,"updated":"2015-07-06 14:07:26.000000000","message":"This needs to be properly indented.","commit_id":"c41db608fe3cd75c5925bb7693261ac8379737f0"}],"nova/compute/monitors/base.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d48842989df62669c61ef0d202a0ce9b71a18a16","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                                           timestamp\u003dtimestamp,"},{"line_number":62,"context_line":"                                           source\u003dself.source)"},{"line_number":63,"context_line":"            metrics.append(metric)"},{"line_number":64,"context_line":"        metrics_list.objects.extend(metrics)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class CPUMonitorBase(MonitorBase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_c8904346","line":64,"updated":"2015-06-30 21:04:24.000000000","message":"Is it metric_list or metrics_list?  It looks like you corrected the parameter name in the follow-on review, but that correction should probably be here instead.","commit_id":"4ccccd03f101241c2261804b0a20c7f52580a355"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"bb8fc534bb44e0c3c84eaccea811f64308c862db","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                                           timestamp\u003dtimestamp,"},{"line_number":62,"context_line":"                                           source\u003dself.source)"},{"line_number":63,"context_line":"            metrics.append(metric)"},{"line_number":64,"context_line":"        metrics_list.objects.extend(metrics)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class CPUMonitorBase(MonitorBase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_e38af3be","line":64,"in_reply_to":"ba3cc151_c8904346","updated":"2015-07-01 09:29:38.000000000","message":"+1","commit_id":"4ccccd03f101241c2261804b0a20c7f52580a355"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c86c8b045e9564502bb377083e2d2890ff533964","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        metrics_list.objects.extend(metrics)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class CPUMonitorBase(MonitorBase):"},{"line_number":68,"context_line":"    \"\"\"Base class for all monitors that return CPU-related metrics.\"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def get_metric_names(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_cc1afe7c","line":67,"updated":"2015-07-03 15:35:48.000000000","message":"Hum we should profit of this refactoring to remove this layer - I mean why virt_driver:Monitor does not provide this method and simply extends MonitorBase. Do we expect to have something else than \"virt\" to return cpu related metrics?","commit_id":"3e68a3bad7f04b23306682363554a353c6722e75"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cf55b2a55c5edf55163815ac6c777f38f29ce8b5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        metrics_list.objects.extend(metrics)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class CPUMonitorBase(MonitorBase):"},{"line_number":68,"context_line":"    \"\"\"Base class for all monitors that return CPU-related metrics.\"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def get_metric_names(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_e2bb49c2","line":67,"in_reply_to":"ba3cc151_cc1afe7c","updated":"2015-07-03 16:10:55.000000000","message":"Yes. I could just as easily write a Nagios or Zabbix plugin that queried for CPU information. To indicate that this plugin returns the set of CPU metrics, I would inherit from this CPUMonitorBase class.\n\nWe have plans for memory stats and NUMA node memory bandwidth stats, both of which would need a base class like this to indicate the set of metrics the plugins return.","commit_id":"3e68a3bad7f04b23306682363554a353c6722e75"}],"nova/compute/monitors/cpu/virt_driver.py":[{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"bb8fc534bb44e0c3c84eaccea811f64308c862db","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_metric(self, name):"},{"line_number":45,"context_line":"        self._update_data()"},{"line_number":46,"context_line":"        return self._data[name], self._data[\"timestamp\"]"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _update_data(self):"},{"line_number":49,"context_line":"        # Don\u0027t allow to call this function so frequently (\u003c\u003d 1 sec)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_c6c01d2d","line":46,"updated":"2015-07-01 09:29:38.000000000","message":"Let\u0027s say there are some imaginary platforms that can\u0027t report the same parameters as a typical linux platform would do - since the get_metrics_names is something that\u0027s implemented in the base class - wouldn\u0027t this throw a key error in such a case?\n\nOr in such cases, maybe the base method should be overridden?\nI can get a sense that a contract on names might be essential for the scheduler filters to work off this data (?) - but maybe there should be a way to opt out of reporting a certain metric inside a given monitor?","commit_id":"4ccccd03f101241c2261804b0a20c7f52580a355"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"38f02cd9b5f0ebb1d228ed8db9332d4cda7c7355","unresolved":false,"context_lines":[{"line_number":33,"context_line":"class Monitor(base.CPUMonitorBase):"},{"line_number":34,"context_line":"    \"\"\"CPU monitor that uses the virt driver\u0027s get_host_cpu_stats() call.\"\"\""},{"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":6,"id":"ba3cc151_4330db07","line":36,"updated":"2015-07-06 09:30:49.000000000","message":"exactly to say s/compute_manager/resource_tracker/\n\nbecause the line 57 in https://review.openstack.org/#/c/196182/6/nova/compute/monitors/__init__.py","commit_id":"2a8801d98771df89cae1705b70de62f0c97f8129"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"574bf621865b8dc073a7c22b52268cbefe2940fc","unresolved":false,"context_lines":[{"line_number":33,"context_line":"class Monitor(base.CPUMonitorBase):"},{"line_number":34,"context_line":"    \"\"\"CPU monitor that uses the virt driver\u0027s get_host_cpu_stats() call.\"\"\""},{"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":6,"id":"ba3cc151_66b963ec","line":36,"in_reply_to":"ba3cc151_4330db07","updated":"2015-07-06 13:35:57.000000000","message":"It\u0027s taken care of in the next patch in the series.","commit_id":"2a8801d98771df89cae1705b70de62f0c97f8129"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4492ab954ac080cd3fe15501c1d107f54d383eba","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        self._report_final_resource_view()"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        metrics \u003d self._get_host_metrics(context, self.nodename)"},{"line_number":493,"context_line":"        self.compute_node[\u0027metrics\u0027] \u003d jsonutils.dumps(metrics)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"        # TODO(sbauza): Juno compute nodes are missing the host field and"},{"line_number":496,"context_line":"        # the Juno ResourceTracker does not set this field, even if"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_f14beeae","line":493,"updated":"2015-06-29 19:25:27.000000000","message":"Note to self: metrics.to_list() converts from object format to the legacy dict format so that this is unchanged from current behavior.\n\nIs the goal to make this be actual nested object format in the object model and database once we land the compute node object patch?","commit_id":"4b76d1d743346120d1deb35fad0f01d657dfaad3"}],"nova/tests/unit/compute/test_resource_tracker.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ad159879a61f25eb28b2c57912981b1406daa605","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"        self.assertTrue(len(metrics) \u003e 0)"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"    @mock.patch.object(resource_tracker.LOG, \u0027warning\u0027)"},{"line_number":1307,"context_line":"    def test_get_host_metrics_exception(self, mock_LOG_warning):"},{"line_number":1308,"context_line":"        self.flags(compute_monitors\u003d[\u0027FakeMontorClass1\u0027])"},{"line_number":1309,"context_line":"        class1 \u003d test_monitors.FakeMonitorClass1(self.tracker)"},{"line_number":1310,"context_line":"        self.tracker.monitors \u003d [class1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_7267eb25","side":"PARENT","line":1307,"updated":"2015-07-06 08:28:36.000000000","message":"why remove this two test-cases? In the line 355 of nova/compute/resource_tracker.py still support those cases","commit_id":"e4734a33eb9142992274f4ed76fe736a71117022"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"574bf621865b8dc073a7c22b52268cbefe2940fc","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"                                                     self.node_name)"},{"line_number":1315,"context_line":"            mock_LOG_warning.assert_called_once_with("},{"line_number":1316,"context_line":"                u\u0027Cannot get the metrics from %s.\u0027, class1)"},{"line_number":1317,"context_line":"            self.assertEqual(0, len(metrics))"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"    def test_get_host_metrics(self):"},{"line_number":1320,"context_line":"        self.flags(compute_monitors\u003d[\u0027FakeMonitorClass1\u0027, \u0027FakeMonitorClass2\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_e6cd7387","side":"PARENT","line":1317,"updated":"2015-07-06 13:35:57.000000000","message":"OK, I will re-add these...","commit_id":"e4734a33eb9142992274f4ed76fe736a71117022"}]}
