)]}'
{"osprofiler/cmd/commands.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"3b464ae51a06c38ebfe6330d571e9a5edd85c202","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if notifications:"},{"line_number":67,"context_line":"                trace \u003d ceiloparser.parse_notifications(notifications)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        if not trace:"},{"line_number":70,"context_line":"            msg \u003d (\"Trace with UUID %s not found. \""},{"line_number":71,"context_line":"                   \"There are 3 possible reasons: \\n\""},{"line_number":72,"context_line":"                   \" 1) You are using not admin credentials\\n\""}],"source_content_type":"text/x-python","patch_set":13,"id":"da6ed579_3ab6298b","side":"PARENT","line":69,"updated":"2016-01-12 14:25:55.000000000","message":"I removed this because now in shell at least some kind of \u0027empty\u0027 but valid response will be returned.","commit_id":"4361aef46621fd94516fe21ac19ccac2037ed6cc"}],"osprofiler/drivers/ceilometer.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"a8615193708d2afb780e8870dce08392bbf3be08","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class CeilometerDriver(base.Messaging):"},{"line_number":20,"context_line":"    def __init__(self, messaging\u003dNone, context\u003dNone, transport\u003dNone,"},{"line_number":21,"context_line":"                 project\u003dNone, service\u003dNone, host\u003dNone,"},{"line_number":22,"context_line":"                 ceilometer_api_version\u003dNone, connection_str\u003dNone, **kwargs):"},{"line_number":23,"context_line":"        super(CeilometerDriver, self).__init__(messaging, context, transport,"},{"line_number":24,"context_line":"                                               project, service, host,"},{"line_number":25,"context_line":"                                               connection_str\u003dconnection_str)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a7e1126_b37c4573","line":22,"updated":"2015-12-17 19:28:21.000000000","message":"Same question as to other patch,\n\nNow that connection_str exists here, whats the breakup of using that  connection_str query string for parameters vs using keyword arguments ...","commit_id":"9f9aa611ebdf3f618654d414435faf1eb4c33fd5"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"40ddff7ea2f0f643ab80e0380a495dd87e1e7c5b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class CeilometerDriver(base.Messaging):"},{"line_number":20,"context_line":"    def __init__(self, messaging\u003dNone, context\u003dNone, transport\u003dNone,"},{"line_number":21,"context_line":"                 project\u003dNone, service\u003dNone, host\u003dNone,"},{"line_number":22,"context_line":"                 ceilometer_api_version\u003dNone, connection_str\u003dNone, **kwargs):"},{"line_number":23,"context_line":"        super(CeilometerDriver, self).__init__(messaging, context, transport,"},{"line_number":24,"context_line":"                                               project, service, host,"},{"line_number":25,"context_line":"                                               connection_str\u003dconnection_str)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a7e1126_7c662c2b","line":22,"in_reply_to":"3a7e1126_34134268","updated":"2015-12-21 19:11:55.000000000","message":"I may (rephrase it)!\n\nI\u0027m just wondering when \u0027connection_str\u0027 should be used and when should kwargs be used, they both can do similar things, so what is the desired policy on using one vs the other??","commit_id":"9f9aa611ebdf3f618654d414435faf1eb4c33fd5"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"bf2f626a515a42cc9dea61370ddb87a214d0b69f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class CeilometerDriver(base.Messaging):"},{"line_number":20,"context_line":"    def __init__(self, messaging\u003dNone, context\u003dNone, transport\u003dNone,"},{"line_number":21,"context_line":"                 project\u003dNone, service\u003dNone, host\u003dNone,"},{"line_number":22,"context_line":"                 ceilometer_api_version\u003dNone, connection_str\u003dNone, **kwargs):"},{"line_number":23,"context_line":"        super(CeilometerDriver, self).__init__(messaging, context, transport,"},{"line_number":24,"context_line":"                                               project, service, host,"},{"line_number":25,"context_line":"                                               connection_str\u003dconnection_str)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a7e1126_34134268","line":22,"in_reply_to":"3a7e1126_b37c4573","updated":"2015-12-18 09:52:01.000000000","message":"hm, sorry, probably did not get the question right. May you please rephrase it?","commit_id":"9f9aa611ebdf3f618654d414435faf1eb4c33fd5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"815a0703baac8ec183c6d74cbe59fe8a91b9e780","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            if hasattr(e, \"http_status\") and e.http_status \u003d\u003d 401:"},{"line_number":38,"context_line":"                msg \u003d \"Invalid OpenStack Identity credentials.\""},{"line_number":39,"context_line":"            else:"},{"line_number":40,"context_line":"                msg \u003d \"Something has gone wrong. See logs for more details\""},{"line_number":41,"context_line":"            raise exc.CommandError(msg)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":24,"id":"bab6814e_fd3a7e97","line":40,"range":{"start_line":40,"start_character":49,"end_line":40,"end_character":74},"updated":"2016-05-24 09:47:54.000000000","message":"Which logs? What is logging here?","commit_id":"134cd4e9fa852b3d7df47f33c82e2920e7a83598"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"815a0703baac8ec183c6d74cbe59fe8a91b9e780","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        _filter \u003d [{\"field\": \"base_id\", \"op\": \"eq\", \"value\": base_id}]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # limit is hardcoded in this code state. Later that will be changed via"},{"line_number":56,"context_line":"        # connection string usage"},{"line_number":57,"context_line":"        notifications \u003d [n.to_dict()"},{"line_number":58,"context_line":"                         for n in self.client.events.list(_filter,"},{"line_number":59,"context_line":"                                                          limit\u003d100000)]"}],"source_content_type":"text/x-python","patch_set":24,"id":"bab6814e_bd68f688","line":56,"range":{"start_line":56,"start_character":10,"end_line":56,"end_character":33},"updated":"2016-05-24 09:47:54.000000000","message":"Why do we need to overload connection string for these options? Can we introduce a separate option for this?","commit_id":"134cd4e9fa852b3d7df47f33c82e2920e7a83598"},{"author":{"_account_id":18654,"name":"Alexey Yelistratov","email":"ayelistratov@mirantis.com","username":"rohanion"},"change_message_id":"9c13ece2cceb432b117a06f0d8a04cf97f9029e6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        _filter \u003d [{\"field\": \"base_id\", \"op\": \"eq\", \"value\": base_id}]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # limit is hardcoded in this code state. Later that will be changed via"},{"line_number":56,"context_line":"        # connection string usage"},{"line_number":57,"context_line":"        notifications \u003d [n.to_dict()"},{"line_number":58,"context_line":"                         for n in self.client.events.list(_filter,"},{"line_number":59,"context_line":"                                                          limit\u003d100000)]"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aa08908_0e21d5fc","line":56,"range":{"start_line":56,"start_character":10,"end_line":56,"end_character":33},"in_reply_to":"bab6814e_bd68f688","updated":"2016-06-10 15:42:24.000000000","message":"this option is just for ceilometer. there\u0027s no need to limit the query for other drivers since other backend drivers (e.g. mongodb) are generators in pythonic terms.","commit_id":"134cd4e9fa852b3d7df47f33c82e2920e7a83598"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"0ce53272ea174c58875b5d86c0d6e8b8fee7ad11","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            payload \u003d n.get(\"raw\", {}).get(\"payload\", {})"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            self._results_append(trace_id, parent_id, name, project, service,"},{"line_number":78,"context_line":"                                 host, timestamp, payload)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        return self._parse_results()"}],"source_content_type":"text/x-python","patch_set":29,"id":"1aa78d24_016b901f","line":77,"updated":"2016-07-04 12:22:48.000000000","message":"It is _append_results.","commit_id":"9787e898451df1d0769d1a803079a373df7d6dd0"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"855f47ec3fbdc8948c39c67cb5eb9ad254434f45","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    def __init__(self, connection_str, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Driver receiving profiled information from ceilometer.\"\"\""},{"line_number":23,"context_line":"        super(Ceilometer, self).__init__(connection_str)"},{"line_number":24,"context_line":"        try:"},{"line_number":25,"context_line":"            import ceilometerclient.client"},{"line_number":26,"context_line":"            import ceilometerclient.shell"},{"line_number":27,"context_line":"        except ImportError:"}],"source_content_type":"text/x-python","patch_set":32,"id":"1aa78d24_80391f42","line":24,"updated":"2016-07-15 00:26:57.000000000","message":"Hmmmm, be nice if we could get away from doing this, but I don\u0027t see a way to do so without entrypoints and not the custom class lookup this driver code does.","commit_id":"a23d829dba6281148ffe37985094560ad7bca8d9"}],"osprofiler/tests/drivers/test_ceilometer.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"815a0703baac8ec183c6d74cbe59fe8a91b9e780","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                                     ceilometer_api_version\u003d\"2\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_build_empty_tree(self):"},{"line_number":29,"context_line":"        self.assertEqual(self.ceilometer._build_tree({}), [])"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_build_complex_tree(self):"},{"line_number":32,"context_line":"        test_input \u003d {"}],"source_content_type":"text/x-python","patch_set":24,"id":"bab6814e_1da022a5","line":29,"updated":"2016-05-24 09:47:54.000000000","message":"The order is expected, observed.","commit_id":"134cd4e9fa852b3d7df47f33c82e2920e7a83598"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"815a0703baac8ec183c6d74cbe59fe8a91b9e780","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        ]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        result \u003d self.ceilometer._build_tree(test_input)"},{"line_number":81,"context_line":"        self.assertEqual(result, expected_output)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_get_report_empty(self):"},{"line_number":84,"context_line":"        self.ceilometer.client \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":24,"id":"bab6814e_9d7b7229","line":81,"updated":"2016-05-24 09:47:54.000000000","message":"Same comment, please fix this in other tests.","commit_id":"134cd4e9fa852b3d7df47f33c82e2920e7a83598"}],"tests/cmd/test_shell.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"3b464ae51a06c38ebfe6330d571e9a5edd85c202","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        self._test_with_command_error(\"trace show fake_id\", msg)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @mock.patch(\"osprofiler.parsers.ceilometer.get_notifications\")"},{"line_number":154,"context_line":"    def test_trace_show_trace_id_not_found(self, mock_get):"},{"line_number":155,"context_line":"        mock_get.return_value \u003d None"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        fake_trace_id \u003d \"fake_id\""}],"source_content_type":"text/x-python","patch_set":13,"id":"da6ed579_5aa43d56","side":"PARENT","line":154,"updated":"2016-01-12 14:25:55.000000000","message":"I removed this test because now in shell at least some kind of \u0027empty\u0027 but valid response will be returned.","commit_id":"4361aef46621fd94516fe21ac19ccac2037ed6cc"}]}
